« Neo1973購入 | トップページ | Panasonic SDR-H18 でとった動画が ffmpegで変換できないわけ »

2008年2月13日 (水)

ffmpeg on MacOS X

FFmpegを MacOS Xで MacPortsを使って 入れたよ、という話です。

出来心で、最近買った Videoカメラの動画を変換したくなったので。 こっそりYouTubeに あげたりしたんだけど、実家のPCじゃみられないので、 aviにしたりすればいいのかなあ、と。

ports fileは用意されているので ports installで 頑張ってくれます。でも以下のようなエラーが:

gcc -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libswscale -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o i386/cavsdsp_mmx.o i386/cavsdsp_mmx.c
i386/cavsdsp_mmx.c: In function 'ff_put_cavs_qpel8_mc01_3dnow':
i386/cavsdsp_mmx.c:447: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
make[1]: *** [i386/cavsdsp_mmx.o] Error 1
あ、一行が長いんで大変っすね。まあ、肝心なのは "GENERAL_REGS" 云々っすから。

これはasm命令で割り当てる registerがないってことらしい。恥ずかしながら GCCの asmはいじったことないのでなおし用もわからない。だいたい、MMXだの 3DNow!だのはいって、最近の x86はわからんし。

こちらによると -mdynamic-no-picをつけるといいよって説もありますが、 PowerPC用optionだし、 shared libraryに向かないって書いてあるんで止しました。

代わりに日和って-disable-mmxです。これを Portsfileにちこっと書いてやり直し。これで無事 compileできました。せっかくの MMXやらを使えないのは悲しいけどねえ。

で、喜び勇んで変換してみると

[1:10]marble:~<109> ffmpeg -i ~/Movies/takesi/PRG00C/MOV002.mpg /tmp/aho.flv
FFmpeg version SVN-r11532, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/opt/local --prefix=/opt/local --disable-vhook --mandir=/opt/local/share/man --enable-shared --enable-pthreads --disable-mmx
  libavutil version: 49.6.0
  libavcodec version: 51.49.0
  libavformat version: 52.4.0
  libavdevice version: 52.0.0
  built on Feb 13 2008 00:50:33, gcc: 4.0.1 (Apple Computer, Inc. build 5367)
Input #0, mpeg, from '/Users/takesi/Movies/takesi/PRG00C/MOV002.mpg':
  Duration: 00:01:20.5, start: 0.255589, bitrate: 2464 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x480 [PAR 8:9 DAR 176:135], 9542 kb/s, 29.97 tb(r)
    Stream #0.1[0x80]: Audio: 0x0000, 48000 Hz, stereo, 256 kb/s
Output #0, flv, to '/tmp/aho.flv':
    Stream #0.0: Video: flv, yuv420p, 704x480 [PAR 8:9 DAR 176:135], q=2-31, 200 kb/s, 29.97 tb(c)
    Stream #0.1: Audio: adpcm_swf, 48000 Hz, stereo, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
[adpcm_swf @ 0x132a810]Sample rate must be 11025, 22050 or 44100
Error while opening codec for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height
うーむ、Audio stream の sampling rateがダメだよ、っていってるんですね。そんなの変換してくれないのかよ。

どうもここらへん、multimedia業界の formatってのはよくわかりません。 勝手に変換されるのを気にする風潮とかあるんでしょうか。 もう少し調べてみます。


2008-03-07 (Fri) 追記:
macport でいれるのは以下のコマンドラインでうまくいきました。
sudo port install ffmpeg +gpl +lame +extvorbis +faac +faad +xvid +x264 +a52
ちゃんと SDR-H18でとった AC3 audioも変換できてます。

ffmpeg macports で検索されてきている方も多いので、ここに追記しときます。

|

« Neo1973購入 | トップページ | Panasonic SDR-H18 でとった動画が ffmpegで変換できないわけ »

Mac」カテゴリの記事

コメント

It's perfect that people are able to take the home loans and it opens up completely new opportunities.

投稿: Kay23CRUZ | 2012年6月 2日 (土) 15時17分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/395951/10492770

この記事へのトラックバック一覧です: ffmpeg on MacOS X:

» Panasonic SDR-H18 でとった動画が ffmpegで変換できないわけ [聖アンドレアスの失敗]
「ffmpeg compileできたけど変換がうまくいかないよう」って書いたけど [続きを読む]

受信: 2008年2月14日 (木) 00時45分

« Neo1973購入 | トップページ | Panasonic SDR-H18 でとった動画が ffmpegで変換できないわけ »