我正在使用 MediaMuxer 类来编辑视频文件以使用 ExoPlayer 库进行播放。基本上我正在做的是从解码这些帧的mp4中提取视频帧,重新编码这些帧并使用
muxer.writeSampleData(..)
这一切都很好,在我的 ExoPlayer 实现完成后,我可以成功播放视频,直到视频的持续时间 >= 20 秒。当我尝试使用至少 20 秒长的视频 (.mp4) 时,就会出现播放问题。对于 MediaMuxer 或 ExoPlayer 对象,日志中没有抛出任何错误或任何其他异常。
播放问题很奇怪,但无论视频长度 >= 20 秒如何,都会以完全相同的方式发生。当播放达到 11 秒标记(进入视频 11 秒)时,帧冻结,ExoPlayer 日志表明播放器的状态已从“就绪”变为“缓冲”,并且无限期地保持在该状态。不会记录其他错误或其他相关信息。
ExoPlayer 日志打印对追踪问题没有任何帮助,因此我不确定问题出在哪里。在我提取帧、解码帧、编码帧并混合它们的视频编辑代码中的某个地方,还是在 ExoPlayer 库中?(无论长度如何,原始视频都可以正常播放)在我的 ExoPlayer 实现中卡在 11 秒标记的视频在我的设备默认 MediaPlayer 上可以正常播放。
有没有人做过类似的事情的经验?对遇到的问题可能出在哪里有任何想法,或者对如何调试有任何进一步的想法?