我正在尝试通过 UDP 多播发送 m3u8 流,但由于一些特殊要求,我找不到解决方案。
接收此 UDP 多播流的设备是电视头端,它将流转换为 COFDM 多路复用器(DTT 电视频道)。这个该死的设备只接受具有调制所需的准确速度的流。为此,我需要 -re 标志。此外,m3u8 源像往常一样,将流分成几秒的块发送。
然后,当 ffmpeg 收到新的 URL、打开它、读取内容、执行其工作时...图像会稍微冻结。有时,音频和视频会不同步。
所以,我有一个想法,但不知道这是否可行。即,在输入流到来时读取所有输入流(不使用 -re 选项),但实时发出。我读到过某处说没有办法修复输出“速度”。“可悲”的是,使用 ffplay,播放正常。可能是因为它缓冲了 UDP 流。
我遇到的另一个问题是 ffmpeg 不会自动选择最佳质量的流。我需要使用 -map 标志,而我心爱的 TV-Headend 也出现了其他问题。无论如何,这是另一个问题。
简而言之,我如何才能全速读取输入但以 x1 速度发出它,就好像命令有 -re 标志一样?
我正在使用此命令进行流式传输
ffmpeg -re -i http://etbvnogeo-lh.akamaihd.net/i/ETBSTR1_1@595581/master.m3u8 -c:v copy -c:a copy -f mpegts udp://239.0.0.1:1234?pkt_size=1316