ffmpeg demuxer针对stream info的处理
来源:互联网 发布:怎么申请淘宝旗舰店 编辑:程序博客网 时间:2024/05/18 01:19
ffmpeg demuxer针对stream info的处理,我觉得最重要的就是针对audio/video帧的处理,由于audio每一帧都是关键帧,而video的每一帧由于压缩比例的原因,不可能都是关键帧。那么在制作文件的时候,不可避免的会有错误的time stamps /pts/size/pos数据,以video作为例子:
video的数据 timestamp是相对于stream 的start time而言的,需要减去start time来算出每一帧的相对时间,为omx或者软解做好准备。pts数据必须是连续和有效的。比如MOV spec中就规定了pts的大小,druation的值必须为正数等。当然,根据不同的codec,demuxer或者codec会自己做一些处理,每个codec是不同的。
但是如果一旦数据本身制作的时候就有问题,那么需要demuxer在处理的过程中做一些容错处理,但是这个容错没有规律可言,因为这些数据有可能是没有规律的,这么做的目的是为omx数据处理做好准备。
OMX在接到demuxer的数据时,dts等数据会在对应的时间将buffer的数据解析出来,送到缓冲区,供sink的pad进行处理,如果发现有些数据比如pts太大,那么omx处理不了,便会丢弃frame。当然OMX也会做一些容错,但是跟前面谈到的原因一样,他们也不会有太多的规则可循。那么现象就是video会静止,花屏等,一旦超过一段时间没有数据 ,整个管道便会pause住。
那么针对这类问题,可在demuxer,decoder,sink这三个地方dump的数据进行分析,基本上能解决大部分的问题。
- ffmpeg demuxer针对stream info的处理
- 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
- ffmpeg代码实现自己的demuxer
- 把自定义的demuxer加入ffmpeg源码
- 把自定义的demuxer加入ffmpeg源码
- 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)
- 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)
- FFmpeg demuxer如何
- ffmpeg demuxer and muxer document
- ffmpeg实例muxer/demuxer小结
- FFmpeg codec howto and FFmpeg demuxer howto
- stagefright 支持的demuxer
- FFmpeg rmvb demuxer中COOK 音频解析
- C++ 指针
- xshell评估过期解决办法
- 常用算法与数据结构插图
- CSS Flexbox详解
- Java的Spi机制研究
- ffmpeg demuxer针对stream info的处理
- 课程26 项目5
- leetcode Longest Consecutive Sequence
- [Leetcode] 562. Longest Line of Consecutive One in Matrix 解题报告
- IDL平滑滤波
- 【智能金融】探索和实践大数据时代的风控模型技术
- 【财富空间】专访蓦然认知:只有做得重一些,我们才能活下来
- 【数字经济】NBA+大数据,数字经济重塑体育帝国!
- 2017年12月23日 第四十三天次总结