

androidでffmpegで以下のコマンドを実行して動画に音声を結合しています。

[code]

    ffmpeg -hide_banner -y -i movie.mp4 -i bgm.aac -vcodec copy -acodec copy -bsf:a aac_adtstoasc out.mp4
    
[/code]

その際に、動画の先頭から３秒たってから音声がスタートするようにしたいのですが方法がわかりません。最初から音声の先頭に3秒無音を追加したものを準備すればよいのですが、条件によって、無音あり無しを切り替える為、2種類を準備するのは避けたいです。

ご教授をよろしくお願いいたします。


CC BY-SA 3.0
2015-10-28T06:37:04.430
18161
2017-07-22T15:14:46.303
7212
question
android ffmpeg
ffmpegで動画と音声を結合するときに先頭に無音を追加するには


`-itsoffset` を使うと良いですが、これを `-acodec copy` と併用すると delay が効かないようです。そこで

[code]

    ffmpeg -y -i movie.mp4 -itsoffset 00:00:03 -i bgm.aac -vcodec copy -bsf:a aac_adtstoasc -async 1 -strict -2 out.mp4
    
[/code]

としたところ、3秒後から音声の再生が開始される様になりました。`-async 1` で、audio stream の offset
の値を記録してくれるのだそうです。また、AAC の場合は `-strict -2` を指定する必要があるとの事です。

\-- [user9156
さんのコメントより](https://ja.stackoverflow.com/questions/18161/ffmpeg%E3%81%A7%E5%8B%95%E7%94%BB%E3%81%A8%E9%9F%B3%E5%A3%B0%E3%82%92%E7%B5%90%E5%90%88%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E5%85%88%E9%A0%AD%E3%81%AB%E7%84%A1%E9%9F%B3%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF#comment16805_18161)


CC BY-SA 3.0
2017-07-22T15:14:46.303
36596
2017-07-22T15:14:46.303
19110
18161
answer