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

Удалось настроить трансляцию потокового видео с помощью 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 удалось наладить трансляцию потокового видео, которое, к сожалению, не удалось воспроизвести на андроиде. Это можно списать на мою неграмотность в написании кода для проигрывания потокового видео.
Но, скорее всего, это проблемы эмулятора, поскольку профессиональный софт из андроид маркета, который проверяется модераторами перед публикацией, работает некорректно на нем.
В подтверждение моей теории еще одна статья:







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