0

はじめに: 私は Python と bash の初心者です。何年も前に bashscript を作成しましたが、Python には手を出したことがありません。そして、私は自分の深さから少し外れていると思います。

私が持っているもの

  • 91 個の mp4 ビデオ ファイル (詳細は非公開)
  • Raspbian Stretch を実行している Raspberry Pi 3 B (私の知る限り)
  • Western Digital My Passport USB3 外付けハードディスク-

私が欲しいもの

私は祖母のために何かをセットアップしようとしています - 彼女は Pi を差し込むと起動し、外部ドライブのフォルダー内のビデオをループでランダムな順序で再生し始めます。彼女は 80 代後半で、あまり技術的ではなく、私から 9,211 km 離れたところに住んでいるので、できるだけシンプルにしたいと考えています。その結果、どんな変更も、Linux や Python にまったく慣れていない、より技術的な家族のメンバーによって行われる必要があります。

私が持っているもの

fstab をセットアップしました。

UUID="XXXXXXX" /media/videoDrive auto nosuid,nodev,nofail 0 0

それはうまくいきます。

ループでシャッフルされたディレクトリ内のファイルの再生をサポートしているため、VLC のコマンドラインからビデオを再生しようとしました。そしてそれはうまくいきました... ある種。ビデオ プレーヤーが大きくなるほど、ビデオは信じられないほど途切れ途切れになり、基本的に全画面表示では再生されませんでした。omxplayer は mp4 を正常に再生できることがわかりましたが、一部のビデオは再生を拒否した webm でした。でも変換したのでOKです。

次のようなbashscriptをオンラインで見つけました。

#!/bin/bash

setterm -cursor off
setterm -clear

for file in $1/*
do
 omxplayer "$file" > /dev/null
done

setterm -cursor on

それを使用して、次の Python スクリプトを作成しました。

#Autoplay Script
import os, random

#playlist path
path = "/media/videoDrive/vids"

videoList = os.listdir(path)
random.shuffle(videoList)
for video in videoList:
    target = os.path.join(path, video)
    os.system('omxplayer "{}" > /dev/null'.format(target))

私がする必要があるのは、スクリプト呼び出しを追加するファイル (initrc だと思います) を検索し、指示を書き、それをパッケージ化し、両親に渡してそこを引き継ぐことだけです。

...再生の問題を整理したら。

問題は何ですか

Python の知識があれば、すべてのビデオが再生されるまで Python スクリプトが実行されることを理解しているかもしれません (ループすらしないことに気付いたばかりです)。これは、Pi をシャットダウンするのが非常に困難になることを意味します。Python プロセスを強制終了してから、すべての omxplayer プロセスを強制終了する必要があります。最初に問題に気付いたときに修正しましたが、その後、Pi のプラグを抜く必要があり、外部と一致しない可能性があります)。

プレーヤーを実行して、ループと omxplayer を強制終了するなんらかの入力が発生するまでビデオを永遠にランダムに再生する方法が必要です。または、VLC でこれらのビデオを問題なく再生する方法を誰かが理解できれば、それで完璧です。

4

1 に答える 1