我目前正在使用流插件,如下所示:这里的花式建筑
OBS--------RTMP--------->NGINX-Server------FFMPEG(input RTMP输出RTP)--------->JANUS---------webrtc-------->Client
当使用ffmpeg命令(bellow)时,在Janus流接口上,我们只看到控制台中对应于ffmpeg输出的比特率,但没有看到任何视频。
ffmpeg -i rtmp://localhost/live/test -an -c:v copy -flags global_header -bsf dump_extra -f rtp rtp://localhost:8004
(使用"-c:v副本“以避免使用编码,从而减少延迟)
如果我使用"-c:v libx264",这个视频显示得很好,唯一的问题是它占用了大量的CPU并增加了延迟。
以前,我曾尝试使用RTSP作为FFMPEG的输入,在这种情况下,视频显示良好,几乎没有延迟,即使我使用"-c:v复制“。
所以我不知道为什么RTSP的拷贝工作得很好,但是对于RTMP,我必须使用libx264编解码器。如果有人对此有想法的话,我会全神贯注地听着:)
发布于 2021-04-14 10:51:36
我有类似的问题,我的问题是,我使用的流/视频有很大的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
不要转换代码。
https://stackoverflow.com/questions/60856276
复制相似问题