Android: проблема RTP с H264, MediaCodec в качестве кодера

Я обертываю видео H264 с RTP для потоковой передачи по сети. Для этого я использую MediaCodec Android, настроенный в качестве кодера для генерации H264. Код RTP мой.

Когда я читаю поток (используя мою локальную сеть на потоковом сервере), я могу сказать, когда получен ключевой кадр, потому что видео обостряется до того, что я ожидал. Однако, когда я перемещаю руку по просмотру видео, я вижу значительную пикселизацию до появления следующего ключевого кадра. Мое видео имеет размер 960x720, 30 кадров в секунду, и я посылаю ключевой кадр каждые 2 секунды.

Я могу накачать сырой h264 (не упакованный как RTP) из кодировщика MediaCodec через сокет датаграмм и воспроизвести его с помощью ffplay. Там нет таких эффектов, когда я делаю это. Это должно быть что-то с инкапсуляцией RTP. Я проверил, что мои стоп-стоп-биты пакетов фрагментации FU-A верны, как и бит маркера заголовка RTP. Я в растерянности, что еще может быть проблемой?

0 ответов

Другие вопросы по тегам