コマンド諸々

  • 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

参考

FFmpegをインストールする

必要にかられて FFmpeg を触る機会があって、結構苦しんだので忘れないようにメモ。

前提条件(環境)

$ brew --version 
0.9.3

インストールする

$ brew install --use-clang --HEAD ffmpeg
   # ログ省略
$ ffmpeg -version 
ffmpeg version 1.0.git
   # その他省略

でバージョン情報が表示されればインストール完了。

ただし、デフォの状態だと使用できないコーデックもちょいちょいある。
インストール時に必要なコーデックライブラリを指定してあげれば良い。

  • webm を追加する
$  brew install --use-clang --HEAD ffmpeg --with-libvpx
  • aac を追加する
$  brew install --use-clang --HEAD ffmpeg --with-libfaac
    • 複数指定も可能
$  brew install --use-clang --HEAD ffmpeg --with-libvpx --with-libfaac --with-libvorbis

Gitをインストールする

参考にさせていただきました

http://d.hatena.ne.jp/STAR_ZERO/20110919/1316403151
id:STAR_ZERO さんありがとうございました。

brew edit git

してから install したら git-manpages-1.7.6.1.tar.bz2 が無いよでエラー。

$ brew install git
==> Downloading https://github.com/git/git/tarball/v1.7.6.1
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/git/1.7.6.1 install
==> Downloading http://ftp.ntu.edu.tw/ftp/pub2/software/scm/git/git-manpages-1.7.6.1.tar.bz2

curl: (22) The requested URL returned error: 404
Error: Failure while executing: /usr/bin/curl -f#LA Homebrew\ 0.8\ (Ruby\ 1.8.7-249;\ Mac\ OS\ X\ 10.7.2) http://ftp.ntu.edu.tw/ftp/pub2/software/scm/git/git-manpages-1.7.6.1.tar.bz2 -o /Users/ほげ/Library/Caches/Homebrew/git-manpages-1.7.6.1.tar.bz2

元情報の alternative source for installing git. brew install git; kernel.org Down for maintenance を見たら別のミラーサイト(て言うのかな?)指定しろって書いてあったので、もう一回 git edit で以下のように編集した。

url 'http://ftp.ntu.edu.tw/ftp/pub2/software/scm/git/git-manpages-1.7.6.1.tar.bz2'

を下記に変更した。

http://distfiles.macports.org/git-core/git-manpages-1.7.6.1.tar.bz2'