MediaCodec 编码时间戳问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxd_Android/article/details/82145263

在MediaCodec 的编码时候,需要调用queueInputBuffer( int index, int offset, int size, long presentationTimeUs, int flags) 函数,将装有待编码的帧字节数组传给编码器,第四个参数 代表的编码时间戳,这个编码时间戳非常重要,单位是 微秒,不传或者传错,都会导致解码错误甚至播放不了。
1、不要赋值0,网上好多Demo直接写0,我很好奇到底有没有真正的使用正常。
2、不要自己随便定义一个时间。
3、用系统的时间 System.nanoTime(),这个是纳秒时间,当然不能直接传进去作为参数,亲测,必须再标记个开始时间,然后两者相减,作为参数 (System.nanoTime() - startTime) / 1000

猜你喜欢

转载自blog.csdn.net/zxd_Android/article/details/82145263
今日推荐