Как соединить прерывистое видео и аудио HLS? - PullRequest
0 голосов
/ 07 декабря 2018

Я транслирую длинные видео, которые легко зацикливают короткие видео последовательности.Благодаря HLS это возможно, если хранить только одну видеопоследовательность и объединять ее в список воспроизведения мультимедиа, разделяя ее тегами # EXT-X-DISCONTINUITY

1080_video.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10.010000,
0/1080p_0_000.ts
#EXTINF:10.010000,
0/1080p_0_001.ts
#EXTINF:2.635967,
0/1080p_0_002.ts
#EXT-X-DISCONTINUITY
#EXTINF:10.010000,
0/1080p_0_000.ts
#EXTINF:10.010000,
0/1080p_0_001.ts
#EXTINF:2.635967,
0/1080p_0_002.ts
#EXT-X-DISCONTINUITY 
... and so on

Это прекрасно работает.Теперь я хотел бы представить альтернативные варианты воспроизведения звука, чтобы можно было транслировать эти видео-циклы с различными звуковыми дорожками.Для этого я беру каждый из подготовленных мной длинных аудиофайлов и делю их на множество небольших аудиофайлов в соответствии с длительностью воспроизведения видеофрагментов.Я также понял, что если у вас есть # EXT-X-DISCONTINUITY в вашем списке воспроизведения видео, ваш аудио список воспроизведения также должен иметь их.

audio.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.005333,
s000_00.ts
#EXTINF:10.005333,
s000_01.ts
#EXTINF:2.688000,
s000_02.ts
#EXT-X-DISCONTINUITY
#EXTINF:10.005333,
s001_00.ts
#EXTINF:10.005333,
s001_01.ts
#EXTINF:2.688000,
s001_02.ts
... and so on

Видео и аудио объединяются в основной список воспроизведения.

master.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="audio",URI="./audio/audio.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=4500000,RESOLUTION=1920x1080,FRAME-RATE=29.970,NAME="1080p",AUDIO="aac"
1080_video.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720,FRAME-RATE=29.970,NAME="720p",AUDIO="aac"
720_video.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1300000,RESOLUTION=852x480,FRAME-RATE=29.970,NAME="480p",AUDIO="aac"
480_video.m3u8

Это не работает.Он начинает воспроизводиться с видео и аудио, но останавливается на первом теге DISCONTINUITY.

Мои вопросы:

  1. - это то, чего я хочу достичь вообще?взять любой аудиофайл и соединить его с видео, убедившись, что длины сегментов и разрывы приблизительно выровнены?
  2. примерно выровнены, потому что почти невозможно получить более точные результаты, чем те, что я описал выше.Длина сегмента слегка отличается на несколько миллисекунд.Я знаю, что игроки HLS могут с этим справиться, но что, если в игру вступает разрыв?Может ли это быть причиной, почему это не работает для меня?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...