如何加入不连续的HLS视频和音频?

时间:2018-12-06 22:04:16

标签: video-streaming h.264 video-processing hls m3u8

我正在播放长视频,这些视频无缝地循环播放短视频序列。多亏了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玩家可以应对,但如果出现间断性会怎样?这可能是它对我不起作用的原因吗?

0 个答案:

没有答案
相关问题