Closed nadecancode closed 2 years ago
79cfe36419c4b9742b475e6c4c914ecaff293f62
Done ✅
Done ✅
Thank you, mind publishing a release?
v1.0.31
@shiyiya Looks like the quality selection is still rather off. Only "Auto" is available even it's not supposed to since m3u8 has multiple qualities
provide url
provide url
https://api.enime.moe/source/cl7qfww5c000c2gpk1l857zat for primary https://api.enime.moe/source/cl7qfwwbp000d2gpk1dtv15nd for backup
Yes, just tested with my stream, and only can see auto available.
Try running your url on the official hlsjs demo to see if level is supported
Try running your url on the official hlsjs demo to see if level is supported
Looks like they are supported. I could properly get all the levels with example provided in https://github.com/zhw2590582/ArtPlayer/issues/253#issuecomment-1108458428
My videos all work with the official hls.js as well. Also, it seems that when I just go to the URL with the video via link on the site, the quality menu does not appear. If I refresh the page, it appears but only 'auto' is available. If I dump parsed manifest data rates, I get the full list.
Testing https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 on my site (just replacing the video URL, shows the quality levels, but the same problem with no quality menu if not refreshed. This is with Remix SSR code.
Close this issue if it meets expectations
Testing https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8 on my site (just replacing the video URL, shows the quality levels, but the same problem with no quality menu if not refreshed. This is with Remix SSR code.
Latest submission not yet released.
Yes with this test url it does have levels. with 1.0.31 it also shows levels but I don't know if the URL I provided has anything more than Auto
Yes with this test url it does have levels. with 1.0.31 it also shows levels but I don't know if the URL I provided has anything more than Auto
I tested your url on the latest code and works as expected
Yes with this test url it does have levels. with 1.0.31 it also shows levels but I don't know if the URL I provided has anything more than Auto
I tested your url on the latest code and works as expected
Yes, just ran locally and it does have levels now.
Which one should I use as the name of the option if I don't have a name? This doesn't seem to be the right one at the moment?
58fe2a4#diff-873ea15f9df2b309f4d8078f1e958bfd9ec7fd708e354b50eee44121001b506dR33
Which one should I use as the name of the option if I don't have a name? This doesn't seem to be the right one at the moment?
It level name doesn't exist it's auto I think
I need to go work on something else, PR welcome.
I need to go work on something else, PR welcome.
Alright
tested with standalone player from the main, and it seems to work. Thanks.
I need to go work on something else, PR welcome.
Alright
Can you publish a release
58fe2a4#diff-873ea15f9df2b309f4d8078f1e958bfd9ec7fd708e354b50eee44121001b506dR33 Which one should I use as the name of the option if I don't have a name? This doesn't seem to be the right one at the moment?
It level name doesn't exist it's auto I think
I tested the url you provided, all levels have no names, there should not be so many auto
58fe2a4#diff-873ea15f9df2b309f4d8078f1e958bfd9ec7fd708e354b50eee44121001b506dR33 Which one should I use as the name of the option if I don't have a name? This doesn't seem to be the right one at the moment?
It level name doesn't exist it's auto I think
I tested the url you provided, all levels have no names, there should not be so many auto
I tested my URL locally and they're displaying levels fine
Don't mind the danmku stuff I only changed src
But the name may be wrong, check this commit
58fe2a4#diff-873ea15f9df2b309f4d8078f1e958bfd9ec7fd708e354b50eee44121001b506dR33
But the name may be wrong, check this commit
I think only height should be considered so if height is -1 it's auto and for everything else just use height + P
it used height fallback, is right?
it used height fallback, is right?
height is always present unless auto (-1)
if is 9/16 ?
if is 9/16 ?
What do you mean if is 9/16
Like the video on tiktok, the height is bigger than the width?
Or maybe the height is not the height of the video, but something else
I checked the commit, and I think you nailed it. When the name is not provided (which is common for any hls manifested created by ffmpeg, bento4, etc, you used height (e.g., 360, 540, 720, etc) and append 'P'. I would go with the small 'p' since this seems to be a normal convention.
Like the video on tiktok, the height is bigger than the width?
Or maybe the height is not the height of the video, but something else
height is not the height of video, but rather resolution. hls.js named it differently
@phpb-com ok, p @NADESHIKON 👍
I will release new version.
btw, it seems like you stopped tagging the code since 1.0.29, is that intentional?
Create tags whenever you want. I'll create them all at once when I have time.
Potentially found one issue with video not starting unless quality level is selected. This manifest did not load on the latest 'main' standalone player:
#EXTM3U
# Created with Bento4 mp4-dash.py, VERSION=2.0.0-639
#
#EXT-X-VERSION:6
# Media Playlists
# Audio
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,CHANNELS="2",URI="audio/en/mp4a.40.2/playlist.m3u8"
# Video
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=2044501,BANDWIDTH=3790751,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=23.976
video/avc1/1/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=3150649,BANDWIDTH=6084891,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=2560x1440,FRAME-RATE=23.976
video/avc1/2/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=6389726,BANDWIDTH=12514105,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=23.976
video/avc1/3/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=465833,BANDWIDTH=693507,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=23.976
video/avc1/4/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=657292,BANDWIDTH=1045619,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=852x480,FRAME-RATE=23.976
video/avc1/5/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=757477,BANDWIDTH=1241242,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=23.976
video/avc1/6/playlist.m3u8
#EXT-X-STREAM-INF:AUDIO="audio",AVERAGE-BANDWIDTH=1115680,BANDWIDTH=1945022,CODECS="avc1.640029,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=23.976
video/avc1/7/playlist.m3u8
# I-Frame Playlists
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=81235,BANDWIDTH=159186,CODECS="avc1.640029",RESOLUTION=1920x1080,URI="video/avc1/1/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=113634,BANDWIDTH=218379,CODECS="avc1.640029",RESOLUTION=2560x1440,URI="video/avc1/2/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=187642,BANDWIDTH=346985,CODECS="avc1.640029",RESOLUTION=3840x2160,URI="video/avc1/3/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=20587,BANDWIDTH=40616,CODECS="avc1.640029",RESOLUTION=640x360,URI="video/avc1/4/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=30004,BANDWIDTH=60123,CODECS="avc1.640029",RESOLUTION=852x480,URI="video/avc1/5/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=34675,BANDWIDTH=69543,CODECS="avc1.640029",RESOLUTION=960x540,URI="video/avc1/6/iframes.m3u8"
#EXT-X-I-FRAME-STREAM-INF:AVERAGE-BANDWIDTH=49647,BANDWIDTH=99137,CODECS="avc1.640029",RESOLUTION=1280x720,URI="video/avc1/7/iframes.m3u8"
Some output from debug window:
==> hlsFragParsed
==> hlsLevelPtsUpdated
==> hlsFragParsingUserdata
==> hlsFragParsingUserdata
==> hlsBufferAppending
==> hlsInitPtsFound
==> hlsFragParsingInitSegment
==> hlsBufferAppending
==> hlsBufferCodecs
==> hlsFragLoaded
==> hlsFragBuffered
==> hlsFragLoading
==> hlsLevelLoaded
==> hlsFragLoading
==> hlsLevelUpdated
==> hlsLevelLoaded
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsLevelUpdated
==> hlsLevelLoaded
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsLevelUpdated
==> hlsLevelLoaded
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsLevelUpdated
==> hlsLevelLoaded
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsLevelUpdated
==> hlsFragBuffered
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsLevelLoaded
==> hlsFragLoading
==> hlsLevelUpdated
==> hlsLevelLoading
==> hlsLevelSwitching
==> hlsFragLoaded
==> durationchange: 202.20194999999998
==> hlsLevelLoaded
==> hlsFragLoading
==> hlsLevelUpdated
==> hlsManifestLoaded
==> hlsLevelLoading
==> hlsLevelSwitching
==> addsetting
==> hlsBufferFlushing
==> removesetting
==> hlsManifestParsed
==> addsetting
==> hlsBufferFlushing
==> removesetting
==> hlsMediaAttached
==> loadstart
==> timeupdate
==> emptied
==> abort
need m3u8 http url @phpb-com
it used height fallback, is right?
height is always present unless auto (-1)
got zero? https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
it used height fallback, is right?
height is always present unless auto (-1)
got zero? https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
0 is probably a mistake by whoever made this m3u8, since the height is more like creator-defined
it used height fallback, is right?
height is always present unless auto (-1)
got zero? https://test-streams.mux.dev/x36xhzz/url_0/193039199_mp4_h264_aac_hd_7.m3u8
0 is probably a mistake by whoever made this m3u8, since the height is more like creator-defined
You can probably only show "Auto" if there is only one level available, since auto or not it doesn't even matter
@shiyiya try this URL https://cdn.fshck.com/HAH/playlist.m3u8
And 'canplaythrough' event stopped firing as well, with that URL
@shiyiya try this URL https://cdn.fshck.com/HAH/playlist.m3u8
net::ERR_CONNECTION_REFUSED
Is it possible to implement HLS quality selection similar to how Artplayer did it in https://github.com/zhw2590582/ArtPlayer/issues/253#issuecomment-1108458428