H264和aac 或者mp3 合并成为ts,并生成m3u8,本地通过http进行观看,支持手机和浏览器播放器观看
ts文件分为三层:ts层(Transport Stream)、pes层(Packet Elemental Stream)、es层(Elementary Stream)。es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层是在pes层上加入了数据流识别和传输的必要信息。
我们先看ts文件的格式分析
通过easyice的工具分析
工具的下载地址 https://pan.baidu.com/s/1o6MDf1C#list/path=%2Feasyice
可以看出ts 文件每一个片都是188个字节,TS 流都是固定等长的188字节包 ,
每个188个字节可以是pat、pmt、音视频包数据,pmt主要是说明这个ts有那些格式,具体格式可以参考pes的
参考的代码如下
第一步写入pat和pmt,在ts文件头就可以
int CTsEncoder::OpenFile(std::string tsFileName)
{
AutoLock(&mutex_Lock);
m_file = fopen(tsFileName.c_str(),"wb");
if (!m_file)
{
return -1;
}
//打开文件的时候写