我已经看到以下使用MediaCodec
API 进行编码/解码的示例。
https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/EncodeDecodeTest.java
其中有猜测的呈现时间和从解码信息接收的呈现时间的比较。
assertEquals("Wrong time stamp", computePresentationTime(checkIndex),
info.presentationTimeUs);
因为解码器只是解码编码缓冲区中的数据,我认为在这个编码器的输出 H.264 流中可以解析任何时间戳信息。
我正在编写一个 Android 应用程序,它使用( ) 将编码的 H264 流 (.h264) 混合MediaCodec
到 mp4 容器。我不想使用,因为它需要的 4.3 版本太高了。ffmpeg
libavformat
MediaMuxer
但是,ffmpeg
似乎无法识别由 编码的数据包中的表示时间戳MediaCodec
,因此在尝试从流中读取帧时,我总是得到 NO_PTS 值。
任何人都知道如何在这种情况下获得正确的演示时间戳?