树莓派使用 ffmpeg+rtmp 推流直播,延迟严重

2021-01-15 00:52:52 +08:00
 Orciorc

具体描述:树莓派安装SRS,ffmpeg,使用 ffmpeg 作为客户端推流到树莓派本地 nginx 服务器,使用 iPad 上的 VLC 播放器拉 RTMP 流,在 Windows 上使用 Potplayer 拉 RTMP 流,延迟在 5 ~ 7s,反复调试均无改善。

使用过的命令行:

延迟均较大( 5 ~ 10s ),反复调试无效,请教 v 友!

980 次点击
所在节点    问与答
11 条回复
nanfour
2021-01-15 01:04:32 +08:00
换 monibuca,感觉效果好一些。
Orciorc
2021-01-15 01:07:12 +08:00
@nanfour #1 感谢,近期测试一下
ReZer0
2021-01-15 08:49:24 +08:00
如果你对于你的网络环境有自信的话,可以找找这两个参数。
hls_fragment ;
hls_playlist_length;
把数字设置得越小延迟越小,但依赖于网络稳定性。
cpstar
2021-01-15 09:12:43 +08:00
我朋友用的方案是 webrtc
Orciorc
2021-01-15 11:06:22 +08:00
@ReZer0 尝试调过第一个,无改善
ReZer0
2021-01-15 11:54:56 +08:00
@Orciorc 如果你是本地内网测试,这两个参数可以设置成 1 、2 试试。
Lax
2021-01-15 13:38:14 +08:00
SRS 和 Nginx 功能重合了吧,这里分别是做什么功能的?如果推流和播放都是 RTMP 协议,楼上提到的 HLS 参数应该是无关的
tms
2021-01-15 14:09:11 +08:00
正常 rtmp 无专门调优的情况下就是在 5-10s,需要更小延迟可以考虑其他协议。
Orciorc
2021-01-15 14:31:26 +08:00
@Lax 是的,SRS 所集成的 rtmp 也是基于 nginx 的,我两个都进行测试(即使用 srs 自带的 nginx,以及自己安装 nginx+rtmp 模块),但都是延迟很大。
Orciorc
2021-01-15 14:31:52 +08:00
@tms 有哪些比较容易实现的吗?请赐教
tms
2021-01-15 15:43:55 +08:00
@Orciorc
如果用 rtmp 协议的话可以优化到 1-3 秒,需要推流端参数和播放端共同优化,推流端也就是 gop 和 preset 还有 tune 基本你都试过了,播放端得把播放器的首屏延迟和 buffer 调教的比较好,rtmp 可以优化到 1-3 秒。
其他的话开源的像 webrtc 和 srt 协议也可以试试,还有一些私有的 udp 协议等,都可以做到一秒以内。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX