这是我目前的ezstream配置
<ezstream>
<url>http://localhost:8000/test</url>
<sourcepassword>password</sourcepassword>
<format>MP3</format>
<filename>playlist.m3u</filename>
<reencode>
<enable>1</enable>
<encdec>
<format>MP3</format>
<match>.mp3</match>
<decode>madplay -b 16 -R 44100 -S -o raw:- "@T@"</decode>
<encode>lame --preset cbr 32 -r -s 44.1 --bitwidth 16 - -</encode>
</encdec>
</reencode>
</ezstream>
它安装到一个icecast服务器,它的解码和编码mp3到一个较低的比特率,我试图将它编码为aac而不是mp3,希望质量提高,因为我听说aac是低于比特率,比mp3更好。
我想知道的是,如果我可以使用aac编码器,如FFmpeg而不是蹩脚的mp3编码器,并获得最终用户的aac而不是mp3,如果是这样,我应该将哪些参数传递给FFmpeg以便它适用于我当前的配置。
答案 0 :(得分:1)
我个人推荐Opus编解码器。它比MP3好得多,包括特别是在较低的比特率下。也无需担心购买编码器许可证。
您可以使用avconv / ffmpeg代替ezstream。
avconv -re -i http://someserver/stream.mp3 -c:a opus -b:a 20k \
-application audio -vbr on -frame_duration 60 \
-content_type audio/ogg \
icecast://source:bar@server:8000/test-20.opus
此示例适用于最新的avconv和最新的Icecast(2.4.1) 如果您的发行版没有该版本,则http://icecast.org/download上有适用于所有主要发行版的软件包。
顺便说一句:如果你坚持使用AAC,购买了编码器许可证等等。以上的例子很容易适应。答案 1 :(得分:1)
由于许可,Icecast没有正式支持AAC。
传递模式中的Icecast是一种流媒体服务器,目前支持Ogg(Vorbis和Theora),Opus,WebM和MP3音频流。
非正式 it might work,但您需要亲自尝试一下。
对于FFmpeg AAC ecoding,您应该使用 Fraunhofer FDK AAC库(libfdk_aac)。您还需要在 ADTS 中使用AAC等可流式格式。
根据您的示例,它似乎使用stdout进行转码。如果您使用madplay将MP3转换为PCM,您应该能够使用以下内容将其编码为AAC:
<encode>ffmpeg -f s16le -ar 44.1k -ac 2 -i - -b:a 32k -ar 44.1k -f adts -</encode>