コマンド諸々
- 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(だった気がする)
: 切り出し開始時間から切り出す秒数。
ミリ秒まで指定したいときは
-
-
- 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
- mp4をリサイズするとき height の値が2で割り切れないときは下のようなメッセージが出てから0byteのファイルが出力される。失敗してる。
- 動画の情報を出力する
$ 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
参考
- http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7FFmpeg
- すげー参考にさせてもらいました。ありがとうございました。
FFmpegをインストールする
必要にかられて FFmpeg を触る機会があって、結構苦しんだので忘れないようにメモ。
インストールする
$ 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'