我使用Mumudvb从dvb-t和dvb-s获取信号到RTP Multicast流并成功执行此操作,结果流URL类似于rtp://239.1.2.1:60001。
现在我想知道如何将RTP(或UDP)流转换为Http Live Stream(HLS)?
修改:
我可以使用ffmpeg转换实时流,但是它不稳定,当ffmpeg中发生错误时,会话停止并且无法找到失败,例如重新启动ffmpeg,我正在寻找转换操作的新方法。
非常感谢
答案 0 :(得分:2)
VLC可能会这样做,类似于:
cvlc -vvv rtp://@239.1.2.1:60001
--sout '#std{access=livehttp{seglen=5,delsegs=true,numsegs=5,
index=/path/to/stream.m3u8,
index-url=http://example.org/stream-########.ts},
mux=ts{use-key-frames},
dst=/path/to/stream-########.ts}'
将/path/to/stream*
替换为您要为播放列表和段提供服务的路径,并将http://example.org
替换为您计算机的域名或IP地址。
有关详细信息,请参阅这些command line examples。
我不确定输入错误后VLC是否比ffmpeg更优雅地重试。在任何情况下,您都可以在失败行为后重试脚本here is one example。