请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

李老师好,如果要实现读取音视频文件(比如MP4),只处理视频帧,音频直接转封装到输出容器,音频部分在没有解码和编码的情况下什么时候做时间基转换最合适呢??

正在回答 回答被采纳积分+3

1回答

李超 2023-10-07 19:09:42

音频如果不用编解码,直接进行数据拷贝就好了,时间基也不用变,播放器自己会处理。时间基是用于音视频同步用的,视频和音频各自有不同的实践基,播放器播放时会使用各自的时间基将音频和视频都转换成以秒为单位的时间最终完成音视频同步。总之如果你音频不动的话,只需要对音频直接进行拷贝,也就是遇到数据类型为音频的,直接写到输出文件里即可。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯5516533 #1
    感谢回复,目前我是从输入端格式上下文的音频流参数中拿到的采样率,转成AVRational作为音频的时间基,视频在解码后和编码后也分别设置了时间基,音视频交织写到输出容器前,我用一个统一的时间基计算了音视频packet的时间戳,然后按时间戳顺序将packet写到outpucontext中。对于音频,我的dts和pts设置成一样,按时音频间基递增,对于视频解码后编码前设置dts,编码后设置pts,按视频时间基递增。
    1、我不确定我的做法是否合适,请老师指点一下;
    2、并烦请告诉我哪个地方有相关的比较好的例子,我学习一下。
    谢谢啦!
    回复 有任何疑惑可以回复我~ 2023-10-07 23:49:03
  • 李超 回复 提问者 慕斯5516533 #2
    时间基没啥神秘的,也不需要使用统一的方法。它就是一个用于音视频同步的东西,我上面的回答将它的本质说的很清楚了,从你的问题中可以看出,你还是没理解,原因是你并没有把课程的内容学会,或学完,因为在课程的最后几章中,讲解播放器的实现的时,我将这个知识点讲的很透彻了。所以你现在最需要的是将课程的内容完完整整的学完,你就不会有这个疑问了。课程里即讲了理论,又有实战,讲的非常细。
    回复 有任何疑惑可以回复我~ 2023-10-08 08:25:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信