基于FFmpeg的视频播放器之十四:remuxing
Posted 草上爬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于FFmpeg的视频播放器之十四:remuxing相关的知识,希望对你有一定的参考价值。
录像实际上就是remuxing的过程,因此本篇是下一篇——基于FFmpeg的视频播放器之十五:录像的理论部分
最权威的参考当然来自FFmpeg的examples:https://ffmpeg.org/doxygen/trunk/examples.html,remuxing.c
这个例子不做转码,比如改变分辨率、帧率、编码方式等,而且是将整个视频文件从头到尾转存,代码不到200行,学习起来还是比较容易的
个人觉得有两个地方需要注意一下:
一.av_packet_rescale_ts
这个函数用于转封装过程中的时间基(time_base)转换,将AVPacket中各种时间值从一种时间基转换为另一种时间基,比如说mp4转mkv,如果这两种容器的时间基不一样,需要从新计算pts和dts
例子中的函数调用为
av_packet_rescale_ts(pkt, in_stream->time_base, out_stream->time_base);
这个函数和下面的代码段有相同的效果
以上是关于基于FFmpeg的视频播放器之十四:remuxing的主要内容,如果未能解决你的问题,请参考以下文章