Как получить видеопоток с RTMP-сервера на Android?
Я хочу реализовать потоковую передачу с RTMP- сервера. Например, ниже приведена ссылка на сервер RTMP.
http://usher.justin.tv/find/CHANNELNAME.json?type=any
И хочу сделать это в потоковом режиме.
Я нашел один способ: он подключен к SWF- файлу на сервере Twitch (это слишком медленно) ... Как мне преобразовать его в VideoView из rtmp://
избежать использования Twitch API?
Ответ после запроса:
[
{"node": "video10-2.arn01", "required_info": "","play": "jtv_FO2coLXGNLzCXtvR","meta_game": "Diablo III: Жнец душ", "video_height": 720, "битрейт": 2915.1875, "broadcast_part": 5, "rank": 0, "persistent": "true", "cluster": "arn01", "token": "76b3d8aae0e6eee2bcda8d1acc34103f1a73b595:{\"swfDomains\": [\ \ justin.tv\", \"jtvx.com\", \"xarth.com\", \"twitchtv.com\", \"twitch.tv\", \"newjtv.com\", \"jtvnw.net\", \"wdtinc.com\", \"imapweather.com\", \"facebook.com\", \"starcrafting.com\"], \"streamName\": \"jtv_FO2coLXGNLzCXtvR\", \"expiration\": 1385121067, \" сервер \ ": \" video10-2.arn01 \ "}", "connect": "rtmp://192.16.65.94/app"
, "broadcast_id": 7587457488, "type": "live", "display": "Source", "find_type": "dist"},
{"node": "video12-1.fra01", "required_info": "", "play": "jtv_LuAij7o0_zozQ4jY", "meta_game": "Diablo III: Жнец душ", "video_height": 720, "битрейт": 1600, "broadcast_part": 1, "rank": 1, "persistent": "true", "cluster": "fra01", "token": "b4db7f59d3b4d723624ee50ed2d69519d1a4cebb: {\" swfDomains \ ": [\" justin. tv \ ", \" jtvx.com \ ", \" xarth.com \ ", \" twitchtv.com \ ", \" twitch.tv \ ", \" newjtv.com \ ", \" jtvnw.net \ ", \" wdtinc.com \ ", \" imapweather.com \ ", \" facebook.com \ ", \" starcrafting.com \ "], \" streamName \ ": \" jtv_LuAij7o0_zozQ4jY \ ", \" expiration \ ": 1385121067, \" server \ ": \" video12-1.fra01 \ "}", "connect": "rtmp://199.9.254.232/app"
, "broadcast_id": 7587458496, "type": "high", "display": "High", "find_type": "dist"},
{"node": "video15-2.arn01", "required_info": "", "play": "jtv_e38UUDs1WLMP9wlc", "meta_game": "Diablo III: Reaper of Souls", "video_height": 360, "bitrate": 350, "broadcast_part": 1, "rank": 3, "persistent": "true", "cluster": "arn01", "token": "c416673c070354e1a33edcdb535a195463cd9702:{\"swfDomains\": [\"justin.tv\", \"jtvx.com\", \"xarth.com\", \"twitchtv.com\", \"twitch.tv\", \"newjtv.com\", \"jtvnw.net\", \"wdtinc.com\", \"imapweather.com\", \"facebook.com\", \"starcrafting.com\"], \"streamName\": \"jtv_e38UUDs1WLMP9wlc\", \"expiration\": 1385121067, \" сервер \ ": \" video15-2.arn01 \ "}", "connect": "rtmp://192.16.65.99/app"
, "broadcast_id": 7587458512, "type": "low", "display": "Low", "find_type": "dist"},
{"node": "video12-1.fra01", "required_info": "", "play": "jtv_bRMbL_ROsoHAegM2", "meta_game": "Diablo III: Reaper of Souls", "video_height": 480, "bitrate" ": 800, "broadcast_part": 1, "rank": 2, "persistent": "true", "cluster": "fra01", "token": "bed50de10852dd0f7a24d687f43a10463557b5a3: {\" swfDomains \ ": [\" justin. tv \ ", \" jtvx.com \ ", \" xarth.com \ ", \" twitchtv.com \ ", \" twitch.tv \ ", \" newjtv.com \ ", \" jtvnw.net \ ", \" wdtinc.com \ ", \" imapweather.com \ ", \" facebook.com \ ", \" starcrafting.com \ "], \" streamName \ ": \" jtv_bRMbL_ROsoHAegM2 \ ", \" expiration \ ": 1385121067, \" server \ ": \" video12-1.fra01 \ "}", "connect": "rtmp://199.9.254.232/app"
, "broadcast_id": 7587458528, "type": "medium", "display": "Medium", "find_type": "dist"}]
Я нашел лучший способ для получения потока на ПК: смотреть twitch.tv/justin.tv/own3d.tv потоки в VLC.
Он использует этот код PHP: http://bog.no-ip.biz/sc2/stream2vlc.php
Но я понятия не имею, как реализовать это в проекте Android.
2 ответа
Вы можете использовать Adobe AIR SDK, который может работать на Android. Это очень просто и может работать с RTMP по умолчанию.
Поскольку WebView поддерживает RTSP, возможно, вы можете преобразовать поток из RTMP в RTSP на лету.
Я не пробовал это, но веб-поиск дал мне это, например: RTMP To RTSP перенаправить с использованием wowza и xuggler.