我有一个Android MediaCodec解码器,配置了SurfaceTexture对象的Surface。 MP4文件解码工作正常,可以在设备上看到帧。但是如果尝试使用MediaMuxer重新编码为新的MP4文件,则输出文件大小为零,因为SurfaceTexture.getTimestamp()始终返回0.在这种情况下获取帧展示时间的正确方法是什么?如何在MediaCodec解码器配置SurfaceTexture输出时获取帧时间戳?
0
A
回答
0
时间戳被转发。您从SurfaceTexture获得的时间戳是生产者提供的任何东西。
使用MediaCodec进行解码时,您会在BufferInfo对象中收到时间戳。您可以直接将该时间戳传递给编码器的queueInputBuffer()
,或者如果您使用GLES进行渲染,则会将其传递到eglPresentationTimeANDROID()
,从而使其可用于SurfaceTexture。
+0
只是为了澄清,确实观察到的顺序是这样的: * eglPresentationTimeANDROID(frameTime的) * SurfaceTexture.updateTexImage() * SurfaceTexture.OnFrameAvailableListener.onFrameAvailable() * SurfaceTexture.getTimestamp()返回frameTime的 –
相关问题
- 1. 如何在MSBuild中输出时间戳
- 2. Gson dateformat解析/输出unix时间戳
- 3. 配置时间戳Rails(解决方案)
- 4. 如何从postgres获取时间戳作为时间戳?
- 5. 如何在linux上解释上次输出中的时间戳?
- 6. 从服务器获取的时间戳本地时间戳
- 7. 使用MediaCodec和MTK编解码器编码时选择H264配置文件
- 8. 如何在获取日期()中输入手动时间戳
- 9. 如何从numpy.datetime64获取unix时间戳
- 10. 如何从网页获取时间戳
- 11. 如何从Oracle获取EST时间戳?
- 12. Hot将EnterpriseLibrary.Logging配置为仅输出消息和时间戳
- 13. 从时间戳获取本地时间
- 14. Firebase获取服务器时间戳
- 15. 获取未来时间戳
- 16. Cumulocity API获取时间戳
- 17. 排序输出通过grep获取时间戳
- 18. 如何使用awk取出匹配其时间戳的列表?
- 19. 如何减少MediaCodec H264编码器等待时间
- 20. 如何使用Golang获取UTC时间的时间戳?
- 21. SFML 2.1获取帧时间
- 22. 无法使用MediaCodec将解码器输出馈送到编码器输入
- 23. 如何从自己获取最后退出时间戳?
- 24. 获取时间戳的时区
- 25. C#获取带时区的时间戳
- 26. 如何查找FFMPEG解码给定帧号的演示时间戳?
- 27. 读取计时器任务中的时间戳时出错
- 28. sqlSave:将数据帧时间戳映射到SQL Server时间戳
- 29. MediaCodec输出码率,法令至10%时更新码率
- 30. 在Microstrategy中提取出时间戳
谢谢fadden,我希望你在身边! –