本人萌新,见识过的的大多人,直播时直接把所有流送到剪辑机,然后后期上,剪了推到第三方媒体。
我想了一下有没有可能优化,毕竟人一多就容易卡,然后想到,可以用类似种子网络的形式去推拉流。
初步构想是后期机发布一个"类 M3U8 文件",正如其名,让其他所有源去不停读这个文件,然后依据文件内容,去建 p2p 拉它需要的流,在本地渲染出所需要的视频,直接推到媒体。
缺点是有"后期 源"的新延迟,解决 ①上 5G ②中心化网络分权,转移渲染到单一主机上。
这一模型的意义是它可以显著增加单位带宽直播源的最大数量。~~谁知道 5G 来了会不会有什么万人直播之类~~,而且以前没有很可能就是因为网速放大了上面说的新延迟。
附上我脑补的这个文件长相:
#类 m3u8 文件 范例 #分组管理:指定 G1 的全体 G1 { #预申明这一组使用的直播源 Include{ A§V1; A§V2; B§V1; A§A1; B§A1; } #关键帧的导向生成配置部分 Video{ build = [A§V1]{ x_start_at = (0px , 0px) x_end_at = (32px , 32px) y_start_at = (0px , 0px) y_end_at = (32px , 32px) target_fps = 30 Resolution = 640 * 480 Caching = false } build = [A§A1]{ Sampling_Rate = 128 Caching = false } ...... } #全局设置 overall-conf { render-engine{ $1[Nvenc] $2[Sqv] $3[h264] } Vertical_sync = false enableSSL = false process_num = 2 authport = 2333 session-life-period = 61440 } 目前新直播源加入,直播源的 A/V 源改变等时的策略还没想好,也就是接入鉴权。 我初步考虑添加一个"类负反馈"(生物乱入)去控制,祖传密钥对也可以用上,考虑套在一个可信域内完成整个架构,比如 k8s/swarm ...?
如果这个"生命节约版"用词太过精简,你又想深入了解一下,也可以去CSDN看例子多一点的版本。
