流RTMP到JANUS网关只显示比特率,但没有视频



我目前正在使用流媒体插件,如下所示这里的奇特艺术架构

OBS--------RTMP-------->NGINX服务器-----FFMMPEG(输入RTMP输出RTP(-------->JANUS--------webrtc-------->客户端

在Janus流媒体接口上使用ffmpeg命令时,我们只能在控制台中看到与ffmpeg输出相对应的比特率,但看不到任何视频。

ffmpeg -i rtmp://localhost/live/test -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://localhost:8004 

延迟(

如果我使用"-c:v libx264",视频显示良好,唯一的问题是它占用CPU并增加延迟。

以前,我曾尝试使用RTSP作为FFMPEG的输入,在这种情况下,即使我使用"-c:v副本",视频显示也很好,几乎没有延迟。

所以我真的不明白为什么RTSP的复制效果很好,但对于RTMP,我必须使用libx264编解码器。如果有人对此有想法,我会洗耳恭听:(

我也遇到过类似的问题,我的问题是我使用的流/视频有很大的GOP大小。对于WebRTC,延迟是亚秒,因此输入源应该具有短间隔I帧。最好删除B帧,因为它们也指向后和向前。

以下是可以用于小GOP大小(4(和删除B帧的命令。

使用RTMP流src:

ffmpeg rtmp://<your_src> -c:v libx264 -g 4 -bf 0 -f rtp -an rtp://<your_dst>

使用mp4文件:

ffmpeg -re -i test.mp4 -c:v libx264 -g 4 -bf 0 -f rtp -an rtp://<your_dst>

-c:v copy不会减少延迟。它只是告诉ffmpeg不要进行代码转换。

最新更新