質問: androidでffmpegで以下のコマンドを実行して動画に音声を結合しています。 ``` ffmpeg -hide_banner -y -i movie.mp4 -i bgm.aac -vcodec copy -acodec copy -bsf:a aac_adtstoasc out.mp4 ``` その際に、動画の先頭から3秒たってから音声がスタートするようにしたいのですが方法がわかりません。最初から音声の先頭に3秒無音を追加したものを準備すればよいのですが、条件によって、無音あり無しを切り替える為、2種類を準備するのは避けたいです。 ご教授をよろしくお願いいたします。
回答: `-itsoffset` を使うと良いですが、これを `-acodec copy` と併用すると delay が効かないようです。そこで ``` ffmpeg -y -i movie.mp4 -itsoffset 00:00:03 -i bgm.aac -vcodec copy -bsf:a aac_adtstoasc -async 1 -strict -2 out.mp4 ``` としたところ、3秒後から音声の再生が開始される様になりました。`-async 1` で、audio stream の offset の値を記録してくれるのだそうです。また、AAC の場合は `-strict -2` を指定する必要があるとの事です。 -- user9156 さんのコメントより