b:v
当我尝试转换视频时,出现“无法识别的选项”错误。我使用的是 FFmpeg 版本 SVN-r26402。
这是我的错误日志:
Raw Conversion Log
Started on 2014-06-29 00:02:02 - 2014 Jun 29
Checking File ....
File : /home//public_html/files/conversion_queue/1403982097308ac.mov
File Exists : Yes
Preparing file...
format : mov,mp4,m4a,3gp,3g2,mj2
duration : 8.2
size : 11501692
bitrate : 10958
video_width : 1920
video_height : 1080
video_wh_ratio : 1.77777777778
video_codec : h264
video_rate : 30.1219512195
video_bitrate : 10695
video_color : N/A
audio_codec : aac
audio_bitrate : 255
audio_rate : 44100
audio_channels : stereo
path : /home//public_html/files/conversion_queue/1403982097308ac.mov
Converting Video
Conversion Command : /usr/local/bin/ffmpeg -i /home//public_html/files/conversion_queue/1403982097308ac.mov -f mp4 -vcodec flv -r 25 -b:v 300000 -s 854x480 -aspect 1.77777777778 -padcolor 000000 -padtop 0 -padbottom 0 -padleft 0 -padright 0 -acodec libmp3lame -ab 128000 -ar 22050 /home/sillysto/public_html/files/videos/1403982097308ac-sd.mp4 2> /home/sillysto/public_html/files/temp/1403982122311e9.tmp
转换详细信息
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Jun 25 2014 09:39:25 with gcc 4.4.7 20120313 (Red Hat 4.4.7-4)
configuration:
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
Seems stream 0 codec frame rate differs from container frame rate: 1200.00 (1200/1) -> 30.00 (30/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home//public_html/files/conversion_queue/1403982097308ac.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2014-06-15 15:36:26
Duration: 00:00:08.28, start: 0.000000, bitrate: 11099 kb/s
Stream #0.0(und): Video: h264, yuv420p, 1920x1080, 10908 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc
Metadata:
creation_time : 2014-06-15 15:36:26
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 258 kb/s
Metadata:
creation_time : 2014-06-15 15:36:26
Unrecognized option 'b:v'
Failed to stat file /home//public_html/files/videos/1403982097308ac-sd.mp4!
Failed to stat file /home//public_html/files/videos/1403982097308ac-sd.mp4!
Unknown file details - Unable to get output video details using FFMPEG
Time Took : 0.0831 seconds
conversion_status : failed
答案1
您的 ffmpeg 版本已过时。您有两个选择:
新版本将其b:v
视为一个选项。
另外,你应该更新你的命令。这是旧的命令:
ffmpeg -i input.mp4 -f mp4 -vcodec flv -r 25 -b:v 300000 \
-s 854x480 -aspect 1.77777777778 \
-padcolor 000000 -padtop 0 -padbottom 0 -padleft 0 -padright 0 \
-acodec libmp3lame -ab 128000 -ar 22050 output.mp4
首先,您不需要-f mp4
。我也不确定您是否真的想要 FLV 作为视频编解码器。这非常低效。您可能需要 MPEG-4 Part II 或 MPEG-4 AVC 视频。后者提供更好的质量,并且与 HTML5 和当今大多数设备兼容。MP3 音频也可以转换为 AAC 音频。
我们选择-c:v libx264
x264 编码器,并使用恒定速率因子设置质量。23 是默认值,合理的值在 18 到 28 之间。值越小,质量越好。-b:v 500k
例如,您也可以使用 来设置恒定比特率。x264 编码指南为您提供更多详细信息。
此外,-pad*
选项已被删除,你必须使用过滤pad
器。这个-aspect
选项对我来说似乎没有必要。
ffmpeg -i input.mp4 -c:v libx264 -r 25 -crf 23 \
-s 854x480 \
-vf "pad=width=1920:height=1080:x=0:y=0:color=black" \
-c:a aac -strict experimental -b:a 192k -ar 22050 output.mp4
如果您需要与没有太多处理能力的设备兼容,请添加-profile:v baseline
为选项。