Audio 如何将实时RTMP视频转换为实时mp3 Icecast流

Audio 如何将实时RTMP视频转换为实时mp3 Icecast流,audio,rtmp,icecast,Audio,Rtmp,Icecast,我有视频和音频的RTMP实时流。 我可以从RTMP获取ogg音频直播流,并将其转换为Icecast2,然后使用JPlayer在我的网站上获取。 现在我使用这样的命令: /usr/local/bin/ffmpeg -re -i rtmp://192.168.22.12/live/live1 \ -vn -acodec libvorbis -b:a 48k -f ogg - | oggfwd -p -d "" \ -g "" -u "" localhost 8000 somepass live2

我有视频和音频的RTMP实时流。 我可以从RTMP获取ogg音频直播流,并将其转换为Icecast2,然后使用JPlayer在我的网站上获取。 现在我使用这样的命令:

/usr/local/bin/ffmpeg -re -i rtmp://192.168.22.12/live/live1 \
-vn -acodec libvorbis -b:a 48k -f ogg - | oggfwd -p -d "" \
-g "" -u "" localhost 8000 somepass live2
然后,我使用Icecast2流式传输我的实时音频,但它是OGG格式的,所以移动设备不会播放它(Android设备在开始播放之前有30秒的延迟,iOS设备不想播放)

在发送到Icecast2之前,如何将其转换为mp3

如果您使用的是(非常)新的版本,则可以使用ffmpeg来实现此目的。 要测试ffmpeg是否能够流式传输到Icecast,请执行以下操作:

ffmpeg -protocols -v 0 | grep icecast
ffmpeg -re -i rtmp://192.168.22.12/live/live1 -vn \
       -codec:a libmp3lame -b:a 64k -f mp3 \
       -content_type audio/mpeg \
       icecast://source:pass@example.com:8000/mountpoint.mp3
如果返回“icecast”,万岁,您可以执行以下操作:

ffmpeg -protocols -v 0 | grep icecast
ffmpeg -re -i rtmp://192.168.22.12/live/live1 -vn \
       -codec:a libmp3lame -b:a 64k -f mp3 \
       -content_type audio/mpeg \
       icecast://source:pass@example.com:8000/mountpoint.mp3

source
替换为特定用户名(如果您已配置任何用户名),否则将其保留为source。其他事情应该是显而易见的。

如果使用旧版本,请在输入URL中添加'live=1',例如:
-i“rtmp://192.168.22.12/live/live1 live=1“
如果您使用Debian 8,请安装libav工具并将
ffmpeg
替换为
avconv
什么是
source:pass
?Icecast源用户和密码。