我正在寻找一种方法来提取 FLV 文件的音频部分。
我正在从用户的麦克风录制,音频是使用Nellymoser Asao Codec 编码的。这是默认编解码器,无法更改。
ffMpeg是要走的路!它适用于我的 SVN Rev 14277。
我使用的命令是:ffmpeg -i source.flv -nv -f mp3 destination.mp3
问题:
如果您收到此错误消息:Unsupported audio codec (n)
,请检查音频标签部分中的FLV 规范。
ffMpeg 可以解码 n=6 (Nellymoser)。
但是对于 n=4(Nellymoser 8-kHz 单声道)和 n=5(Nellymoser 16-kHz 单声道)它不起作用。
要解决此问题,请在录制流时使用默认麦克风速率,否则 ffMpeg 无法对其进行解码。
希望这可以帮助 !
这不是一个确切的答案,但我在调查 FLV 文件以满足业务需求时所做的一些相关说明。
大多数 FLV 音频以 MP3 格式编码,这意味着您可以直接从 FLV 容器中提取它。如果 FLV 是由某人从他们的麦克风录音创建的,则音频将使用专有 (IIRC) 的 Nellymoser Asao 编解码器进行编码。
我会检查libavcodec,它本机处理 FLV/MP3/Nellymoser,并且应该让您获得音频。
我目前正在为此使用 FFmpeg 版本 SVN-r12665,没有任何问题(控制台版本,没有任何包装库)。在非控制台 .NET 环境中使用控制台应用程序有一些注意事项,但这一切都相当简单。直接使用 libavcodec DLL 要麻烦得多。
我打算推荐这个: http ://code.google.com/hosting/takenDown?project=nelly2pcm¬ice=7281 。
但是已经被下架了。很高兴我先得到一份副本:-)