ffmpeg 4.5から使えるプロトコル。demuxerのconcatでつけている-f concat -safe 0や連結ファイルをまとめて記述したテキストのファイルの前に指定するfileも不要に連結できる。いつの間にか2ファイル以上連結しようとすると「Invalid data found when processing input」のエラーが出て連結できなくなっている。

concat を使い分ける

基本コマンド

ffmpeg -i concatf:split.txt -c copy output
ffplay -i concatf:split.txt

ファイル毎に改行し、split.txtで使う特殊文字はバックスラッシュの\かシングルクオートのでエスケープする。

input.mp4
video/input.mp4

'C:\Users\owner\Desktop\input.mp4'
C:/Users/owner/Desktop/input.mp4

concatして固定フレームレートに修正するにはsettsビットストリームフィルタを使う。Bフレームのある24000/1001フレームレートの修正例。
ffmpeg -i concatf:split.txt -c copy -bsf:v setts=dts=N/((24000/1001)*TB):pts=PTS+N/((24000/1001)*TB)-DTS output.mp4

Bフレームがなければ以下でもよい。
ffmpeg -i concatf:split.txt -c copy -bsf:v setts=N/((24000/1001)*TB) output.mp4

公式ドキュメント:FFmpeg Protocols Documentation : concatf

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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