ffmpeg で動画の音声を差し替える
音楽動画を書き出した後に音声だけ差し替えたい場合… 動画ソフト(Premireを使ってる)でいちいち再書き出し面倒、と思い ffmpeg を調べてやっと見つけた!
1 |
ffmpeg -i *.mp4 -i *.wav -c:v copy -c:a aac -strict experimental -map 0:v -map 1:a output.mp4 |
映像はコピーでオーディオはaacエンコード、処理もすぐ終わる!
目次
参考にさせて頂きました
FFmpegで動画編集をするガイド – moriyoshiの日記
補足
上の方法にたどり着くまでの…
分離させて結合
元の動画から映像だけ抜き出してから、別の音声を結合…ってしてた
1 2 |
ffmpe -i Track40.mp4 -an -vcodec copy mov.mp4 ffmpeg -i mov.mp4 -i Track41.wav test.mp4 |
この結合方法では動画もエンコードされてしまい時間がかかるんだけど、
copy で結合する方法を調べて試してもエラーになってしまったので..
エラー1
-vcodec copy -acodec copy すると
1 |
ffmpeg -i mov.mp4 -vcodec copy -i Track40.wav -acodec copy test2.mp4 |
エラー
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
ffmpeg version git-2014-08-29-be3d807 Copyright (c) 2000-2014 the FFmpeg developers built on Aug 29 2014 20:10:37 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/Users/username --libdir=/Users/username/lib --incdir=/Users/username/include --enable-libfaac --enable-libx264 --enable-libxvid --enable-nonfree --enable-gpl --enable-libmp3lame --enable-pthreads --enable-libvpx --enable-libvorbis --disable-mmx --enable-shared --enable-libtheora --pkg-config=pkg-config --enable-version3 --enable-pic --extra-cflags=-I/Users/username/include --extra-ldflags=-L/Users/username/lib libavutil 54. 7.100 / 54. 7.100 libavcodec 56. 1.100 / 56. 1.100 libavformat 56. 3.100 / 56. 3.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.103 / 5. 0.103 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 0.100 / 53. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Track42.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2018-12-12 18:36:52 Duration: 00:04:42.77, start: 0.000000, bitrate: 16329 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 16009 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: creation_time : 2018-12-12 18:36:52 handler_name : Alias Data Handler encoder : AVC Coding Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 317 kb/s (default) Metadata: creation_time : 2018-12-12 18:36:52 handler_name : Alias Data Handler Unknown decoder 'copy' |
エラー2
もう一つ調べた方法
1 |
ffmpeg -i Track42.mp4 -i Track42.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output2.mp4 |
少し違うエラー
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
ffmpeg version git-2014-08-29-be3d807 Copyright (c) 2000-2014 the FFmpeg developers built on Aug 29 2014 20:10:37 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/Users/username --libdir=/Users/username/lib --incdir=/Users/username/include --enable-libfaac --enable-libx264 --enable-libxvid --enable-nonfree --enable-gpl --enable-libmp3lame --enable-pthreads --enable-libvpx --enable-libvorbis --disable-mmx --enable-shared --enable-libtheora --pkg-config=pkg-config --enable-version3 --enable-pic --extra-cflags=-I/Users/username/include --extra-ldflags=-L/Users/username/lib libavutil 54. 7.100 / 54. 7.100 libavcodec 56. 1.100 / 56. 1.100 libavformat 56. 3.100 / 56. 3.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.103 / 5. 0.103 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 0.100 / 53. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Track42.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2018-12-12 18:36:52 Duration: 00:04:42.77, start: 0.000000, bitrate: 16329 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 16009 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: creation_time : 2018-12-12 18:36:52 handler_name : Alias Data Handler encoder : AVC Coding Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 317 kb/s (default) Metadata: creation_time : 2018-12-12 18:36:52 handler_name : Alias Data Handler Guessed Channel Layout for Input Stream #1.0 : stereo Input #1, wav, from 'Track42.wav': Duration: 00:04:44.38, bitrate: 1411 kb/s Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s File 'output2.mp4' already exists. Overwrite ? [y/N] y [aac @ 0x7fe28985da00] The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it. [aac @ 0x7fe28985da00] Alternatively use the non experimental encoder 'libfaac'. |