文件名称:将TS流文件发送到以太网络上(源码)
文件大小:18KB
文件格式:RAR
更新时间:2012-12-17 08:53:44
TS
一个小工具,将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包数量。
【文件预览】:
SendTs2Ip
----StdAfx.cpp(296B)
----SourceTsFile.cpp(6KB)
----VBuffer.h(8KB)
----VBufferT.h(2KB)
----SendTs2Ip.sln(883B)
----Rtp.h(780B)
----SendTs2Ip.vcproj(7KB)
----Rtp.cpp(3KB)
----string_t.h(2KB)
----SourceTsFile.h(1KB)
----TLock.h(738B)
----ReadMe.txt(1KB)
----Socket.cpp(4KB)
----StdAfx.h(936B)
----Socket.h(1KB)
----Udp.h(531B)
----SendTs2Ip.vcproj.SB-4198B7C3284E.cc.user(1KB)
----SendTs2Ip.cpp(3KB)
----Udp.cpp(4KB)
----SendTs2Ip.dsw(541B)
----SendTs2Ip.dsp(5KB)