通过MP4视频向后搜索时,显示时间戳不正确

时间:2015-09-15 10:24:58

标签: android video h.264 android-video-player mpeg-4

我正在使用MediaCodecMediaExtractor以可变费率播放视频,包括向前和向后。代码使用SpeedControlCallback之类的东西来建立帧间暂停 - 从输出缓冲区向它提供presentationTimeUs字段。

这样可以正常工作,99%的时间,但似乎三星S6 上的AVC编解码器在向后搜索时提供了错误的演示时间 - 它们固定在任何最高值时寻求前锋,如果这是有道理的。缓冲区中的数据是正确/更改的 - 它只是与固定的显示时间不对应。

S6可以使用品牌/ ftype avc1来处理MP4文件中的向后搜索,但我尝试过的其他品牌的H.264视频(mp42isom) 100%的工作时间。相同的文件在Samsung S5以及我尝试过的所有其他设备上都能正常工作。

编解码器记录下来:

09-15 11:16:21.611 2992-16618/? W/EXYNOS_VIDEO_DEC﹕ sCurrentTimestamp(6002033) is smaller than latestTimeStamp(7001744), uses latestTimeStamp

每次向后搜索(SEEK_TO_PREVIOUS_SYNC),并为所有关键帧提供错误的latestTimestampValue

有没有人在Galaxy S6上遇到与AVC编解码器类似的问题,或者是否可以提供任何(非hacky)解决方案?

0 个答案:

没有答案