我如何解码 mp3 并使用 ezstream 将其编码为 aac
How can i decode an mp3 and encode it as aac with ezstream
这是我当前的 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 更好较低的比特率。
我想知道的是,我是否可以使用 FFmpeg 之类的 aac 编码器而不是蹩脚的 mp3 编码器,并为最终用户提供 aac 而不是 mp3,如果可以,我应该将哪些参数传递给 FFmpeg它适用于我当前的配置。
个人推荐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,购买了编码器许可证等。改编上面的例子是微不足道的。
由于许可问题,Icecast 官方 不支持 AAC。
Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.
非正式地 it might work 是直通模式,但你需要自己尝试看看。
对于 FFmpeg AAC 编码,您应该使用 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>
这是我当前的 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 更好较低的比特率。
我想知道的是,我是否可以使用 FFmpeg 之类的 aac 编码器而不是蹩脚的 mp3 编码器,并为最终用户提供 aac 而不是 mp3,如果可以,我应该将哪些参数传递给 FFmpeg它适用于我当前的配置。
个人推荐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,购买了编码器许可证等。改编上面的例子是微不足道的。
由于许可问题,Icecast 官方 不支持 AAC。
Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams.
非正式地 it might work 是直通模式,但你需要自己尝试看看。
对于 FFmpeg AAC 编码,您应该使用 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>