我刚从http://ffmpeg.zeranoe.com/builds/下载了“FFmpeg git-070b0e1 32位静态(最新)”。我在Vista计算机上解压缩了文件,然后将PATH更新为指向presets
和bin
个文件夹。
我跑的第一个命令是:
ffmpeg -i C:/a.avi -vcodec libtheora -qscale 6 -acodec libvorbis -ab 128k -vf scale="480:-1" C:/a.ogv
我收到了这个错误:
Please use -q:a or -q:v, -qscale is ambiguous
[NULL @ 0200F800] Unable to find a suitable output format for 'C:/a.ogv''
C:/a.ogv': Invalid argument
我跑的第二个命令是:
ffmpeg -i C:/a.avi -vcodec libx264 -preset slow -profile main -crf 20 -acodec libfaac -ab 128k -vf scale="480:-1" C:/a.mp4
我收到此错误:Unknown encoder 'libfaac'
问题:
我正在尝试转换输入视频(我不知道MIME类型是什么)并将其输出为ogv和mp4,以便我可以在网站上播放。当然,我正在寻找尽可能低的文件大小的最高质量。我已经从我在网上找到的东西中拼出了我的命令。我是在正确的轨道上吗?我该怎么做才能改善?
答案 0 :(得分:4)
我不使用Windows,因此我无法就您的文件名问题提出任何建议。
至于你关于使用x264的第一个问题,你有一个良好的开端虽然我会消除-profile main
它很可能不是必需的。同时将scale="480:-1"
替换为scale="trunc(oh*a*2)/2:480"
以防止奇数大小的输出;否则您最终可能会收到错误:[libx264] height not divisible by 2
。此编码器的基本建议是使用给出的最高-crf
值和可接受的质量以及您耐心等待的最慢-preset
。见FFmpeg: The ultimate Video and Audio Manipulation Tool和
FFmpeg and x264 Encoding Guide了解更多示例。
Zeranoe版本不包含对libfaac的支持。包括它会使ffmpeg二进制不可再分发。 Zeranoe版本支持的备用AAC编码器为-c:a libvo_aacenc
和本机FFmpeg AAC编码器-c:a aac -strict experimental
。
在ogv中使用libtheora for theora的另一种方法是在webm中使用libvpx for VP8。我对这个编码器没什么经验,所以我不能给你任何建议。
请注意,ffmpeg使用问题更适合superuser.com。
答案 1 :(得分:1)
rob@ Videos$ ffmpeg -i ../Downloads/Nikon_Coolpix_S3000.AVI -f ogg testm.ogv
ffmpeg version git-2012-08-29-85c8303 Copyright (c) 2000-2012 the FFmpeg developers
built on Aug 29 2012 08:59:14 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
libavutil 51. 70.100 / 51. 70.100
libavcodec 54. 54.100 / 54. 54.100
libavformat 54. 25.104 / 54. 25.104
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 14.100 / 3. 14.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
[avi @ 0x2457260] sample size (1) != block align (2)
[avi @ 0x2457260] non-interleaved AVI
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, avi, from '../Downloads/Nikon_Coolpix_S3000.AVI':
Metadata:
encoder :
maker : NIKON
model : COOLPIX S3000
creation_time : 2010-11-29 21:32:23
Duration: 00:00:02.49, start: 0.000000, bitrate: 3168 kb/s
Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 320x240, 30 tbr, 30 tbn, 30 tbc
Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 352 kb/s
Output #0, ogg, to 'testm.ogv':
Metadata:
model : COOLPIX S3000
maker : NIKON
encoder : Lavf54.25.104
Stream #0:0: Video: theora, yuv422p, 320x240, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream #0:1: Audio: flac, 22050 Hz, mono, s16, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> libtheora)
Stream #0:1 -> #0:1 (pcm_s16le -> flac)
Press [q] to stop, [?] for help
frame= 75 fps=0.0 q=0.0 Lsize= 134kB time=00:00:02.50 bitrate= 438.3kbits/s
video:68kB audio:61kB subtitle:0 global headers:3kB muxing overhead 0.925484%
答案 2 :(得分:1)
首次使用时,错误是要求您将-qscale 6
替换为-q:v 6
对于您的第二个,请注意,libfaac
不再受支持。而是使用libvo_aacenc
您的代码应如下所示:
ffmpeg -i C:/a.avi -vcodec libx264 -preset slow -profile main -crf 20 -c:a libvo_aacenc -b:a 128k -vf scale="480:-1" C:/a.mp4