我有ubuntu18.04和我安装nginx与rtmp模块,当我发送现场音频和视频-音频不工作。编解码器从视频是h 264和音频mp3。如何使音频工作?
7tofc5zh1#
快速解答:nginx-rtmp不支持HLS上的mp3,但有一些解决方法。但是由于您没有更详细地描述您的使用场景,所以让我在一般场景中讨论它。
您可以使用FFmpeg来发布实时流媒体,或者您应该获得一个支持MP3音频编解码器的编码器。例如:
ffmpeg -re -i doc/source.flv -vcodec copy -acodec libmp3lame \ -f flv rtmp://localhost/live/livestream
不:OBS只支持AAC音频编解码器,正如我所知。您可以使用nginx-rtmp或SRS作为媒体服务器,然后通过以下方式播放RTMP流:
rtmp://localhost/live/livestream
您可能希望将RTMP转换为其他播放器(如H5或移动电话)的其他协议,让我在下一节中描述它。
观众从字面上从来没有使用ffplay或VLC作为播放器,但使用H5或手机,所以你必须隐藏MP3的RTMP到其他协议,这可能不支持的一些媒体服务器。HLS是播放器最常用的协议,请注意nginx-rtmp不支持MP3 over HLS,请参阅#181。经过一些研究,我发现nginx-rtmp强制在HLS流中使用AAC,所以您必须通过合并this补丁来修复它。另一种解决方法是使用SRS,它支持MP3 over HLS和其他协议。有关详细用法,请参阅#296。例如:
hls_acodec mp3;
但是,您可以通过FFmpeg将MP3编解码器转换为AAC,因为AAC现在被广泛使用,几乎所有的服务器和播放器都支持AAC,但它会消耗更多的CPU(每个流约2%)用于音频转码:
ffmpeg -i rtmp://localhost/live/livestream -vcodec copy -acodec aac \ -f flv rtmp://localhost/live/livestream-aac
注:注意你也可以做纯音频直播,通过HTTP-MP3传输。如果需要DVR直播,FLV和MP4都可以。
1条答案
按热度按时间7tofc5zh1#
快速解答:nginx-rtmp不支持HLS上的mp3,但有一些解决方法。
但是由于您没有更详细地描述您的使用场景,所以让我在一般场景中讨论它。
发布MP3实时流媒体
您可以使用FFmpeg来发布实时流媒体,或者您应该获得一个支持MP3音频编解码器的编码器。例如:
不:OBS只支持AAC音频编解码器,正如我所知。
您可以使用nginx-rtmp或SRS作为媒体服务器,然后通过以下方式播放RTMP流:
rtmp://localhost/live/livestream
您可能希望将RTMP转换为其他播放器(如H5或移动电话)的其他协议,让我在下一节中描述它。
播放MP3实时流媒体
观众从字面上从来没有使用ffplay或VLC作为播放器,但使用H5或手机,所以你必须隐藏MP3的RTMP到其他协议,这可能不支持的一些媒体服务器。
HLS是播放器最常用的协议,请注意nginx-rtmp不支持MP3 over HLS,请参阅#181。经过一些研究,我发现nginx-rtmp强制在HLS流中使用AAC,所以您必须通过合并this补丁来修复它。
另一种解决方法是使用SRS,它支持MP3 over HLS和其他协议。有关详细用法,请参阅#296。例如:
hls_acodec mp3;
,使第一段写入,而不更改HLS的PMT。但是,您可以通过FFmpeg将MP3编解码器转换为AAC,因为AAC现在被广泛使用,几乎所有的服务器和播放器都支持AAC,但它会消耗更多的CPU(每个流约2%)用于音频转码:
注:注意你也可以做纯音频直播,通过HTTP-MP3传输。如果需要DVR直播,FLV和MP4都可以。