当前位置: 首页 > news >正文

高级篇之ENC编码器多机位帧同步配置详解

高级篇之ENC编码器多机位帧同步配置详解

  • 一 帧同步方案多样性
    • 1. 配合vMIX导播的帧同步方案
    • 3. 配合硬件导播的帧同步方案
    • 3. 配合芯象导播的帧同步
  • 二 帧同步方案1实现步骤
    • 1. 准备设备
    • 2. 搭建环境
    • 3 配置设备
      • 3.1 配置固定机位
      • 3.2 配置帧同步转发端
      • 3.3 配置vMIX
  • 三 效果对比
    • 1 不开帧同步效果
    • 2 打开帧同步效果
    • 3 最后来两张芯象效果
  • 四 结束语

老铁们,来了,来了,来了,ENC编码器帧同步方案来了,2023年10月末,ENC编码器再次实现了一个历史性突破,全系产品都将支持多机位场景下的帧同步功能。在多机位拍摄的场景中,帧同步是一个必要的功能。 虽然之前ENC设备也可以借助SRT等协议实现帧同步的效果,但是为了让帧同步功能可以应用到更多场景,在本月的更新中我们实现了任意协议(RTSP/RTMP/SRT/NDI/ONVIF)的编码、解码、串流的帧同步功能。你们可以叫它“全协议帧同步”,哈哈。

前段时间,芯象发布了帧同步功能,我们第一时间做 了MP01设备(无线聚合移动直播编码器)适配,在高级编码参数中,将帧同步设置为”芯象",通过芯象导播软件拉取编码器的流即可开启帧同步。

如果还不知道MP01是什么,请进以下链接熟悉产品(或者直接找我了解):
https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.1d293d0dSSEWCW&ft=t&id=732390864303

在这里插入图片描述

这款产品虽然刚刚上市,但绝对不是一个新产品,为了让产品更加稳定可靠,早已将这个产品投放给一些用户体验,并经过了2年左右的大型活动场景考验(比如马拉松,演讲直播等),期间修复了不少bug。如今终于可以稳定可靠的问世了。

除了MP01, 全系产品这个月底至下月初都将支持帧同步,是不是很期待了,哈哈,上几张方案图,让大家先有个整体概念。

一 帧同步方案多样性

为了让设备的利用率达到最大化,就要适应现实存在的各种直播环境,比如vMIX导播,硬件导播、芯象导播,我相信这种多样性肯定是用户的福音,可以大大降低用户的构建成本。

1. 配合vMIX导播的帧同步方案

在这里插入图片描述

3. 配合硬件导播的帧同步方案

在这里插入图片描述

3. 配合芯象导播的帧同步

在这里插入图片描述
看了上面几张图,我相信大家都有了整体概念,就知道如何购置设备搭建环境了,再加上考虑到大多数用户需要编码器配合vMix或硬件切换台使用,下面我就已第1个方案为例,讲解一下如何配置ENC编码器实现多机位帧同步直播。已经有我们设备的,可以直接通过升级固件就可以了。还没有我们设备的,推荐使用ENC1V3作为帧同步解码端,链接如下:“https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.1d293d0dWBRufJ&ft=t&id=727851791291

由于篇幅有限,这里不对MP01移动机位做配置说明,因为移动机位还需要配置聚合服务器,过程有点复杂,有需要的老铁们可以直接联系我。下面就以两个固定机位做配置讲解。

二 帧同步方案1实现步骤

1. 准备设备

