gpt4 book ai didi

ffmpeg - 将 RTMP 流式传输到 JANUS-Gateway 仅显示比特率但没有视频

转载 作者:行者123 更新时间:2023-12-04 13:37:33 31 4
gpt4 key购买 nike

我目前正在使用流媒体插件如下
Fancy artchitecture here

OBS--------RTMP--------->NGINX-Server-----FFMPEG(输入RTMP输出RTP)--------->JANUS--- ------webrtc-------->客户端

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

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

(using "-c:v copy" so that no encoding is used and hence reducing the latency)



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

以前我曾尝试使用 RTSP 作为 FFMPEG 的输入,在这种情况下,即使我使用“-c:v copy”,视频也能正常显示,几乎没有延迟。

所以我真的不明白为什么对于 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不要转码。

关于ffmpeg - 将 RTMP 流式传输到 JANUS-Gateway 仅显示比特率但没有视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60856276/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com