我已按照本文档中的步骤安装了ffmpeg和x264:http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
现在我要执行这一行:
sudo /usr/bin/ffmpeg -i input_file.flv -f flv -vcodec libx264 -vpre normal -r 25 -s 0x0 -aspect 1.7777777777778 -padcolor 000000 -padtop 0 -padbottom 0 -padleft 0 -padright 0 -acodec libfaac -ab 128000 -ar 22050 output_file.flv
Input #0, flv, from 'WIN! Jwow.flv':
Metadata:
starttime : 0
totalduration : 101
totaldatarate : 865
bytelength : 10897460
canseekontime : true
sourcedata : BD58B2E43HH1338284027987695
purl :
pmsg :
Duration: 00:01:40.66, start: 0.000000, bitrate: 877 kb/s
Stream #0.0: Video: h264 (Main), yuv420p, 640x360, 745 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 131 kb/s
**File for preset 'normal' not found**
我在以下目录中有预设:
/usr/share/ffmpeg
/usr/local/share/ffmpeg
/home/user/.ffmpeg
/usr/local/src/ffmpeg/presets
仍然出现同样的错误:未找到预设'正常'的文件
这里有什么问题?
额外信息 - 这是我在做ffmpeg -version
时得到的ffmpeg version git-2012-05-31-60de761
built on May 31 2012 15:54:11 with gcc 4.6.3
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --enable-x11grab
答案 0 :(得分:12)
好消息是你正在使用最近的ffmpeg和x264。坏消息是您使用的是过时的语法。 FFmpeg开发非常活跃,并且确实发生了语法更改,当前语法等效于您的命令:
ffmpeg -i input_file.flv -vcodec libx264 -preset medium -crf 23 -acodec libfaac -aq 100 -ar 22050 output_file.flv
我删除了所有多余的东西。为什么填充值为0?什么是将输出调整为0x0?在大多数情况下,您无需更改帧速率,因此我也删除了-r
。
我建议在将libx264与-aq
一起使用时,使用-q:a
(或-b:a
,同样的方式来声明它)而不是-crf
用于libfaac。它类似于faac -q 100
,这是它的默认值。
至于预设,ffmpeg不再使用文本文件来模拟标准的x264预设,而是现在直接通过libx264访问它们。请参阅x264 --fullhelp
以获取预设列表,但忽略placebo
预设,因为这完全是浪费时间。基本用法是使用您耐心等待的最慢预设。
我添加了-crf
选项来控制视频质量。默认值为23.较低的值是较高的质量,理智的范围是18-24。基本用法是使用仍然为您提供可接受质量的最高值。有关更详细的说明,请参阅FFmpeg: The ultimate Video and Audio Manipulation Tool。