我在互联网世界等候各位。。。。。
分类: C/C++
2015-10-28 17:57:51
最近在开发一个用于服务器级别的HLS切片工具,想借鉴一下开源的m3u8_segment对TS进行切片分发。结果非常糟糕,这个工具调用了 FFMPEG相关的媒体库,如果上百路流同时进行切片,CPU和内存消耗惊人,更为糟糕的是,在上百路同时进行切片的时候,非常不稳定。
于是乎,自己老老实实动手写了个适合服务器级别的切片工具,在多达300路流TS流同时接收(UDP组播)数据并切片分发,在服务器上CPU和内存消耗都在规定范围
内了。切片原理是通过数字电视知识,通过视频pid过滤出视频流,并找到H264视频流的IDR帧,从该处开切即可以实现。同时要求在每一个分片前增加PAT,PMT表(目的是任何一个
单独的分片都能进行独立播放)。。
切片头部的组织组织顺序是:PAT+PMT+PPS +SPS +IDR帧