FFmpeg

FFmpeg

clip

-i よりも前に -ss-to を置くことが重要である。

例:1 時間 55 分 50 秒から 2 時間 0 分 6 秒まで切り抜く。

ffmpeg \
  -ss '01:55:50' \
  -to '02:00:06' \
  -i 'src.ts' \
  -c copy \
  'dst_clip1.ts'

-ss までのシークが遅い挙動に遭遇したがバージョンを 4 系から 6 系に上げて解決した(詳細未確認)。

mpegts → mp4

  • video は h264 だが、その外側が mpegts(MPEG-TS)なものを、mp4(MPEG-4)にする
ffmpeg -i input.ts -c:v copy -c:a copy output.mp4
$ ffprobe -hide_banner -i input.ts
Input #0, mpegts, from 'input.ts':
  Duration: 00:**:**.**, start: 1.400000, bitrate: **** kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 217 kb/s
$ ffprobe -hide_banner -i out.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:**:**.**, start: 0.000000, bitrate: **** kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 9010 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 253 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
  • 9 分 680 MB を対象に実行すると 14 秒かかる

merge video audio

ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a copy output.mp4
最終更新日