H.264 потоковое в реальном времени - PullRequest
5 голосов
/ 07 июля 2011

Я пытаюсь создать систему, которая транслирует потоковое видео и аудио, захваченное на телефонах Android.Я хочу использовать медиа-рекордер для кодирования данных и отправки их по RTP, но проблема в том, как я могу получить закодированные данные в буфере.

Ответы [ 2 ]

1 голос
/ 06 июля 2012

Я нашел два других варианта (я тоже не пробовал):

  1. FileDescriptor для буфера памяти: http://www.devdaily.com/java/jwarehouse/android/core/java/android/os/MemoryFile.java.shtml
  2. Android 4.0 реализует мультимедийный API OpenMAX:http://developer.android.com/about/versions/android-4.0-highlights.html

Последнее, вероятно, ваша лучшая ставка.

1 голос
/ 07 июля 2011

Вы не можете. По крайней мере, вы не можете без некоторых хаков. Медиа-рекордер не поддерживает запись в буферы.

Хитрость в том, чтобы создать канал, извлечь дескриптор канала и передать его в функцию setOutputFile(FileDescriptor fd). У этого подхода есть некоторые проблемы, так как MediaRecorder не записывает медиа-контент потоковым способом. Другими словами, он опирается на тот факт, что он может перемещаться назад по файлу и позже записывать заголовки некоторых пакетов.

Подробнее об этом можно узнать здесь: Трансляция видео с Android - без записи в локальные файлы

...