流视频(HLS,M3U8)时,它真的是连接字幕吗?

时间:2019-04-12 10:32:29

标签: ffmpeg video-streaming hls m3u8 subtitle

我试图创建一个流,其中可转换文件(在我的情况下是.mkv到.m3u8)中的曲目将通过m3u8播放。目前,事实证明可以在多种分辨率之间切换,甚至可以选择音轨,但根本看不到字幕。

视频可以播放,可以切换音轨,但是根本看不到字幕

ffprobe源文件: https://paste2.org/czUePDPj

接下来,执行编码并将其拆分为曲目:

ffmpeg -i '/home/mishkapetran/Загрузки/Rick.mkv' \
-map 0:v:0 -c:v libx264 -profile:v baseline -preset:v superfast -strict -2 -s 426x240   -f hls -hls_time 10 -hls_list_size 0 -segment_list rick240p -hls_segment_filename '/home/mishkapetran/Загрузки/test/Rick240p_%d.ts'      '/home/mishkapetran/Загрузки/test/Rick240p.m3u8' \
-map 0:a:0 -c:a aac                             -f hls -hls_time 10 -hls_list_size 0 -segment_list rick_ru -hls_segment_filename '/home/mishkapetran/Загрузки/test/RickTrack_ru_%d.aac'        '/home/mishkapetran/Загрузки/test/RickTrack_ru.m3u8' \
-map 0:a:1 -c:a aac                             -f hls -hls_time 10 -hls_list_size 0 -segment_list rick_en -hls_segment_filename '/home/mishkapetran/Загрузки/test/RickTrack_en_%d.aac'        '/home/mishkapetran/Загрузки/test/RickTrack_en.m3u8' \
-map 0:s:0 suben.vtt                          -f hls -hls_time 10 -hls_list_size 0 -segment_list en -hls_segment_filename '/home/mishkapetran/Загрузки/test/sub_en_%d.vtt'  '/home/mishkapetran/Загрузки/test/sub_en.m3u8' \
-map 0:s:1 subru.vtt                          -f hls -hls_time 10 -hls_list_size 0 -segment_list ru -hls_segment_filename '/home/mishkapetran/Загрузки/test/sub_ru_%d.vtt'  '/home/mishkapetran/Загрузки/test/sub_ru.m3u8'

然后在同一文件夹中创建m3u8主文件夹:

#EXTM3U
#EXT-X-VERSION:5
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="Russian",LANGUAGE="ru",AUTOSELECT=YES,URI="RickTrack_ru.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",AUTOSELECT=NO,URI="RickTrack_en.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Russian",DEFAULT=YES,FORCED=NO,AUTOSELECT=YES,LANGUAGE="ru",URI="sub_ru.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=NO,FORCED=NO,AUTOSELECT=YES,LANGUAGE="en",URI="sub_en.m3u8"

#EXT-X-STREAM-INF:BANDWIDTH=928000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=480x270,AUDIO="audio",SUBTITLES="subs"
Rick240p.m3u8

1 个答案:

答案 0 :(得分:0)

经过一周的搜索,所有事情都非常简单地决定了: 字幕可以使用.vtt扩展名正常工作,但是您需要在类型中指定application / octet-stream。 对我来说,它是这样的:

plotly