Архив форума Ace Stream
Для разработчиков => Проблемы и решения => Тема начата: madsen от 03 Апреля 2018, 21:48:09
-
Здравствуйте. На спортивных сайтах выкладывают contentId матча. Скажите, пожалуйста, как по этому Id можно получить m3u8 ссылку
-
как по этому Id можно получить m3u8 ссылку
Добавив его (CID) в плейлист медиа-сервера, например. После можно скачать (m3u8) плейлист из веб-интерфейса медиа-сервера.
-
как по этому Id можно получить m3u8 ссылку
Добавив его (CID) в плейлист медиа-сервера, например. После можно скачать (m3u8) плейлист из веб-интерфейса медиа-сервера.
Решусь задать дилетантский вопрос. Я не могу стутчаться, как здесь описано http://acestream.net/demos/http-api/ с контент id и получать m3u8? Хочу написать простенькую прогу, которая бы принимала contentId, получала бы ссылку на m3u8 и пихала бы её в player. Как я понимаю, нужно ip адрес другой, не тот, который в примере
-
Хочу написать простенькую прогу, которая бы принимала contentId, получала бы ссылку на m3u8 и пихала бы её в player.
Это уже сделано - посредством встроенного в движок прокси-сервера или "стороннего" - http://mytalks.ru/index.php?topic=4506.0
Как оба эти подхода, так и свой "велосипед" требуют запущенной копии движка Ace Stream (локального либо удаленного) - именно для того, чтобы "преобразовать" contentId (Р2Р-контент) в другой формат (например в HLS m3u8-плейлист).
-
запустив движок на компьютере, я могу отправлять запрос вида И получать m3u8?
Конкретно из примера в цитате в ответе вернется json, в котором, среди прочего, будет и ссылка на m3u8 HLS плейлист.
Будет гораздо проще, если не играться в угадайку, а сразу внятно описать чего хочется, например:
- имеется исходный контент в виде .торрент файла;
- требуется - скачать его посредством Ace Stream и получить на выходе m3u8 плейлист;
- целевое устройство для воспроизведения этого плейлиста - Apple TV.
-
Хочу написать простенький клиент для ios (для личного пользования), который воспроизводит acestream контент.
Как я понял из http://acestream.net/demos/http-api/ один из вариантов - делать запрос на Api и получать m3u8 ссылку, а затем встявлять её в плеер своего клиента.
Пример из ссылки:
http://127.0.0.1:6878/ace/manifest.m3u8?format=json&sid=0.6045503369100068&transcode_audio=1&transcode_mp3=0&use_api_events=1&use_api_stop=1&id=94c2fd8fb9bc8f2fc71a2cbe9d4b866f227a0209
{
"response": {
"playback_url": "http://127.0.0.1:6878/ace/r/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb.m3u8",
"stat_url": "http://127.0.0.1:6878/ace/stat/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb",
"command_url": "http://127.0.0.1:6878/ace/cmd/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb",
"event_url": "http://127.0.0.1:6878/ace/event/5410b27fc567c35c8547e3b69b141215ce3a1fd7/ef0609c43e560697329d93dae4571edb",
},
"error": null
}
У меня есть только ContentID, который я беру на одном из сайтов.
Какая схема моих дествий, объясните, пожалуйста? Если я скачаю и запущу движок на компьютере, я могу отправлять запрос вида :
http://ip адрес компьютера :port /ace/manifest.m3u8?format=json&id=клнтентID, взятого с сайта
И получать в ответе json содержащий m3u8 ?
Есть ли ещё альтернативный вариант?
-
И получать в ответе json содержащий m3u8 ?
Да, но именно для плеера проще отправлять ссылку вида
http://IP:PORT/ace/manifest.m3u8?format=m3u8&id=a5a7e10612daa2b56fd30c95acf4a1ea580bf21a
и получать в ответе готовый m3u8 плейлист.
Есть ли ещё альтернативный вариант?
Для "непрограммиста" так, например:
- запускаем на ПК Ace Stream;
- заходим в "Медиа-сервер", затем в "Настройки медиа-сервера" и выбираем "HLS" для "live/vod stream type";
- открываем на iOS любой плеер с поддержкой URL в качестве источника и указываем там URL вида http://IP:PORT/ace/getstream?id=a5a7e10612daa2b56fd30c95acf4a1ea580bf21a
-
Спасибо за разъяснения
-
https://youtu.be/BWGa3xT1PEc (https://youtu.be/BWGa3xT1PEc)
Написал таки клиента для ios. Суть такая: на windows запущен движок, со смартфона делается http запрос, в ответ приходит ссылка, вставляется в плеер.
Но не могу сказать, что такой вариант меня бы устроил. Нет возможности держать сервер постоянно в рабочем состоянии. Хочу, чтобы не было взаимодействия с windows-компьютером. Подскажите, пожалуйста, что нужно для того, чтобы реализовать на ios. Что почитать, с чем ознакомиться?
-
Нет возможности держать сервер постоянно в рабочем состоянии.
Что мешает держать сервер в любом другом месте - VPS/VDS (linux/arm), любой линуксовый АРМ мини-хост (RPi и его клоны) и т.д?
что нужно для того, чтобы реализовать на ios. Что почитать, с чем ознакомиться?
Нужно "всего лишь" реализовать движок Ace Stream "c нуля" под iOS/macOS, при этом исходников нет (и у нас пока в планах нет открывать исходники движка).
-
А если говорить про реализацию движка на ios, то каковы масштабы работы, с какими сложностями пришлось бы столкнуться и что вообще нужно знать для этого? Просто пока движок представляет "чёрный ящик" и как он работает, непонятно
-
то каковы масштабы работы, с какими сложностями пришлось бы столкнуться и что вообще нужно знать для этого?
Если грубо, и касаться только части "смотреть", но не "вещать", то нужно написать свою торрент-качалку+HTTP прокси сервер и связать это все слоем АПИ.
-
Какую-то более конкретную, точечную информацию, если вдруг руки дойдут, и знаний хватит, я смогу здесь получить ?
-
Какую-то более конкретную, точечную информацию
Нет конечно. Разве это не очевидно из фразы "у нас пока в планах нет открывать исходники движка"?
Да, и если вдруг и это не очевидно - для нас не проблема портировать Ace Stream под iOS/macOS. Проблема в том, что нам не нужно приложение, которое нельзя опубликовать в яблочном аппсторе.
-
Если грубо, и касаться только части "смотреть", но не "вещать", то нужно написать свою торрент-качалку
а подскажите, как по contentId получить торрент файл или поток?
-
как по contentId получить торрент файл или поток?
"получить" как и откуда? Если локально, то движок сохраняет торрент-файлы в .ACEStream/collected_torrent_files/
А если через http АПИ и "удаленно", то см. http://wiki.acestream.media/Engine_HTTP_API#How_to_get_HTTP_stream
-
я пытаюсь разобраться, как работает движок
Если грубо, и касаться только части "смотреть", но не "вещать", то нужно написать свою торрент-качалку+HTTP прокси сервер и связать это все слоем АПИ.
Ладно, есть не ContentId, есть info hash. С помощью него вы качаете файл с видео трансляции?
-
я пытаюсь разобраться, как работает движок
тогда начинать нужно с http://www.bittorrent.org/beps/bep_0003.html
есть infohash. С помощью него вы качаете файл с видео трансляции?
в том числе. Про инфохеш проще понять на примере https://ru.wikipedia.org/wiki/Magnet-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0
Но в целом infohash, content ID и транспортные файлы (.torrent или .acelive) это все всего лишь разные способы достижения одной и той же цели - получить информацию об участниках и ресурсах Р2Р сети.
-
Не совсем понимаю, как скрыть ip адрес сервера. Например, если запускаешь стрим на виртуальной машине, на компьютере, то в расшифровке acelive файла анонс отображается например так httр://192.168.0.1:7282/announce
То есть, отображается ip локальной машины. Но, если добавляешь трансляцию на удалённом сервере, то в анонсе отображается ip адрес сервера httр://ip_адрес_сервера:порт/announce
А если сервер скрыт за антидоссом, это практически уязвимость для различных манипуляций нехорошими людьми. При знании реального ip адреса сервера, сам антидосс становится совершенно бесполезным.
Читал документацию, но так и не понял, как формируется этот анонс. Пробовал добавлять --tracker и --metatracker, это работает, но вместе с ними всё равно отображается и реальный ip адрес сервера. Может есть решение этого вопроса? Ткните пожалуйста носом, не могу сам найти.
-
Пробовал добавлять --tracker и --metatracker, это работает, но вместе с ними всё равно отображается и реальный ip адрес сервера.
см. http://wiki.acestream.media/Streaming - для начала попробовать --skip-internal-tracker
-
есть infohash. С помощью него вы качаете файл с видео трансляции?
в том числе.
То есть ещё что-то необходимо помомио infohash? Например, я сформировал магнет-ссылку на телеканал
magnet:?xt=urn:btih:c53125c145f7d89e53633cf4fc1f1f48ac389002. Скачать по ней трансляцию не получиться через uTorrent? Она просто добавляется в список торрентов, пишет, что загружается, но процесс сам не идёт
-
Скачать по ней трансляцию не получиться через uTorrent?
нет конечно, при чем здесь "uTorrent" вообще? А через тот же Ace Player открывается "МТВ Ру" по этому инфохешу.
-
Да, открывается.
нет конечно, при чем здесь "uTorrent" вообще?
Ну вы говорили, что нужно первым этапом написать "свою торрент-качалку". До того, как приступить к написанию своей, нужно же понять что и как качать. Вот этот клиент качает же файлы. Вот мне стало интересно, скачает он или нет ;D