Привет всем!
Я уже имею некоторый опыт захвата mp3 http или udp пакетов с дальнейшей её переотправкой и приёмом, воспроизведением в месте назначения. Нечто подобное неплохо бы осилить и с HTML5 <audio> в плане приёма и воспроизведения не определённого файла, не потока, а кусков, которые бы подсовывал ему JavaScript после приёма по определённому алгоритму, а audio элемент, в свою очередь, непрерывно воспроизводил бы эти данные, будто он дело имеет с octet-stream. Пока не могу сообразить, как это можно обеспечить. Каждый кусок ведь представляет из себя не законченный медиа файл со всей соответствующей meta информацией, а всего лишь грубо, но при этом ровно порубленную часть бесконечно идущего потока.
HTML5 <audio> split source (Воспроизведение браузером кусков медиаданных)
Модератор: Модераторы разделов
-
- Модератор
- Сообщения: 20936
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: HTML5 <audio> split source
Нечто подобное давно реализовано для видео в HLS и MPEG-DASH. Можно просто использовать HLS без видеодорожки, например. Главное — там используется контейнер MPEG TS, в котором каждый фрагмент самодостаточен.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 497
- ОС: Gentoo Linux
Re: HTML5 <audio> split source
Минуточку... Так ведь и я использую контейнер MPEG-TS, но делает ли это мои куски (пакеты) самодостаточными? Есть ли в звуке "ключевые кадры"? И я с трудом представляю, каким образом я могу по времени правильно запускать play(), чтобы оно воспроизводилось без накладок и без дыр.Bizdelnick писал: ↑26.04.2021 22:26Нечто подобное давно реализовано для видео в HLS и MPEG-DASH. Можно просто использовать HLS без видеодорожки, например. Главное — там используется контейнер MPEG TS, в котором каждый фрагмент самодостаточен.
Ладно, подумаем об HLS. Мне кусками грузить надо не для того, чтобы грузить кусками, а для того, чтобы посредством JS далее это в определённой последовательности подсовывать плееру, а именно, для организации продолжительного кеша. Например в потоке транлируется радио, где говорится о том, что сейчас 13:00:00, а плеер это должен озвучить только тогда, когда наступит 13:01:00. И напротив: включаешь воспроизведение в 13:00:00, JS тут же загрузил всё, начиная с 12:59:00 вплоть до 12:59:59.99 и начал воспроизводить, таким образом у него скажут, что сейчас 13:00:00 только в 13:01:00, в это время уже будут JS загружены куски от 13:00:59.99, хотя, повторюсь, воспроизводятся куски от 13:00:00.00. Я Так же не нашёл, как загруженные HLS куски подсовывать плееру, везде пишут только о том, что плееру подсовываешь некий плейлист, находящийся на сервере. Возможно ли организовать в этих условиях такой кеш?
-
- Модератор
- Сообщения: 20936
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: HTML5 <audio> split source
Вы же писали про MP3. Это не MPEG-TS.
Если границы Ваших пакетов совпадают с границами пакетов MPEG-TS, то да.
В MP3 все фреймы равноценны и самодостаточны.
HLS-плеер, в том числе и написанный на JS, парсит плейлист и подгружает куски. Возьмите код любой открытой реализации и посмотрите, как он это делает.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |