H264でエンコード/デコードするために、最小限の要件でffmpegをコンパイルしようとしています。
これまでのところ、私のコマンドライン構成は次のとおりです。
./configure --disable-yasm --disable-everything --enable-encoder=libx264 --enable-encoder=libfaac --enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 --enable-parser=h264 --enable-protocol=file
コンパイルしたら、これを試してみます:
./ffmpeg -i ~/Dropbox/TestFile.mov -vcodec libx264 test.mp4
しかし、エラーが発生します:
ffmpeg version N-58081-g2925571 Copyright (c) 2000-2013 the FFmpeg developers
built on Nov 14 2013 15:49:58 with Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
configuration: --disable-yasm --disable-everything --enable-encoder=libx264 --enable-encoder=libfaac --enable-decoder=h264 --enable-muxer=h264 --enable-demuxer=h264 --enable-parser=h264 --enable-protocol=file
libavutil 52. 52.100 / 52. 52.100
libavcodec 55. 43.100 / 55. 43.100
libavformat 55. 21.100 / 55. 21.100
libavdevice 55. 5.100 / 55. 5.100
libavfilter 3. 91.100 / 3. 91.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/mGs/Dropbox/TestFile.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2013-06-23 14:33:09
model : iPhone 4S
model-fra : iPhone 4S
encoder : 6.0
encoder-fra : 6.0
date : 2013-06-23T16:33:09+0200
date-fra : 2013-06-23T16:33:09+0200
make : Apple
make-fra : Apple
Duration: 00:00:42.09, start: 0.000000, bitrate: 20960 kb/s
Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 20880 kb/s, 29.97 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
Metadata:
rotate : 180
creation_time : 2013-06-23 14:33:09
handler_name : Core Media Data Handler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, 63 kb/s (default)
Metadata:
creation_time : 2013-06-23 14:33:09
handler_name : Core Media Data Handler
[NULL @ 0x7fd999802e00] Unable to find a suitable output format for 'test.mp4'
test.mp4: Invalid argument
これはおそらく、ffmpeg構成で有効にするものを忘れたという事実から来ています...しかし、私は何を見つけることができません。
テストファイルは、iPhone4Sカメラから取得したビデオです。
編集:
Enabled decoders:
h264
Enabled encoders:
Enabled hwaccels:
Enabled parsers:
h264
Enabled demuxers:
asf mov rm
h264 mpegts rtsp
Enabled muxers:
ffm h264
Enabled protocols:
file rtp udp
http tcp
Enabled filters:
aformat format trim
anull null
atrim setpts
コマンドラインで指定したにもかかわらず、エンコーダlibx264がアクティブにならないようです...
.mp4
ファイルを作成しようとしていますが、mp4
マルチプレクサが有効になっていません。設定行で--enable-muxer=h264
を--enable-muxer=mp4
に変更すると、機能するはずです。