Используйте MediaCodec для потоковой передачи H264
В настоящее время я пытаюсь использовать Android в качестве конечной точки Skype. На этом этапе мне нужно кодировать видео в H.264 (так какЭто единственный формат, поддерживаемый Skype), и инкапсулируйте его в RTP, чтобы потоковая передача работала.
ВидимоMediaRecorder
не очень подходит для этого по разным причинам. Во-первых, он добавляет заголовки MP4 или 3GP послезакончено. Другая причина заключается в том, что для снижения задержки до минимума может потребоваться ускорение аппаратного обеспечения. Тот'Поэтому я хотел бы использовать недавние низкоуровневые дополнения к структуре, а именно:MediaCodec
MediaExtractor
, так далее.
На данный момент я планирую работать следующим образом. Камера записывает свое видео в буфер. MediaCodec кодирует видео с H264 и записывает результат в другой буфер. Этот буфер считывается RTP-инкапсулятором, который отправляет данные потока на сервер. Вот'Мой первый вопрос: кажется ли вам этот план осуществимым?
Сейчас я'Я уже застрял на первом этапе. Поскольку вся документация в Интернете об использовании камеры используетMediaRecorder
Я не могу найти способ сохранить свои необработанные данные в буфере до кодирования. ЯвляетсяaddCallbackBuffer подходит для этого? У кого-нибудь есть ссылка с примером?
Далее я не могу найти много документации о MediaCodec (так какдовольно новый). У кого есть солидный учебник?
И наконец: какие-либо рекомендации по библиотекам RTP?
Заранее большое спасибо!