多协议、性能稳定、丰富API的流媒体服务器软件
您现在的位置:首页  >  文档  >  接收UDP流

Ti Top Streamer 支持MPEG—TS Over UDP协议,也就是通过UDP网络推送MPEG TS格式的数据流到Ti Top Steamer,在本文中Ti Top Streamer是流的接收方。

关于MPEG TS的资料,网上有很多,可以自己搜索。

下面介绍推流的步骤:

第一步: 创建一个输入流类型为MPEG-TS Over UDP的Application。如下图所示:



第二步:在上面刚刚创建的APP下添加一个UDP Source的直播流。如下图所示:



注1:上图中的IP地址,如果服务器是多网卡情况下,建议您用0.0.0.0即可。如果确定要使用某个IP地址,一定要注意有的服务器有内外网IP映射的问题。(也就说服务器监听的是一个内网地址, 而实际上,外面推流时可能用的是公网IP)

注2:上图中的IP地址,也支持组播地址,例如udp://231.1.1.4:10001
当使用组播地址时,您一定要特别注意,当前服务器是哪个网络接口去接收这个组播流(在多网卡环境下,非常重要,请一定要仔细确认),这个网络接口地址有APP层面的全局配置,也支持某一路流的配置。

注3:如果您的UDP流中有多路音轨,您可以在上面对话框的源流url中使用?audio_pid=xxx 来选择其中的一个音轨。例如udp://0.0.0.0.0:1004?audio_pid=120。这个120就是你设定的音轨的PID,它是10进制的数字。 如果您不清楚这个audio_pid是多少,请查询UDP编码器这一侧的设置,咨询相关人员。

添加成功后,您就可以在直播流列表中看到这路流,它当前的状态"流等待中",如下图所示:



当然,如果你已经开始推流了,那状态会立即变为"流传输中",如下图所示:



那么,可以用什么设备向Ti Top Streamer 推MPEG-TS UDP流呢?

作为接收方,Ti Top Streamer 对于推送方没有任何限制,只要是支持MPEG-TS Over UDP协议即可。广电行业大部分的硬件编码器都支持,在这些编码器上怎么设置,怎么推流,您要咨询 设备厂家或者查询相关设备手册。

下面我们介绍如何用FFMPEG 推送MPEG-TS Over UDP流,FFMPEG 命令如下:

ffmpeg -re -i sample.mp4 -vcodec copy -acodec copy -f mpegts udp://38.101.42.116:10004?pkt_size=1316
			
上面的推流地址,您可以直接拷贝后,把URL中的IP地址和端口替换为你的服务器IP地址和端口号即可。其它部分不用变。

最后,在操作系统层面,您尤其要注意UDP接收缓冲区大小的设置,因为现在的视频码率从1Mbps到高清4Mbps,再到4K的40Mbps,甚至8K的100Mbps,码率大小相差很大。 如果操作系统层面的UDP缓冲区太小就会出现丢帧现象。

以40Mbps的4K视频流为例,每秒5Mbytes,考虑设置默认200毫秒和最大400毫秒的接收缓冲区,那就是默认1Mbytes和最大2Mbytes的缓冲区,请按如下配置:

编辑/etc/sysctl.conf文件,添加如下两行:
net.core.rmem_default=1048576
net.core.rmem_max=2097152
			

保存文件后,执行sysctl -p 让配置立即生效。