ffplay で複数ファイルを読み込んだり、ffprobe でフィルタを当てた後のデータを調べるときに使う movie, amovie 入力の設定内容。名前の通り映像と音声なので字幕は読み込めない。

ファイルパス指定にはエスケープに注意する。
ffmpeg | パス指定とエスケープ

ffplay のショートカットキー

基本コマンド

映像だけ読み込む
ffplay -f lavfi -i movie=input.mp4
音声だけ読み込む
ffplay -f lavfi -i amovie=input.mp4
映像と音声を読み込む
ffplay -f lavfi -i movie=input.mp4[out0];amovie=input.mp4[out1]
ffplay -f lavfi -i movie=input.mp4:s=0+1[out0][out1]

開始20秒から読み込む
ffplay -f lavfi -i movie=input.mp4:sp=20,setpts=PTS-STARTPTS[out0];amovie=input.mp4:sp=20,asetpts=PTS-STARTPTS[out1]
ffplay -f lavfi -i movie=input.mp4:sp=20:s=0+1[out0][out1];[out0]setpts=PTS-STARTPTS[out0];[out1]asetpts=PTS-STARTPTS[out1]

10秒の映像を10回ループする
ffplay -f lavfi -i movie=input.mp4:loop=10:discontinuity=10
さらに音声も合わせる。streamsloop をサポートしてない
ffplay -f lavfi -i movie=input.mp4:loop=10:discontinuity=10[out0];amovie=input.mp4:loop=10:discontinuity=10[out1]
video4linux2 デバイスを読み込む
ffplay -f lavfi -i movie=/dev/video0:f=video4linux2,setpts=PTS-STARTPTS
連番画像を読み込む。フレームレートは 0.75 で 3/4 の逆数の 4/3秒毎に映像が変わる。画像のファイル名は img-1.jpg 形式。エンコーダは h264_qsv
ffmpeg -f lavfi -r 0.75 -i "movie=img-(%d).jpg,format=yuv420p" -c:v h264_qsv -look_ahead 0 -q 20 -g 1 output.mp4

公式ドキュメント:FFmpeg Filters Documentation : Multimedia Sources

オプション

  • filename
    入力ファイル名の指定。ただしファイルだけではなく特定のデバイスやプロトコルも読み込める
  • format_name, f
    入力ファイルのフォーマット指定。無指定なら入力ファイルのコンテナや入力デバイスから類推する
  • seek_point, sp
    シーク時間の指定。秒(ss)形式で指定する
  • streams, s
    入力ファイルのどのデータを読み込むかの指定。da なら最初映像、dv なら最初の音声。0 開始の数字はトラックの順番に指定。+ を付けて映像と音声や、音声二つ以上を読み込むことも出来る
  • stream_index, si
    streams に似ているが複数入力は出来ない。トラックの順番を 0 開始の数字で指定
  • loop
    ループ回数の指定。0 なら無限。1 なら1回になる。2回目以降のタイムスタンプを変更しないので discontinuity を指定するか、別途 setpts フィルタを使う
  • discontinuity
    loop を使うと2回目以降のタイムスタンプが変更されないので、1回目の終了時間秒(ss)を指定することで問題なくループできる

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)