将TS流文件发送到以太网络上(源码)

时间:2012-12-17 08:53:44
【文件属性】:

文件名称:将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)

网友评论

  • 有问题 基本上用不了
  • 谢谢,需要仔细专研
  • 都是c++写的,不是c的,不过有点帮助。
  • 就是想要的,可以了解TS流的发送,不错!
  • 楼主,编译不通过,有问题呀。
  • 有编译错误啊楼主!
  • 8个积分啊,还不能用啊
  • 可以用,经过修改为多线程的,可以同时发送几十路流,但是码率没法控制所以实时解码接不出来。但可以作为存储压力测试的工具,也算是不错的工具。
  • 可以正常使用,不错
  • 很好的传送TS文件的源代码 ,十分感谢!
  • 为什么我编译有三个错误,谁能告诉我怎么解决? E:\\SendTs2Ip\SendTs2Ip\string_t.h(67) : error C2061: syntax error : identifier 'PCTSTR' E:\\SendTs2Ip\SendTs2Ip\string_t.h(72) : error C2065: 'pszFormat' : undeclared identifier E:\\SendTs2Ip\SendTs2Ip\string_t.h(74) : error C2065: '_vsctprintf' : undeclared identifier
  • 谢谢 需要参考一下 学习研究
  • 工程的代码量不大,可以提供给想要控制发送TS文件时间的弟兄有些用处,参考一下~
  • 下来后,发现跟自己想要的有点出入。。。整体上来说还行。
  • 对于发送ts流文件可以参考!
  • 很好的传送TS文件的源代码
  • 比较郁闷,使用VC编译的c++程序,可以发送TS流,要搬到linux下费了好大劲,代码写的不错
  • 已经编译通过,可以发送ts流,用vlc接收没问题