что-то оканчивающееся на .m3u8 (по умолчанию master.m3u8, то есть скорее всего http://192.168.10.201/radio/hls/master.m3u8)
aik>Второй — а нет ли чего по-современнее к nginx? Sonos, можно сказать, софта не имеет.
чего именно посовременнее? на лету надо?
можно посмотреть Kodi
можно конвертить в AAC другого типа пакетизации (ADTS/LATM). Надо смотреть, что умеет жевать плеер
В rtmp используется flv.
aik>Первый вопрос — если заводить этот hls (или играть rtmp?), то что подавать плееру? "mpv http://192.168.10.201/hls/radio" или "mpv rtmp://192.168.10.201/radio" не работают с ffplay/mpv на линухе (пока не до соноса долбаного).
А вообще, hls — это как раз mpegts, нарезанный на чанки, с плейлистом. И ты здесь приводишь адрес одного конкретного чанка .ts из hls (судя по адресу). Смысла в этом ровно ноль, как и нет смысла конвертить hls в hls если можно сразу взять hls (адрес его плейлиста).
Если же сонос не умеет играть hls, то конвертить во что-то можно, но источником надо брать опять же адрес плейлиста, а не конкретный чанк.
если не сильно горит, то я как нибудь добавлю поддержку audio/aac в свой проксик
и кину бинарь сюда, бесплатно, какая там архитектура роутера?
у меня чисто аудио никто никогда не интересовался
только не совсем понятно, колонка тоже hls хочет или там прогрессив стрим?
если прям срочно надо
можно поиграться с gstreamer
там вроде можно скрутить что бы он и тянул стрим и вещал в нужном формате
из остального что приходит на ум
это полу платные решения
тот же nimble можно взять старую версию, которая не требует постоянной подписки
но для сгенерировать статичный конфиг, нужно будет интерфейс один раз подключить
/hls отправляет в /tmp, а там не появляется ничего в папке /tmp/radio. Что то должно тригернуть nginx чтоб он туда положил этот сколькотосекундный фрагмент.
aik>>Второй — а нет ли чего по-современнее к nginx? Sonos, можно сказать, софта не имеет. DP>чего именно посовременнее? на лету надо?
На лету, это ж радио.
DP>можно посмотреть Kodi DP>можно конвертить в AAC другого типа пакетизации (ADTS/LATM). Надо смотреть, что умеет жевать плеер
Плееры то жрут всё, даже браузер почти всё жрёт, а колонка жрёт только так:
Но состоит он из этих вот .ts.
AD>Если же сонос не умеет играть hls, то конвертить во что-то можно, но источником надо брать опять же адрес плейлиста, а не конкретный чанк.
Тут я запутался. Я тут более простое завести не могу, а если сверху навернуть плейлисты — то как это поможет?
Тут так — у меня ещё есть tvheadend, который эфирное dvb-t радио раздаёт, там h.264+mp2 для видео и просто mp2 для радио, "[demux] Detected file format: mpegts (libavformat)" пишет мне mpv. Sonos так не может, но tvheadend умеет в ffmpeg + "aac" + "raw audio stream", Sonos это жрёт.
И я попробовал на ноуте писать в файл с -f adts, получается проигрываемый файл, т.е. косяк не похоже чтоб в формате был.
Re[3]: Конвертить mpegts поток в audio/aac на лету
А больше кроме http они ничего не умеют. Ну в принципе, можно через nginx-rtmp-module раздавать стрим по http, наверное.
Ну короче, про hls через nginx-rtmp-module можно забыть, так как всё равно есть оригинальный и если его напрямую не удастся завести, то скорее всего и такой бесполезен будет. Сам по себе rtmp сонос не поддерживает.
AD>>Если же сонос не умеет играть hls, то конвертить во что-то можно, но источником надо брать опять же адрес плейлиста, а не конкретный чанк. aik>Тут я запутался. Я тут более простое завести не могу, а если сверху навернуть плейлисты — то как это поможет?
HLS — это всегда обновляемый плейлист и круговой буфер чанков. Поэтому не навернуть не получится.
aik>Тут так — у меня ещё есть tvheadend, который эфирное dvb-t радио раздаёт, там h.264+mp2 для видео и просто mp2 для радио, "[demux] Detected file format: mpegts (libavformat)" пишет мне mpv. Sonos так не может, но tvheadend умеет в ffmpeg + "aac" + "raw audio stream", Sonos это жрёт.
Не понятно.
aik>И я попробовал на ноуте писать в файл с -f adts, получается проигрываемый файл, т.е. косяк не похоже чтоб в формате был.
Файл можешь записать в adts, а вот в rtmp надо flv передавать.
Re[4]: Конвертить mpegts поток в audio/aac на лету
Да можно и http гонять с bbci.co.uk, работает на ноуте, но не в соносе (который вообще понимает https).
upd: а, речь была про http против rtmp. окей.
AD>Ну короче, про hls через nginx-rtmp-module можно забыть, так как всё равно есть оригинальный и если его напрямую не удастся завести, то скорее всего и такой бесполезен будет. Сам по себе rtmp сонос не поддерживает.
Я пока на шаге№1 — как завести хотя бы rtmp, я не могу добиться чтоб nginx запустил ffmpeg. 1 раз удалось, но сразу не понял, а потом не смог повторить.
AD>>>Если же сонос не умеет играть hls, то конвертить во что-то можно, но источником надо брать опять же адрес плейлиста, а не конкретный чанк. aik>>Тут я запутался. Я тут более простое завести не могу, а если сверху навернуть плейлисты — то как это поможет? AD>HLS — это всегда обновляемый плейлист и круговой буфер чанков. Поэтому не навернуть не получится.
ok.
aik>>Тут так — у меня ещё есть tvheadend, который эфирное dvb-t радио раздаёт, там h.264+mp2 для видео и просто mp2 для радио, "[demux] Detected file format: mpegts (libavformat)" пишет мне mpv. Sonos так не может, но tvheadend умеет в ffmpeg + "aac" + "raw audio stream", Sonos это жрёт. AD>Не понятно.
tvtuner -> raspberrypi -> tvheadend софтина -> raw aac -> sonos -> музыка играет.
aik>>"mpv rtmp://192.168.10.201/radio" всё равно не играет. AD>Заменил adts на flv? Url прописал до плейлиста, а не чанка? Ну и урл с nginx я тебе написал выше, а ты всё не туда ломишься.
Яж написал, что надо пойти в директорию /tmp/hls и посмотреть, что он там создает, а не просто вставить playlist.m3u.
hls секция работать не будет, потому что в hls application никто, наверное не паблишит. Её содержимое надо в radio перенести, но тогда она будет работать только тогда, когда кто-то слушает через rtmp, а иначе процесс ffmpeg не запустится сам по себе.
aik>никак.
Еще rtmp module требует worker_processes 1, добавь/поменяй в конфиге.
Re[8]: Конвертить mpegts поток в audio/aac на лету
Так я тоже пробовал.
aik>>mpv http://192.168.10.201/hls/playlist.m3u AD>Яж написал, что надо пойти в директорию /tmp/hls и посмотреть, что он там создает, а не просто вставить playlist.m3u.
Да я понимаю, но в директории пусто если ffpeg не стартовал.
AD>hls секция работать не будет, потому что в hls application никто, наверное не паблишит. Её содержимое надо в radio перенести, но тогда она будет работать только тогда, когда кто-то слушает через rtmp, а иначе процесс ffmpeg не запустится сам по себе.
Я перенёс hls в радио (и работает как ты сказал), а как тогда hls заставить запустить ffmpeg?
aik>>никак. AD>Еще rtmp module требует worker_processes 1, добавь/поменяй в конфиге.
there we gooooo. В uci.conf.template было "worker_processes auto;". Пойду перечитывать что там к чему, потому что с наскока "worker_processes 4;" не работает (auto наверное и есть 4). "1" означает что только один поток процесса будет обрабатывать все 4 сервера? Не катастрофа, но это всё таки роутер, небыстрый. Запускать отдельно несколько nginx, что ли...
Здравствуйте, aik, Вы писали:
aik>Я перенёс hls в радио (и работает как ты сказал), а как тогда hls заставить запустить ffmpeg?
В общем, сегодня мы много узнали нового, но nginx для задачи не подходит. В эторнетах я нашёл несколько вопросов как сделать ondemand для hls в nginx и в ответ зловещая тишина. Но набрёл на:
Здравствуйте, Великий Мессия, Вы писали:
ВМ>хрен поймешь что ваш соснос играет
Да, железяка годная, но софт говно лютое.
ВМ>hls mpegts не играет(хотя по док должен) ВМ>hls adio/aac не играет(хотя по док должен) ВМ>есть пример потока с интернета который он играет? ВМ>что бы хотя бы по исследовать что он хочет
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, Великий Мессия, Вы писали:
ВМ>>hls mpegts не играет(хотя по док должен) ВМ>>hls adio/aac не играет(хотя по док должен) ВМ>>есть пример потока с интернета который он играет? ВМ>>что бы хотя бы по исследовать что он хочет
aik>Это sonos играет: aik>http://live-radio02.mediahubaustralia.com/2TJW/aac/
Как-то думается в сторону попробовать на своём компе преобразовать в нужный формат через ffmpeg и скормить колонке, а затем уже попытаться обосновать это на OpenWRT