NodeJS - потоковый MP3-плейлист с фиксированной конечной точки HTTP - PullRequest
0 голосов
/ 07 октября 2018

Я хочу передать потоковый список воспроизведения аудиофайлов mp3 с фиксированной конечной точки HTTP на моем сервере, например, http://localhost/stream.mp3.. Я динамически генерирую количество mp3-файлов, поэтому при настройке этой фиксированной конечной точки япока нет полного списка аудиофайлов, которые я хочу транслировать.

Есть ли способ, с помощью которого я могу создать этот тип фиксированной конечной точки потоковой передачи и начать с одного файла, а затем поставить в очередь остальные?как я продолжаю их генерировать?Я использую NodeJS / Express в качестве веб-сервера и генерирую аудио файлы с помощью FFMPEG.

1 Ответ

0 голосов
/ 09 октября 2018

На стороне сервера вы можете добавить mp3-файлы в каталог и использовать их в качестве статических файлов.

На клиентской стороне вы можете попросить клиента опросить каталог на сервере для добавления новых mp3-файлов илисоздайте API на сервере, который будет возвращать список URL вновь добавленных mp3-файлов.Затем клиент может воспроизводить их по порядку, в соответствии с соглашением об именах или по дате и т. Д.

Вы также можете использовать список воспроизведения m3u и добавлять все mp3-файлы, которые существуют в данный момент времени, в список воспроизведения.Когда определенный mp3 подходит к концу, вы можете перезагрузить плейлист m3u, и он также будет иметь все последние версии.

Это требует повторного запроса плейлиста, но это очень маленький файл.Видеопотоки HLS и DASH могут использовать аналогичный подход для Live.

Наличие одного mp3-файла в качестве источника и добавление нового mp3 в него динамически, как вы работаете, будет сложно, я думаю, так как каждый mp3 будет иметь заголовок,Эти заголовки могут иметь разные битрейты и информацию о времени, поэтому вы не можете просто удалить их.Существуют инструменты, которые позволят вам объединить mp3 на стороне сервера (например, http://mp3wrap.sourceforge.net), и тогда вы сможете найти правильное место для передачи проигрывателю следующего байтового диапазона, но стоило бы быть на 100% уверенным, чтодругие техники, описанные выше, не подойдут вам, так как они, вероятно, будут намного проще.

...