オーディオプレーヤーとビデオプレーヤーはたくさんありますが、多くの提案に1つのツールを使用したいと思います。そこで、オーディオおよびビデオプレーヤーとしてffplay
を使用したいと思います。
1つのファイルを再生するには、コマンドは次のようになります。
ffplay path_to_audio_file.mp3
ただし、リストの再生方法オーディオファイルまたはビデオのリスト?
使用しようとしました:
ffplay *.mp3
成功しなかった場合、次のようなエラーが発生します:
Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified.
回答
ffplay
は単一の入力ファイルのみをサポートしているように見えるため、コードを使用して入力ファイルのリストをループする(場合によってはシャッフルする)必要があります。 ); coreutils
(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 -
)
コメント
回答
Lazarus / FPCでFFplayGUIを書いているときに、このスレッドを見つけました。ドロップされたファイルリストを再生して次/前のファイルにスキップすることはできましたが、ffmpegプロセスを強制終了し、毎回新しいファイルを作成する必要がありました。ファイルリスト全体を再生する機能を追加しようとしていました。私が今まで見つけた最も簡単な回避策は、もちろん-autoexitを使用し、次のPascalコードでプレイリストファイルを作成することでした。
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と連結するために使用するのと同じ構文です。
現在、追加する適切な方法を探しています。ファイルが画像ファイルの場合の遅延…
-autoexit
フラグがその問題に関連しているようです。-autoexit
がその問題を解決しました。これで、-nodisp
を使用して解決できる別の方法があります…これにより、波形などの視覚化が無効になります。これにより、新しいウィンドウを作成したり、現在の作業アプリケーションからフォーカスを奪ったりすることを回避できます(これは非常に厄介な動作でした)。迷惑な動作を解決するための可能なオプションとして、このオプションを回答に含めますか。