在Ubuntu 10.04服务器上,我使用apt安装了ffmpeg软件包。 ffmpeg在继续工作,并且应该如此。 几乎。
出于testing的目的,我上传了一些audiofiles。 其中一个aif文件没有被正确解释。 而在我的主力(Mac SnowLeopard)ffmpeg告诉格式为
Stream #0.0: Audio: pcm_s24be, 44100 Hz, 2 channels, s32, 2116 kb/s
我的Ubuntu服务器说这是:
Stream #0.0: Audio: pcm_s24be, 44100 Hz, stereo, s16, 2116 kb/s
这是错误的一点点。 Ubuntu然后无法转换与错误信息的文件
[pcm_s24be @ 0xcd4b580]invalid PCM packet Error while decoding stream #0.0
这当然是不正确的。 该文件是完全有效的。
是否有任何知道ffmpeg解释aif格式的问题? 我怎样才能找出哪个版本的aif-codec ffmpeg正在使用? 任何想法如何处理这个问题?
ffprobe输出:
FFprobe version SVN-r20090707, Copyright (c) 2007-2009 Stefano Sabatini libavutil 49.15. 0 / 49.15. 0 libavcodec 52.20. 0 / 52.20. 1 libavformat 52.31. 0 / 52.31. 0 built on Jan 20 2010 00:13:01, gcc: 4.4.3 20100116 (prerelease) Input #0, aiff, from 'testfile.aif': Duration: 00:00:04.00, start: 0.000000, bitrate: 2117 kb/s Stream #0.0: Audio: pcm_s24be, 44100 Hz, stereo, s16, 2116 kb/s
更新2:使用-sample_fmt s32强制转换不会改变任何内容。
奇怪的是:即使没有使用-sample_fmt s32我只是意识到,转换工作,并创build有效的audiofiles。 只是从上面的错误信息。
是的。 根据ffmpeg用户组的信息,在ffmpeg和libav的维护者之间一直存在着“战争”。 而Ubuntu开发团队中的某个人似乎已经采取了libav的一面,为ffmpeg提供了故意破坏的软件包。
不知道这是否全部是真实的,但至less我知道使用apt安装ffmpeg不起作用,而从源代码构build。
这个主题的总结可以在这里find:
http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
尽pipe这只是故事的一面。