Android Emulator. Чтение потокового видео через http или rtsp

max аватар
117
Находится в разделах:

 

Удалось настроить трансляцию потокового видео с помощью VLC Media Player, который в данном случае выступает как  Stream Server.

 

Трансляция была  налажена по HTTP и RTSP ввиду ограничений, накладываемых на способы приема стрима в sdk.

Достоверность трансляция была проверена на GOM player и VLC Media Player.

 

Android SDK, поставляемый с дефолтовым эмулятором, который, как оказывается, не всегда работает так, как реальная железка (T-Mobile, HTC, Nexus,) и со стримингом у него явные проблемы (любое обсуждение стриминга на google groups по android). 


 

Согласно документации, MediaPlayer из SDK читает только так называемые «progressive streaming formats» или другими словами 3gp и H.264 MPEG-4.

 

Гуя VLC плеера как бы  не поддерживает стриминг в 3gp, но этого можно добиться благодаря набору параметров:

 

vlc INPUT --sout-transcode-fps FPS --sout '#transcode{width=WIDTH,height=HEIGHT],venc=x264,vcodec=x264,vb=VIDEO_BITRATE]

,scale=1,acodec=mp4a,ab=AUDIO_BITRATE,channels=2,samplerate=22100}:rtp{dst=DESTINATION_IP,

port=10002,port-video=10000,sdp=http://tomato:7777/AndroidBroadcast}' vlc:quit

 

где http://tomato:7777/AndroidBroadcast-  линк, с которого транслируем.

 

 

Проблемы начинаются с андроидом. Он отказывается читать все, что не лежит вне  его sdcard или inner FS.  Все урлы видит, rtsp тоже понимает, но отказывается отображать, постоянно выдавая в LogCat: 

Command PLAYER_INITcompleted with an error or info PVMFFailure при использовании VideoView  в качестве vide surface

 

В остальных случаях -

 

 

Перепробовал всевозможные комбинации форматов ретрансляции, параметров сжатия и отображения – никакого результата. 

 

 

В итоге решил перепробовать уже готовые решения.

 

Пробовал с дома – без прокси, выход в интернет с эмулятора в наличии.

 

1.       Пацан сделал тестовую трансляцию  специально для андроидных телефонов:

rtsp://media-us-1.soundreach.net/slcnlive.sdp

В эмуляторе не работает. В плеерах – работает.

 

2.       Зашел в Android Market поискать аналогичные программы.

И так:

        GiantBomb (5k downloads, 4.5 rating)– просмотр стримового видео. Результат – в эмуляторе не работает.  

 

 

Итог:

С использованием VLC удалось наладить трансляцию потокового видео, которое, к сожалению, не удалось воспроизвести на андроиде.  Это можно списать на мою неграмотность в написании кода для проигрывания потокового видео.

Но, скорее всего, это проблемы эмулятора, поскольку профессиональный софт из андроид маркета, который проверяется модераторами перед публикацией, работает некорректно на нем.

 

 

В подтверждение моей теории еще одна статья:

http://stackoverflow.com/questions/1425502/how-to-display-video-in-the-android-emulator-from-remote-url


Конец
Джордж Бернард Шоу абсолютно уверен в том, что единственный способ что-то узнать — это что-то делать.

На гугль групс пишут, что RTSP не работает на эмуляторе, только на девайсе.

Доступно и понятно.

Не хватает исходников

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке