我正在尝试将原始 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 版权所有 (c) 2000-2014 FFmpeg 开发人员于 2014 年 11 月 22 日 17:07:19 使用 gcc 4.8(Ubuntu 4.8.2-19ubuntu1)构建配置:--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 --启用 gnutls --启用 ladspa --启用 libass --启用 libbluray --启用 libbs2b --启用 libcaca --启用 libcdio --启用 libflite --启用 libfreetype --启用 libfribidi --启用 libgme --启用 libgsm --启用 libmodplug --启用 libmp3lame --启用 libopenjpeg --启用 libopus --启用 libpulse --启用 librtmp --启用 libschroedinger --启用 libshine --启用 libspeex --启用 libssh --启用 libtheora --启用 libtwolame --启用 libvorbis --启用 libvpx --启用 libwavpack --启用 libwebp --启用 opengl --启用 x11grab --启用 libxvid --启用 libx265 --启用 libdc1394 --启用-libiec61883 --启用-libzvbi --启用-libzmq --启用-frei0r --启用-libx264 --启用-libsoxr --启用-openal --启用-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
有人能帮助我吗,我真的需要让它发挥作用。
答案1
您已放置比特率选项放在了错误的位置,错误信息告诉你:
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
但也许您对输出视频有非常特殊的需求,因此这并不适合......