一个小工具,将TS流文件发送到以太网络上。
支持使用UDP或者RTP协议。
根据TS流的PCR值跟踪时间同步发送。
我用的GetTickCount进行发送时间同步,线程按照10毫秒进行轮回,按照Win32系统普通线程切换时间,应该可以保证到10毫秒左右的同步精度。
但听人提过使用GetTickCount进行时间同步,长时间会有时间漂移现象,而且误差会逐渐累加,直到客户端缓冲溢出。
对方提出的处理方案是使用GPS卫星时间同步...个人以为GetTickCount是使用Win32底层的某个高精度时间结果。
在微观上不是很精确,但是宏观上应该是很精确。
我实际曾经使用这个工具,发送过同一个文件三天三夜,客户端使用VideoLan进行在线播放,缓冲设置300ms,没有发现VideoLan缓冲有溢出的情况。
如果这种同步方式,长时间发送,确实有精度问题,希望有同志给出例证和处理方案(除了使用GPS卫星时间以外的方案...)。
以便我改进。
demo中根据以太网通常的MTU值直接按7个TS包进行封装:SetGetTsPacketDataCB(GetTsPacketData,NULL,TS_PACKET_SIZE_MIN*7);如果是其他网络类型,需要根据网络的MTU值调整TS包数量。
2018/5/3 18:47:12
18KB
TS
1