我是新手ffmpeg
,只是想建立一个用于流式传输的 SDP 文件。我在运行命令时遇到错误
ffmpeg -re -i "sample.mp4" -f rtp rtp://127.0.0.1:10000 -flags +global_header -c:a libvo_aacenc -vn -map 0:1 -f rtp rtp://127.0.0.1:10002 > 10000.sdp
错误是:
Unknown encoder 'libvo_aacenc'
我该如何解决这个问题?
答案1
您的 ffmpeg 可能未配置--enable-libvo-aacenc
。但是,还有其他更高质量的 AAC 编码器可以与 ffmpeg 一起使用。 ffmpeg -codecs
将列出已为每个支持的编解码器配置的所有编码器;查找“aac”行和该行上列出的编码器。如果您没有任何其他 AAC 编码器,您可以随时使用内置于 ffmpeg 的实验性 AAC 编码器(-strict experimental -c:a aac
),或者构建你自己的 ffmpeg使用您最喜欢的 AAC 编码器。有关选择 AAC 编码器的指导,请参阅 ffmpegAAC 编码指南。
更新:从 FFmpeg 3.0(2016 年 2 月)开始,libvo-aac已从 FFmpeg 中删除因为内置 AAC 编码器质量较高,并且不再处于实验阶段。建议改用内置编码器 ( -c:a aac
) 或 libfdk-aac ( -c:a libfdk_aac
)。
答案2
这为我解决了这个问题:
sudo apt-get install libavcodec-extra