オーディオとビデオプレーヤーはたくさんありますが、私は複数の目的のために1つのツールを使用することを好みます。だから私はffplay
それをオーディオとビデオプレーヤーとして使用しようと思いました。
ファイルを再生するための命令は次のとおりです。
ffplay path_to_audio_file.mp3
いいですね。ところで、オーディオファイルのリストやビデオリストをどのように再生しますか?
私は以下を使用しようとしています:
ffplay *.mp3
しかし、役に立たない。それは私に次のエラーを与えます:
Argument 'audiofileB.mp3' provided as input filename, but 'audiofileA.mp3' was already specified.
答え1
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 -
)
答え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
ffplay
concat demuxerなどのものを使用できますffmpeg
。
再生したいファイルを一覧表示するファイルを作成します。
# list.txt
file 'audiofileA.mp3'
file 'audiofileB.mp3'
次にffplayを実行します。
ffplay -f concat -i list.txt
その他の便利なオプション:
-autoexit
完了すると終了するために使用されます。- 永久に繰り返すために使用されます
-loop 0
(q終了を押す)。 -safe 0
ファイルパスが絶対パス(または他の特殊文字を含む場合)に使用されます。
ffmpeg wikiをご覧ください。接続デマルチプレクサ詳細については。