ffmpegを使用して3つのビデオファイル(それぞれ16秒の長さ)を1つのファイルにマージしようとしています。それらはmpeg形式であるため、コマンドを使用して1つのファイルに連結しようとしていますcat
。問題は、結果のファイル(video.mpg
)を実行すると、最大16秒の長さであると報告されることです(最初の連結ビデオと同じ)。興味深いことに、VLCでファイルを再生すると、ビデオプログレスバーでも最大16秒しか報告されませんが、48秒のビデオ全体を見ることができます。
cat
コマンドを使用して追加の2つのビデオを追加した後、ファイルの「プロパティ」(たとえば、期間など)が更新されていないようです。
私がこれをどのように解決するかについての提案をいただければ幸いです。
以下は、私が作成したBASHスクリプトの関連セクションです。
mkfifo intermediate1.mpg
mkfifo intermediate2.mpg
mkfifo intermediate3.mpg
ffmpeg -i "./tmp/final01.mp4" -qscale 1 -y intermediate1.mpg < /dev/null &
ffmpeg -i "./tmp/final02.mp4" -qscale 1 -y intermediate2.mpg < /dev/null &
ffmpeg -i "./tmp/final03.mp4" -qscale 1 -y intermediate3.mpg < /dev/null &
echo "[audioforge] Stitching files "
cat intermediate1.mpg >> ./tmp/video.mpg
cat intermediate2.mpg >> ./tmp/video.mpg
cat intermediate3.mpg >> ./tmp/video.mpg
# Convert back to mp4 format.
ffmpeg -i "./tmp/video.mpg" -qscale 1 -y "./tmp/video.mp4"