video.js
video.js copied to clipboard
m3u8-parser and mpd-parser - kind for closed-captions
Description
Hello,
for closed-captions (CC) while parsing data we got object
{
id: "Čeština (CC)",
kind: "subtitles",
label: "Čeština (CC)",
language: "cs"
}
which is apart from letters in bracelet same as for notes without CC
{
id: "Čeština",
kind: "subtitles",
label: "Čeština",
language: "cs"
}
Suppossedly for closed-captions the kind should not be "subtitles" but "captions". Can you please confirm this is as required -> therefore we need to differentiate based on existence (CC) in id, or should the kind captions be used <
Reduced test case
null
Steps to reproduce
Parsing m3u8:
#EXTM3U
#EXT-X-VERSION:6
## Created with Unified Streaming Platform (version=1.13.0-29687)
## Edited by Unified manifest-edit, using the following pipeline:
## m3u8_main:
## - manifest_edit.plugins.m3u8_main.default_language:
## - autoselect: 'YES'
## default: 'NO'
## language: .*
## type: SUBTITLES
# AUDIO groups
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",LANGUAGE="cs",NAME="Čeština",DEFAULT=YES,AUTOSELECT=YES,CHANNELS="2",URI="auddesc-audio_ces=128000.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",LANGUAGE="cs",NAME="Čeština (AD)",AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video",CHANNELS="2",URI="auddesc-audio_ces_1=128000.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",LANGUAGE="en",NAME="English",AUTOSELECT=YES,CHANNELS="2",URI="auddesc-audio_eng=128000.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",LANGUAGE="en",NAME="English (AD)",AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.describes-video",CHANNELS="2",URI="auddesc-audio_eng_1=128000.m3u8"
# SUBTITLES groups
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="cs",NAME="Čeština",AUTOSELECT=YES,URI="auddesc-textstream_ces=1000.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="cs",NAME="Čeština (CC)",AUTOSELECT=YES,CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog,public.accessibility.describes-music-and-sound",URI="auddesc-textstream_ces_1=1000.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="cs",NAME="Čeština (forced)",AUTOSELECT=YES,FORCED=YES,URI="auddesc-textstream_ces_2=1000.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="en",NAME="English",AUTOSELECT=YES,URI="auddesc-textstream_eng=1000.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,URI="auddesc-textstream_ger=1000.m3u8"
# variants
#EXT-X-STREAM-INF:BANDWIDTH=1144000,CODECS="mp4a.40.2,avc1.42C01E",RESOLUTION=768x432,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=956000.m3u8
# variants
#EXT-X-STREAM-INF:BANDWIDTH=541000,CODECS="mp4a.40.2,avc1.42C015",RESOLUTION=512x288,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=387000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=945000,CODECS="mp4a.40.2,avc1.42C01E",RESOLUTION=640x360,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=768000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1725000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1024x576,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=1504000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2255000,CODECS="mp4a.40.2,avc1.4D401F",RESOLUTION=1280x720,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=2004000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3291000,CODECS="mp4a.40.2,avc1.4D4028",RESOLUTION=1920x1080,AUDIO="audio-aacl-128",SUBTITLES="textstream",CLOSED-CAPTIONS=NONE
auddesc-video_ces=2981000.m3u8
# keyframes
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=52000,CODECS="avc1.42C015",RESOLUTION=512x288,URI="keyframes/auddesc-video_ces=387000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=102000,CODECS="avc1.42C01E",RESOLUTION=640x360,URI="keyframes/auddesc-video_ces=768000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=127000,CODECS="avc1.42C01E",RESOLUTION=768x432,URI="keyframes/auddesc-video_ces=956000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=200000,CODECS="avc1.4D401F",RESOLUTION=1024x576,URI="keyframes/auddesc-video_ces=1504000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=266000,CODECS="avc1.4D401F",RESOLUTION=1280x720,URI="keyframes/auddesc-video_ces=2004000.m3u8"
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=395000,CODECS="avc1.4D4028",RESOLUTION=1920x1080,URI="keyframes/auddesc-video_ces=2981000.m3u8"
Errors
No response
What version of Video.js are you using?
2.16.
Video.js plugins used.
No response
What browser(s) including version(s) does this occur with?
chrome 121.0.6167.161
What OS(es) and version(s) does this occur with?
windows 10
👋 Thanks for opening your first issue here! 👋
If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can. To help make it easier for us to investigate your issue, please follow the contributing guidelines.
Looks like VHS currently only marks in-stream captions as captions and all ext-x-media subtitles as subtitles, though, according to safari's behavior if there's characteristics, it should be marked as captions. We should probably follow suit.