总结TS文件格式,早在几个月前就有了这个想法,但一直拖到今天才真正准备写一篇博文来介绍。
再不介绍的话,估计几月后又要去故纸堆里翻东西了,毕竟个人笔记中总结记录的东西太多,搞不好哪天给意外弄丢了。
1. Android的实现
本次博文(下个博文介绍细节吧)以Android实现的
后者是写数据到文件。如果想读懂Android的实现,则需要对native层多媒体开发的基础库——foundation的实现有一定的了解,尤其是AMessage/
ALooper/AHandler/HanderReflect这些Android消息处理模型,否则,你可能都不知道函数调用到哪儿了。
当然,为了理解消息处理模型,我特地写了一个
同时,我也用另外一种方式,抛开Android依赖,使用C语言,实现了一个ts_muxer,参考
的,当然,为了解决诸多兼容性问题,加入了我的一些优化。有需要的可以拿去,就当我是雷锋。。。
2. TS格式是什么?有什么特点?
TS格式跟MP4格式类似,是一种视频文件封装格式(当然,内部可以有声音数据)。
TS格式的存在,有其核心竞争力——录制中系统crash,已存入存储设备的数据,仍能回放。相反,MP4封装格式数据写入过程中,如果意外终止,
那么前面写入的数据就都废了,不能播放。
3. TS与MP4封装格式差异
上面第2条给出了结论,但是为什么是这样的结果?答案是——封装格式差异导致其能否在中