固定机位:两台ENC1(A-ENC1B-ENC1
帧同步转发端:一台ENCSH
一台电脑: vMIX导播

假设:
A-ENC1 的IP 是 192.168.1.11
A-ENC1 的IP 是 192.168.1.15
ENCSH 的IP 是 192.168.1.20

说明: 一台ENCSH或者ENC1V3可以转发4路同步帧,因为这里是两机位,所以一台ENCSH足够了,如果需要更多机位(比如超过4路)可以选择我们最大支持8路的ENC5-V2(性价比最高)等其他型号,也可以使用多台ENCSH叠加来实现(NTP服务器会保证时间的一致性)。
注意:实现帧同步的几台编码器,必须开启NTP,并指向相同的NTP服务器。

2. 搭建环境

哈哈,虽然有搭建环境这一步,由于这是高级篇就不多做讲解了,做过直播的应该都知道,拿个交换机或路由器接几根网线的事情,这里略过。这里以局域网为例,如果是设备放到公网,只需要将地址改为公网地址就可以了。

3 配置设备

由于这里主要讲解的是如何配置帧同步,其他配置就不在做说明,其实配置非常so easy。本文中,我们已SRT协议为例,因为SRT协议地址中可以配置延时,这样可以更好的验证帧同步的效果。
关于SRT的详细配置问题可以参考一下另一篇《小白篇之ENC编码器的SRT协议多平台推流配置》

重要说明:
————固定机位编码端的帧同步用芯象或者简易都可以的,接收转发端的帧同步可以自适应。
————接收转发端的帧同步缓冲时间必须大于整体的网络延时,比如用SRT的latency模拟网络延时的话,该缓冲时间就必须大于latency,本例中采用的就是两条SRT流,一个latency=100,一个latency=800缓冲时间设置成2000,并且转发端无需解码,可以选择转成RTSPRTMP都行。
————开帧同步的所有编码器,必须开启NTP,并指向相同NTP服务器

3.1 配置固定机位

登陆到其中一台编码器后台,比如A-ENC1,另一台配置重复这个步骤即可。
首先进入【系统设置】,打开NTP同步,如下图所示:
在这里插入图片描述

然后打开【编码设置】页,选择帧同步类型,目前类型主要包括“芯象”,“简易”两种类型,这里选择“简易”就可以了。
在这里插入图片描述
然后进入【编码设置】的【SRT设置】页,打开对应频道的“开关”,点击保存,比如:
在这里插入图片描述

为了验证效果,这里人为将两个编码器的延时调成不一致,另一台B-ENC1如下:
在这里插入图片描述

打开后频道的拉流地址就是:
A-ENC1: srt://192.168.1.11:9001?mode=caller&latency=100
B-ENC1: srt://192.168.1.15:9001?mode=caller&latency=800

3.2 配置帧同步转发端

帧同步转发端配置就更简单了,首先和3.1一样先配好NTP同步,而且NTP服务器要一致。然后登陆设备后台,进入【编码设置】页的【网络输入】,填入A-ENC1B-ENC1的拉流地址,将"缓冲模式"改为"帧同步",并打开“开关”,如下图所示:
在这里插入图片描述

注意: 这里做帧同步只做转发,不做编解码,无需打开"视频解码"和"音频解码"。

然后进入【编码设置】页的【SRT设置】,打开"Net1"和"Net2"频道的SRT开关,其他参数不用动,如下图:
在这里插入图片描述

根据上图的端口显示,得出帧同步后的拉流地址就是:
A-ENC1: srt://192.168.1.20:9004?mode=caller&latency=50
B-ENC1: srt://192.168.1.20:9005?mode=caller&latency=50

到此,ENC设备的帧同步设置就完成了。

3.3 配置vMIX

vMIX我也是初学者,就不做太详细的讲解,只给出两张拉流配置图吧:
A-ENC1机位的拉流:
在这里插入图片描述

B-ENC1机位的拉流:
在这里插入图片描述

三 效果对比

1 不开帧同步效果

在这里插入图片描述
当不打开帧同步时,同步误差在700毫秒左右,而且随着时间的延长,这个误差可能会更大。

2 打开帧同步效果

在这里插入图片描述

当打开帧同步后,同步误差可能会在0-1帧左右,正常来说,50毫秒以内都算正常,看来我们的编码器表现还是很优秀的。

3 最后来两张芯象效果

在这里插入图片描述

在这里插入图片描述

四 结束语

最后要感谢微赞CEO周总的开放心态,让帧同步尽快在直播业廉价崛起,帧同步最早是TVU的卖点,如今在周总的带领下,各大厂家都支持帧同步了,这样让用户极大的降低了使用帧同步的成本。也希望ENC编码器能在直播行业发光发热。

http://www.lryc.cn/news/209654.html

相关文章:

  • matlab simulink 四旋翼跟拍无人机仿真
  • jenkins、ant、selenium、testng搭建自动化测试框架
  • 【阅读和学习代码】VoxelNet
  • 【23种设计模式】接口隔离原则
  • 【Python机器学习】零基础掌握PartialDependenceDisplay检验、检查
  • Jmeter的接口自动化测试
  • windows c++获取开机启动项
  • 【C++初阶】类和对象——构造函数析构函数拷贝构造函数
  • Java实现SQL分页
  • 软件测试进阶篇----自动化测试脚本开发
  • rust std
  • SpringMVC(下)
  • 分布式操作系统的必要性及重要性
  • 【Javascript】定时器
  • 基于stm32的ADC读取烟雾报警器的数值
  • 无需更换vue-cli 脚手架 uniapp-搭建项目-H5-低版本安卓IOS兼容问题(白屏)(接口请求异常)
  • 【IO面试题 四】、介绍一下Java的序列化与反序列化
  • M1本地部署Stable Diffusion
  • java中的内存分配
  • Matter.js 插件:matter-wrap(世界是圆的)
  • HCIA --- ACL(访问控制列表)
  • Xcode自定义快捷键
  • jmeter界面压测过程卡死解决思路
  • 听GPT 讲Rust源代码--library/std(6)
  • 如何使用gpt提高效率
  • 配置VUE环境过程中 npm报错的处理方案以及VUE环境搭建过程
  • springboot 配置文件加载顺序
  • 二分查找java
  • 深入理解Java中的转义字符
  • VScode 调试 linux内核