ffmpeg で動画の音声を差し替える

お母ちゃん  2018.12.13 
Home > PC / スマホ > ffmpeg で動画の音声を差し替える

本記事にはアフィリエイト広告が含まれます。

すき 2
うんこ 0

音楽動画を書き出した後に音声だけ差し替えたい場合… 動画ソフト(Premireを使ってる)でいちいち再書き出し面倒、と思い ffmpeg を調べてやっと見つけた!

ffmpeg -i *.mp4 -i *.wav -c:v copy -c:a aac -strict experimental -map 0:v -map 1:a output.mp4

映像はコピーでオーディオはaacエンコード、処理もすぐ終わる!

参考にさせて頂きました

FFmpegで動画編集をするガイド – moriyoshiの日記

補足

上の方法にたどり着くまでの…

分離させて結合

元の動画から映像だけ抜き出してから、別の音声を結合…ってしてた

ffmpe -i Track40.mp4 -an -vcodec copy mov.mp4
ffmpeg -i mov.mp4 -i Track41.wav test.mp4

この結合方法では動画もエンコードされてしまい時間がかかるんだけど、
copy で結合する方法を調べて試してもエラーになってしまったので..

エラー1

-vcodec copy -acodec copy すると 

ffmpeg -i mov.mp4 -vcodec copy -i Track40.wav -acodec copy  test2.mp4

エラー

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

もう一つ調べた方法

ffmpeg -i Track42.mp4 -i Track42.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output2.mp4

少し違うエラー

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'.

 

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください