7/31/2011

FFmpegのインストール

動画をiPodなどで使えるよう、変換するためのアプリをインストール。

FFmpegの本家は、ここ

全くの一からのインストールは大変なので、Mac OS X 向けのパッケージ管理システム"Mac Port"を使う。

Mac Portを使うのは久しぶりだったので、まずはMac Portのバージョンアップ(1.9.2→2.0.0)。

次に、FFmpeg。最新バージョンは、0.8のようだが、Mac Portにあるのは、最新が0.7.1。最新版ではないが、自分でソースからインストールするよりはまし。

インストールを開始したが、かれこれ1時間たっても、まだ終わる気配がない。たまにログをみているが、依存関係のあるソフトを新規に入れたり、バージョンアップしたりしていて、MacBookのファンがブンブン唸っている。ガンバレ!

ちなにに、今回、初めてFFmpegを入れたつもりだったが、なんと、かなり古いバージョンをインストールしていたことが分かった。最近は、Evernoteにずっと記録しているのだが、それ以前にインストールしたみたいだ。

(追記)
結局、1時間半位かかって、インストールが終了。



 VLCでストリーミングをasf(wmv)形式で保存し、それをiPodで再生可能なmp4形式に変換してみた。(参考にしたサイト

フレームサイズやbit rateなど、適当にやったので画像は汚いが、iTune経由でiPod touchに移動できた。今後の課題は、ffmpegのオプションを真剣に調べる必要があるな。備忘のためにオプションと結果を書いておこう。

$> ffmpeg -i /Users/tom/Desktop/moto.asf -s 320*240 -b 470 -r 30 -ab 20K -ac 2 -ar 44100 Desktop/dekita.mp4

Input #0, asf, from '/Users/tom/Desktop/moto.asf':
  Duration: 00:04:33.64, start: 0.000000, bitrate: 503 kb/s
    Stream #0.0: Video: wmv3 (Main), yuv420p, 480x360, 14.99 tbr, 1k tbn, 1k tbc
    Stream #0.1: Audio: wmav2, 44100 Hz, 1 channels, s16, 20 kb/s
WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
[buffer @ 0x121931200] w:480 h:360 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
[scale @ 0x1219314c0] w:480 h:360 fmt:yuv420p -> w:320 h:240 fmt:yuv420p flags:0x4
Output #0, mp4, to 'Desktop/dekita.mp4':
  Metadata:
    encoder         : Lavf52.110.0
    Stream #0.0: Video: mpeg4, yuv420p, 320x240, q=2-31, 0 kb/s, 30 tbn, 30 tbc
    Stream #0.1: Audio: libfaac, 44100 Hz, 2 channels, s16, 20 kb/s

(追記2)
入力ファイルの属性を調べるには、次の様にすれば解析できる。
$> ffmpeg -i (filename)

解析例として;
Input #0, asf, from 'mediaexample.wmv':
Metadata:
title : support.microsoft.com
artist : Microsoft
copyright : 2005 Microsoft
WMFSDKVersion : 10.00.00.3802
WMFSDKNeeded : 0.0.0.0000
IsVBR : 0
Duration: 00:00:05.00, start: 0.000000, bitrate: 182 kb/s
Stream #0.0(eng): Audio: wmavoice, 22050 Hz, 1 channels, flt, 20 kb/s
Stream #0.1(eng): Video: wmv3 (Main), yuv420p, 640x480, 150 kb/s, 5 tbr, 1k tbn, 1k tbc
At least one output file must be specified