在MediaCodec 的编码时候,需要调用queueInputBuffer( int index, int offset, int size, long presentationTimeUs, int flags) 函数,将装有待编码的帧字节数组传给编码器,第四个参数 代表的编码时间戳,这个编码时间戳非常重要,单位是 微秒,不传或者传错,都会导致解码错误甚至播放不了。
1、不要赋值0,网上好多Demo直接写0,我很好奇到底有没有真正的使用正常。
2、不要自己随便定义一个时间。
3、用系统的时间 System.nanoTime(),这个是纳秒时间,当然不能直接传进去作为参数,亲测,必须再标记个开始时间,然后两者相减,作为参数 (System.nanoTime() - startTime) / 1000
MediaCodec 编码时间戳问题
最新推荐文章于 2025-09-17 14:41:16 发布
在MediaCodec编码时,调用queueInputBuffer函数需传入编码时间戳,单位为微秒,该时间戳非常重要,传错会导致解码错误甚至无法播放。使用时不要赋值0,不要随便定义时间,可使用系统时间System.nanoTime(),标记开始时间后相减并除以1000作为参数。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Stable-Diffusion-3.5
图片生成
Stable-Diffusion
Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

1037

被折叠的 条评论
为什么被折叠?



