Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Streaming 从何处开始/拆分mpeg2 ts_Streaming_Iptv_Mpeg2 Ts - Fatal编程技术网

Streaming 从何处开始/拆分mpeg2 ts

Streaming 从何处开始/拆分mpeg2 ts,streaming,iptv,mpeg2-ts,Streaming,Iptv,Mpeg2 Ts,我正在写一个在HTTP上实时传输mpeg2 ts的服务器,我想知道分割mpeg传输流的最佳位置是什么。流将由iptv机顶盒播放,我不知道这些设备的行为 我认为启动流的最佳位置是在I帧之前,但设备在开始解码视频流数据之前可能需要PAT和PMT数据包…您可以从每188字节的TS数据包开始(0x47是启动代码)。MPEG解码器在第一帧时自动跳入。您可以像MS Mediaroom发送突发I帧那样使用技巧,但这需要对您的客户端进行重大更改(以及专利使用费) 为安全起见,应使用自初始化TS段。该段必须包括P

我正在写一个在HTTP上实时传输mpeg2 ts的服务器,我想知道分割mpeg传输流的最佳位置是什么。流将由iptv机顶盒播放,我不知道这些设备的行为


我认为启动流的最佳位置是在I帧之前,但设备在开始解码视频流数据之前可能需要PAT和PMT数据包…

您可以从每188字节的TS数据包开始(0x47是启动代码)。MPEG解码器在第一帧时自动跳入。您可以像MS Mediaroom发送突发I帧那样使用技巧,但这需要对您的客户端进行重大更改(以及专利使用费)

为安全起见,应使用自初始化TS段。该段必须包括PAT/PMT,并以IDR帧开始

例如,这是使用I-Frame播放列表时的要求


请参阅更多信息:

理论上,是的。。实际上,我有时能够通过这样做(不,我不从任何0x47开始,我知道这是TS数据包开始)使一个蹩脚的机顶盒崩溃(顺便说一句,这里非常流行)。解码器也会在第一个I帧之前启动,所以我会在半秒钟内看到一些坏的解码帧。一些播放器需要自初始化TS段,即以PAT/PMT和I帧开始的段。安卓4.4.4播放器不喜欢没有PAT/PMT并且根本无法解码的情况。你找到解决方案了吗?!如果TS包含多个节目(DVB-T捕获的电视节目),如何分割它?例如,我有一个包含足球+烹饪+卡通的TS文件。我如何将此TS文件拆分为3 mpg文件?我可以解释如何以编程方式执行此操作(检查PAT并重写它,获取适当的PMT,查找流标识符,仅提取相关数据,…您可能需要重新编号数据包)-但如果您只想拆分,最好搜索一个工具(ffmpeg?)