我试图用实时低延迟与Android6.0的MediaCodec将h264编码到流中。 大约有6帧从编码器,其我想知道如何降低如何减少MediaCodec H264编码器等待时间
部分代码是等待时间:
while (true) {
encoder->dequeueOutputBuffer(&bufIndex);
}
编码器通过丝网的表面在小320x480 60馈送fps,并通过dequeueOutputBuffer()输出流数据。 大约有6帧数据不能通过dequeueOutputBuffer()立即返回给编码器。换句话说,当第N帧被输入时,第(N-6)帧的编码器输出数据被输入。
问题1 - 如何减少在编码器中缓冲的帧?在第N帧送入编码器后,是否可以输出第N帧?
PS:问题1与this question相同(没有很好的解决方案)。
当表面图形内容突然变为静态时,没有更多的帧送入编码器。奇怪的是,最新的6帧数据无法以“普通速度”输出,它们在大约10秒内缓慢输出。
问题2如何在突然没有数据输入到编码器时减少最新帧输出的延迟?