2012-04-24 3 views
2

Мое требование - играть в потоковое видео в моем приложении для Android. Поток будет превышать RTSP/RTP. Я не контролирую источник; и похоже, что полезная нагрузка RTP не соответствует требованиям, изложенным в Руководстве для разработчиков Video encoding recommendations. В частности, следующее требование, как представляется, нарушается источник видеосигнала:Backport stagefright и NuPlayer для Android 2.2

Для 3GPP и MPEG-4 контейнеров, атом Moov должны предшествовать какие-либо атомы MDAT, но должны преуспеть атом FtyP

В основном , похоже, что мы получаем необработанные данные H264 (не завернутые в контейнер).

Теперь

  1. Я не был в состоянии играть этот поток с помощью MediaPlayer класса на Android 2.2 Samsung Galaxy Tab.
  2. Тем не менее, я смог воспроизвести его на Android 2.3 Samsung Galaxy S.
  3. Некоторые сторонние приложения (MX Player) смогли воспроизвести тот же поток на вкладке Galaxy Tab 2.2.

В обоих случаях 2 и 3 журналы DDMS указывали на то, что среда Stage Fright используется внутри, а в случае 1 используется PVP (то есть OpenCore). Все это приводит меня к заключению, что:

  1. Мой поток не может воспроизводиться каркасом OpenCore.
  2. Мой поток может быть воспроизведен с помощью Stagefright - даже на Android 2.2

Который приносит мне на мой вопрос:

Что портирования stagefright на Android 2,2 привлечь?

Кроме того, я заметил в источнике AOSP, что новый NuPlayer отвечает за воспроизведение потоков RTSP. Вопрос:

  1. Можно ли вообще порт NuPlayer обратно в старых версиях Android (2.2 или 2.3)?
  2. Если да, что мне нужно сделать, чтобы использовать его в своем приложении?

Я знаю, что я могу проверить источники и использовать NDK строить stagefright и NuPlayer (хотя я никогда не работал на уровне НДК). Я не знаю, как мое приложение сможет использовать этот NuPlayer.

ответ

0

У меня возникла аналогичная проблема, но я нашел одно решение. Вам нужно исправить файл system build.prob. Пожалуйста, посмотрите мой вопрос, а также я разместил свой answer.

По умолчанию stagefright сохраняется в файле build.prop. Вы должны включить его и перезагрузить устройство. Затем вы можете получить доступ к платформе stagefright, которая поддерживает ваши требования.

Для потоковой передачи RTSP загрузите файл live555MediaServer.exe в удаленную mechine и сохраните файл мультимедиа в том же месте. Откройте файл live555MediaServer.exe.

Используйте следующий код -

private final String RTSP_FILE = "rtsp://<remote machine IP>/<file name>"; 

mVideoView.setVideoURI(Uri.parse(RTSP_FILE)); 
+0

Это может работать, но, к сожалению, он не решает мой случай использования. Я разрабатываю приложение, которое должно воспроизводить поток RTSP. Я не могу попросить всех пользователей моего приложения пройти весь процесс редактирования файла build.prop после его установки. Я ищу способ сделать это без вмешательства пользователя. – curioustechizen

+0

Посмотрите мой отредактированный ответ. –

+0

К сожалению, это тоже не сработает. Я не контролирую удаленный сервер. Кроме того, удаленный «сервер» является встроенным чипом. – curioustechizen

Смежные вопросы