首页 > 解决方案 > 使用 ffmpeg 或 gstreamer 将 RTP (OPUS) 流转换为 HLS (AAC) 流

问题描述

我目前在 rtp://127.0.0.1:5006 本地播放的 OPUS 编解码器中有一个 RTP 协议流

我想将此流转换为带有 AAC 编解码器(或其他更容易)的 HLS 协议,以便仅使用浏览器的设备更容易访问它。

我知道 ffmpeg 和 gstreamer 能够做到这一点,但我只是迷失在各种参数/参数中。

目前,我有一个描述我的流的 SDP 文件(不确定这是否正确,我只是在谷歌搜索/阅读规范后编写的)

v=0
t=0 0
m=audio 5006 RTP/AVP 98
c=IN IP4 127.0.0.1
a=recvonly
a=rtpmap:98 opus/48000/2
a=fmtp:98 stereo=0; sprop-stereo=0; useinbandfec=1c

有任何想法吗?

标签: ffmpeggstreamer

解决方案


通过使用以下命令,我能够使它工作。SDP 文件似乎也可以正常工作。

ffmpeg -protocol_whitelist file,udp,rtp -i input.sdp -c:a aac -b:a 128k -ac 2 -f hls -hls_time 4 -hls_playlist_type event outputstream.m3u8

如果其他人像我一样在理解这些论点时遇到问题,请花时间在https://ffmpeg.org/ffmpeg.html中搜索论点并理解它们。那时一切都变得更加简单。


推荐阅读