avconv mp4到webm libvorbis缓冲区溢出

Hal*_*far 4 video mp4 vorbis webm avconv

试图将一堆mp4文件转换为webm.所以我运行以下命令.我用ffmpeg尝试了一个类似的命令.

avconv -i input.mp4 -threads 8 -s 1280x720 -pre libvpx-720p -b 3900k -pass 2 -acodec libvorbis -b:a 128k -ac 2 -f webm -y output/webm
Run Code Online (Sandbox Code Playgroud)

结果是:

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.32.0
  Duration: 00:01:02.90, start: 0.000000, bitrate: 1649 kb/s
    Stream #0.0(und): Video: mpeg4 (Simple Profile), yuv420p, 640x480 [PAR 4:3 DAR 16:9], 1492 kb/s, PAR 853:640 DAR 853:480, 23.94 fps, 30 tbr, 30 tbn, 30 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 152 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
[buffer @ 0x1232600] w:640 h:480 pixfmt:yuv420p
[scale @ 0x123c300] w:640 h:480 fmt:yuv420p -> w:1280 h:720 fmt:yuv420p flags:0x4
[libvpx @ 0x1256d60] v1.0.0
Output #0, webm, to 'output.webm':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf53.21.0
    Stream #0.0(und): Video: libvpx, yuv420p, 1280x720 [PAR 2559:2560 DAR 853:480], q=11-51, pass 2, 3900 kb/s, 1k tbn, 30 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(und): Audio: libvorbis, 44100 Hz, stereo, s16, 152 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 -> libvpx)
  Stream #0:1 -> #0:1 (aac -> libvorbis)
Press ctrl-c to stop encoding
[libvorbis @ 0x1221240] libvorbis: buffer overflow.Audio encoding failed
Run Code Online (Sandbox Code Playgroud)

注意好的错误.libvorbis中的缓冲区溢出.

任何帮助?另类转换命令?

UPDATE

第一遍看起来像这样:

 avconv -i input.mp4 -threads 8 -s 1280x720 -pre libvpx-720p -b 3900k -pass 1 -an -f webm -y output.webm
Run Code Online (Sandbox Code Playgroud)

谢谢!

Hal*_*far 7

原来这是avconv中-pre vs -preset的问题.除了开发人员之外,整个ffmpeg fork到avconv已经打破了社区.现在谷歌搜索任何一种工具的有用信息是没用的.

对于那些在类似问题上结束的人来说,这就是我将mp4转换为webm的方式.

avconv -i "$inputFile" -threads 8 -s 1280x720 -preset libvpx-720p -b 3900k -pass 1 -an -f webm -y "$outputFile"
avconv -i "$inputFile" -threads 8 -preset libvpx-720p -pass 2 -b 3900k -acodec libvorbis -ar 44100 -ac 2 -ab 128k -f webm -y "$outputFile"
Run Code Online (Sandbox Code Playgroud)

这适用于720P mp4到720P WEBM.您可以轻松调整到1080P,预设​​存在.