ffplayを使用してオーディオファイルのリストを再生する方法

ffplayを使用してオーディオファイルのリストを再生する方法

オーディオとビデオプレーヤーはたくさんありますが、私は複数の目的のために1つのツールを使用することを好みます。だから私はffplayそれをオーディオとビデオプレーヤーとして使用しようと思いました。

ファイルを再生するための命令は次のとおりです。

ffplay path_to_audio_file.mp3

いいですね。ところで、オーディオファイルのリストやビデオリストをどのように再生しますか?

私は以下を使用しようとしています:

ffplay *.mp3

しかし、役に立たない。それは私に次のエラーを与えます:

Argument 'audiofileB.mp3'  provided as input filename, but 'audiofileA.mp3' was already specified.

答え1

ffplaycoreutils単一の入力ファイルのみがサポートされているように見えるので、次のようにshuf入力ファイルのリストを繰り返して混在させるコードを使用する必要があります。

find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done

もちろん、ファイル名にスペースや改行文字が含まれていると、問題が深刻に発生します。

(私が現在使っているミュージックプレーヤーは非常に似ています。find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -

答え2

これでわかりました。https://ubuntuforums.org/showthread.php?t=2068478

for f in *.mp3 ; do ffplay -autoexit "$f"; done

答え3

Lazarus / FPCでFFplay GUIを作成中にこのスレッドが見つかりました。削除されたファイルのリストを再生して次/前のファイルに移動する機能はすでに機能しますが、毎回ffmpegプロセスを終了して新しいプロセスを作成する必要があります。ファイル全体のリストを再生する機能を追加しようとしています。これまでに見つけた最も簡単な回避策はもちろん、-autoexitを使用し、次のパスカルコードを使用してプレイリストファイルを作成することです。

begin
      AssignFile(tfOut, C_FNAME);
      try
        rewrite(tfOut);
        for i:= 0 to Fichiers.Items.Count - 1 do
        if Fichiers.Selected[i] then
        begin
          writeln(tfOut, 'file ' + #39 + conv(Fichiers.Items[i]) + #39)
        end;
        CloseFile(tfOut);
      except
        on E: EInOutError do
        ShowMessage ('File error')
      end;
  end;

それでは、次のように読んでください。

'ffplay -f concat -safe 0 -i flist.txt -autoexit'

これは、FFMPegを使用してファイルをリンクするために使用するのと同じ構文です。

これで、遅延を追加する適切な方法を探しています(ファイルが画像ファイルの場合)。

答え4

ffplayconcat demuxerなどのものを使用できますffmpeg

再生したいファイルを一覧表示するファイルを作成します。

# list.txt
file 'audiofileA.mp3'
file 'audiofileB.mp3'

次にffplayを実行します。

ffplay -f concat -i list.txt

その他の便利なオプション:

  • -autoexit完了すると終了するために使用されます。
  • 永久に繰り返すために使用されます-loop 0q終了を押す)。
  • -safe 0ファイルパスが絶対パス(または他の特殊文字を含む場合)に使用されます。

ffmpeg wikiをご覧ください。接続デマルチプレクサ詳細については。

関連情報