题
我正在寻找一种提取 FLV 文件的音频部分的方法。
我正在从用户的麦克风进行录音,并且音频是使用 Nellymoser Asao 编解码器. 。这是默认的编解码器,无法更改。
解决方案
mpeg 是出路!它对我来说适用于 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 是由某人通过麦克风录音创建的,则音频将使用专有的 Nellymoser Asao 编解码器 (IIRC) 进行编码。
我想看看 libav编解码器, ,它原生处理 FLV/MP3/Nellymoser,并且应该可以让您访问音频。
我目前正在使用 FFmpeg 版本 SVN-r12665 来实现此目的,没有任何问题(控制台版本,没有任何包装器库)。在非控制台 .NET 环境中使用控制台应用程序有一些注意事项,但这都相当简单。直接使用libavcodec DLL就麻烦多了。
我本来想推荐这个: http://code.google.com/hosting/takenDown?project=nelly2pcm¬ice=7281.
但它已被撤下。很高兴我先得到了一份:-)