我正在尝试使用 Android 的 MediaMuxer 和 MediaCodec 来制作 MP4 视频。
如果我通过调用 writeSampleData() 将编解码器中的帧直接排放到多路复用器,则一切正常并生成正确的视频。
但是,如果我尝试首先将这些帧存储在一个数组中,然后再决定将它们发送到多路复用器,即使演示时间戳是正确的,我也无法生成工作视频。
出于某种原因,似乎 mediamuxer 输出不仅取决于演示时间戳,还取决于调用“writeSampleData”的实际时间,尽管我的理解是拥有正确的时间戳就足够了。
任何人都可以对这个问题有所了解吗?