需要实现在客户端观看这个直播的时候,是延时 3-5 分钟之后的画面。
1.推上来的流是实时的(不是用 OBS 延时推流做的)
2.这个延时可以在 rtmp 服务端做,也可以在客户端做,我不知道怎么样实现起来比较简单。
3.服务端到客户端未必一定要用 rtmp 或者 hls 有别的办法也行,客户端是 windows,倾向通过 web 页面来展示。
大佬们有没有好的想法。 可以有偿开发。
1
chinvo 2020-04-28 22:43:26 +08:00 via iPhone
Nginx rtmp module 里加延迟
这个模块是 rtmp 推流,出 rtmp 、hls 、dash |
2
shadowind 2020-04-28 23:20:11 +08:00
录制,再延时转推即可。
|
3
bing0 OP @chinvo 你好,我的理解是增加 buffer,但是你不知道过来的码率是多少,结果输出的延时结果就不好控制…
|
4
JerryCha 2020-04-28 23:26:00 +08:00
在客户端做不会被破解吗
|
8
chinvo 2020-04-29 00:48:54 +08:00
|
9
jinliming2 2020-04-29 01:04:10 +08:00 via iPhone
按照我的理解,客户端应该是不好做的,特别你还是 web 端……
不考虑被破解的安全问题。如果是要客户端做,那么服务端推送的就是实时视频,那么为了延迟播放,用户在进入页面后的 3 分钟内将不允许看到任何画面,直到 3 分钟后才开始播放 3 分钟前收到的实时画面。那么这延迟的 3 分钟显示什么? 所以这个肯定是要服务端来做的,这样在用户进入页面的时候,才可以请求到 3 分钟前的画面,立即开始播放。 如果对延迟时间的控制精度不需要太高的话,实际上可以采用分段存文件的方式,比如是每十秒的视频流存一个文件,在客户开始请求的时候就从 3 分钟前的文件开始返回即可。 |
10
ThinkZ 2020-04-29 01:22:35 +08:00 1
ffmpeg 参数 添加 -vf tpad=start_duration=15 -af "adelay=15s|15s"
图像 15 秒,前 15 秒补黑场,简单粗暴,声音同时也要加上 15 秒相同延时 PS,需要重新编码。 ffmpeg -re -i rtmp://xx.xx.xx.xx/xx.xx -vf tpad=start_duration=15 -af "adelay=15s|15s" -acodec aac -vcodec libx264 -f flv rtmp://yy.yy.yy.yy/yy.yy |
11
p2p 2020-04-29 02:18:03 +08:00 via iPhone
所以你保留三分钟的 buffer 不就可以了嘛
|
12
noobsheldon 2020-04-29 08:34:05 +08:00
把直播视频的时间调快三分钟? /doge
|
13
cq65617875 2020-04-29 08:47:18 +08:00
我记得 m3u8 跟 dash 自带切片延时 15s 左右
然后再在上面加分块时间…… dash_fragment Syntax: dash_fragment time Context: rtmp, server, application Sets MPEG-DASH fragment length. Defaults to 5 seconds. |
14
liukanshan 2020-04-29 09:02:13 +08:00
不能增加 buffer 你让别人一进来 难道还要等待 3 分钟吗?告诉楼主比较简单的实现方式 hls 自己建立维护列表 当 web 端请求时 构建一个 3 分钟之前的列表即可 也可有偿开发 d3g6eXVtZW1vcg==
|
15
p2p 2020-04-29 13:13:02 +08:00
realtime stream -> 3 mins+ buffer -> HLS
所以流开始的时间就延迟 3 分钟+ 但这不代表用户进来必然要等三分钟,只是代表用户看到的内容是三分钟+之前发生的 如果三分钟前什么都没发生,那自然是要等 |
16
xmge 2020-04-29 14:54:37 +08:00
别的不知道,我感觉也应该是服务端来做的,服务端负责数组,客户端负责展示。
感觉保存 3 分钟的 buffer 靠谱。 |
17
zhuweiyou 2020-04-29 15:14:30 +08:00
提前 3 分钟开直播,完美解决。
|
19
heiyutian 2020-09-27 22:57:31 +08:00
@ThinkZ 你这个命令例子很有帮助,一下子就看懂了,请问有没有用-codec -cody 这样直接复制同时不处理视频直接增加延迟推流的方法?
|
20
heiyutian 2020-09-27 22:58:32 +08:00
楼上打错了,是 -codec copy
|