ffmpeg で動画を結合する方法(memo)

ffmpeg で動画を結合する方法

【ffmpeg】動画・音声を連結する concat の使い方 其の3 : ニコニコ動画研究所

基本的な手順は上記の URL を参照しつつ実施しました。
上記の手順で詰まったところを補足しています。

環境

  • OS : Windows 10 home
  • ツール?: power shell

ffmpeg は以前入れてその時に手順を残していないのですが、ブックマークを見た感じだと、以下のページから DL してそう。 まあその辺は、よしなに適切な環境で実施してください。

ffmpeg Documentation

手順

前述の通り。洗練されたやり方なんて知らないので、基本的にサクラエディタ上でコマンドを作ってコピペしました。

詰まった個所

以下の感じで、input.txt のなかにフルパスで記載していたら、ファイルが正しく解釈されなくて困ったので、結合したいファイルと同じ場所に input.txt を置いて、相対パスで記述しました。
file E:/video/test1.mp4
file E:/video/test2.mp4

file:test1.mp4 file:test2.mp4

上記のとおり。

実行コマンドは ffmpeg -f concat -safe 0 -i input.txt -c copy ketsugou-all.mp4

 > ffmpeg -f concat -safe 0 -i input.txt -c copy ketsugou-all.mp4
 ffmpeg version N-90173-gfa0c9d69d3 Copyright (c) 2000-2018 the FFmpeg developers
   built with gcc 7.3.0 (GCC)
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
   libavutil      56.  7.101 / 56.  7.101
   libavcodec     58. 13.100 / 58. 13.100
   libavformat    58. 10.100 / 58. 10.100
   libavdevice    58.  2.100 / 58.  2.100
   libavfilter     7. 12.100 /  7. 12.100
   libswscale      5.  0.101 /  5.  0.101
   libswresample   3.  0.101 /  3.  0.101
   libpostproc    55.  0.100 / 55.  0.100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c584440] Auto-inserting h264_mp4toannexb bitstream filter
 Input #0, concat, from 'input.txt':
   Duration: N/A, start: 0.000000, bitrate: 18913 kb/s
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 18782 kb/s, 29.70 fps, 60 tbr, 30k tbn, 59.94 tbc
     Metadata:
       creation_time   : 2018-07-30T11:03:46.000000Z
       handler_name    : VideoHandler
       encoder         : AVC Coding
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 130 kb/s
     Metadata:
       creation_time   : 2018-07-30T11:03:46.000000Z
       handler_name    : SoundHandler
 Output #0, mp4, to 'ketsugou-all.mp4':
   Metadata:
     encoder         : Lavf58.10.100
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 18782 kb/s, 29.70 fps, 60 tbr, 30k tbn, 30k tbc
     Metadata:
       creation_time   : 2018-07-30T11:03:46.000000Z
       handler_name    : VideoHandler
       encoder         : AVC Coding
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 130 kb/s
     Metadata:
       creation_time   : 2018-07-30T11:03:46.000000Z
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c614e80] Auto-inserting h264_mp4toannexb bitstream filter
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter6x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter4x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter2x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter2x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.6x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.3x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.8x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.7x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.7x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.9x
 [mov,mp4,m4a,3gp,3g2,mj2 @ 000001934c5976c0] Auto-inserting h264_mp4toannexb bitstream filter.9x
 frame=360144 fps=1397 q=-1.0 Lsize=30600713kB time=03:20:04.27 bitrate=20882.6kbits/s speed=46.6x
 video:30388971kB audio:192678kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.062339%

 ```