ffmpeg:无法找到合适的输出格式libfaac

时间:2012-09-13 11:43:10

标签: video ffmpeg html5-video

我刚从http://ffmpeg.zeranoe.com/builds/下载了“FFmpeg git-070b0e1 32位静态(最新)”。我在Vista计算机上解压缩了文件,然后将PATH更新为指向presetsbin个文件夹。

我跑的第一个命令是:

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'

问题:

  1. 我正在尝试转换输入视频(我不知道MIME类型是什么)并将其输出为ogv和mp4,以便我可以在网站上播放。当然,我正在寻找尽可能低的文件大小的最高质量。我已经从我在网上找到的东西中拼出了我的命令。我是在正确的轨道上吗?我该怎么做才能改善?

    1. 如何解决我遇到的错误?

3 个答案:

答案 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 ToolFFmpeg 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)

来自avi输入的ogv输出工作得很好......

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