web-dev-qa-db-ja.com

ffmpegを使用して、MPEG-4エンコーダーでyuvからm4vにエンコードする

次のように、未加工のyuvファイルをm4vにエンコードしようとしています。

ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 30 -i akiyo_cif.yuv -vcodec mpeg4 a02.m4v

しかし、それは機能せず、コンソール出力から次のエラーを受け取りました。

ffmpegバージョン2.4.3-1ubuntu1〜trusty6 Copyright(c)2000-2014 2014年11月22日17:07:19にgcc 4.8(Ubuntu 4.8.2-19ubuntu1)構成で構築されたFFmpeg開発者:--prefix =/usr- extra-version = '1ubuntu1〜trusty6' --build-suffix = -ffmpeg --toolchain = hardened --extra-cflags = --extra-cxxflags = --libdir =/usr/lib/x86_64-linux-gnu- shlibdir =/usr/lib/x86_64-linux-gnu --incdir =/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable- avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable- libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable- libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwav pack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable- frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv

libavutil 54. 7.100/54. 7.100 libavcodec 56. 1.100/56. 1.100 libavformat 56. 4.101/56. 4.101 libavdevice 56. 0.100/56. 0.100 libavfilter 5. 1.100/5. 1.100 libavresample 2. 1. 0/2. 1 。0 libswscale 3. 0.100/3. 0.100 libswresample 1. 1.100/1. 1.100 libpostproc 53. 0.100/53. 0.100

オプションb(ビデオビットレート(-b:vを使用してください))は入力ファイルakiyo_cif.yuvに適用できません-出力ファイルに入力オプションを適用しようとしている、またはその逆です。このオプションが属するファイルの前にこのオプションを移動します。

入力ファイルakiyo_cif.yuvの解析オプションのエラー

入力ファイルを開く際のエラー:引数が無効です

akiyo_cif.yuvファイルはここで不正使用できます。

http://trace.eas.asu.edu/yuv/akiyo/akiyo_cif.7z

誰でも私を助けてください、私は本当にそれを機能させる必要があります。

2
jjfotso

エラーが通知するため、bitrateオプションを間違った場所に配置しました。

Option b (video bitrate (please use -b:v)) cannot be applied to input file 
akiyo_cif.yuv -- you are trying to apply an input option to an output file 
or vice versa. Move this option before the file it belongs to.

FFmpegオプションは常にこのフローを使用することに注意してください。

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

次の調整された構文は、修正されたビットレートオプションを入力ファイルではなく出力ファイルに適用します。

ffmpeg -s cif -r 30 -i akiyo_cif.yuv -c:v mpeg4 -b:v 64k -bt 32k -g 30 a02.m4v

かなり低いビットレートを指定したため、出力ファイルの品質はそれほど優れていませんが、もちろん調整できます。私のシステムでは、次のような高品質のビデオエンコード設定が非常によく見えます。

ffmpeg -s cif -r 30 -i akiyo_cif.yuv -c:v mpeg4 -q:v 5 a02.m4v

しかし、おそらく、これには適さない出力ビデオに対する非常に具体的なニーズがあります...

2
andrew.46