コマンド諸々

  • mov を mp4 に変換する
$ ffmpeg -i <input_data> <output_data>
    • コーデックを指定しても良いと思う
$ ffmpeg -i <input_data> -vcodec mpeg2video -acodec mp2 <output_data>
  • catで結合したmpegのtimestampを調整する
$ ffmpeg -i <input_data> -g 120 -dts_delta_threshold 1 -r 30000/1001 <output_data> 

-dts_delta_threshold 1 がポイント

  • 映像だけ抜き出す
$ ffmpeg -i <input_data> -an <output_data>
    • -an を先にするとNGだった。オプションに順序はあるみたい
  • 映像を特定の時間で切り出す
$ ffmpeg -i <input_data> -ss <start_sec> -t <play_time> <output_data>
    • : 切り出しを開始する時間。
      • ミリ秒まで指定したいときは hh:mi:ss.SSS のフォーマットで指定すればOK(だった気がする)
    • : 切り出し開始時間から切り出す秒数。

ミリ秒まで指定したいときは と同じフォーマットでOK(だったry

      • e.g. -ss 5 -t 3 と指定したら5秒後から3秒間抜き出す
  • 映像と音声を合成する
ffmpeg -i <input_video_data> -i <input_audio_data> <output_data>
  • 映像をリサイズする
$ ffmpeg -i <input_data> -s (width)x(height) <output_data>
    • mp4をリサイズするとき height の値が2で割り切れないときは下のようなメッセージが出てから0byteのファイルが出力される。失敗してる。
      • height not divisible by 2
  • 動画の情報を出力する
$ ffmpeg -i <movie_path>
    • こんな感じの情報が出力される
ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers
 (ry
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2012-12-04 09:25:27
  Duration: 00:01:36.82, start: 0.000000, bitrate: 1208 kb/s
    Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 100 kb/s
    Metadata:
      creation_time   : 2012-12-04 09:25:27
      handler_name    : Core Media Data Handler
    Stream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 1046 kb/s, 14.77 fps, 14.25 tbr, 600 tbn, 1200 tbc
    Metadata:
      creation_time   : 2012-12-04 09:25:27
      handler_name    : Core Media Data Handler
At least one output file must be specified
  • helpを出力する
$ ffmpeg -h
  • 一番詳しいhelpを出力する
$ ffmpeg -h full

参考