New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mpv handling of streamlink hls seems broken with mpv-x86_64-v3-20230507-git-a1580b6 version #11674
Comments
Probably duplicate of #11673 |
May be related I at least gave logs for working version and non working one Feel free to close if you think it's the same Thanks for reading |
Only 230507 started to have this problem. The previous versions were normal. |
Using this command line (from the log, with addition of mpv --no-config '--cache' '2048' '--force-media-title=https://www.twitch.tv/videos/1814843938' 'https://d2nvs31859zcd8.cloudfront.net/84a78156146c00e58213_hasanabi_42170717963_1683572491/chunked/index-dvr.m3u8' For me, it does plays the clip with current master - 0.35.0-378-ga1580b6424 - which is the same version which OP says doesn't play it. However, I'm using an older ffmpeg, and between the OP logs, ffmpeg changed with nearly 100 new commits. Working:
broken:
mpv also changed - 3 commits later, but none of them should be able to affect this (bump meson version, some docs change, and some wayland thing which is irrelevant on windows). So my guess with the data so far is that something in ffmpeg changed in a way which broke it. Or, something at the build process or used versions changed. Like newer gcc, or newer some other library which behaves slightly differently. Unfortunately, AFAIK, shinchiro (which builds the Windows versions) doesn't log the packages versions at the releases files, so it's not easy to tell which versions are used exactly, except the ones which are logged by mpv (mpv itself, libass, ffmpeg). |
But does it show the whole length of the vod? Here is a screenshot with the broken mpv and your command: https://i.imgur.com/l6cVOJO.jpeg Here is a screenshot with the working mpv and your command: https://i.imgur.com/5RiNX9n.jpeg |
When playing hls, it becomes a clip |
Yes, it shows 5:41:28, and I can seek anywhere at this range. Also, for reference, my yt-dlp version is 2023.03.04. If it's indeed ffmpeg, my guess would be thls commit. If it's indeed this, then still not necessarily an ffmpeg issue, and could also usage pattern by mpv which ffmpeg doesn't expect. And indeed, the broken log does include this new message which was added at this ffmpeg commit:
While the not-broken log doesn't have this message,. So it's almost certainly due to this ffmpeg commit. The question now is why. |
I wonder why I have different version of ffmpeg in my logs My ffmpeg install was not changed
|
Hmm, seems ffmpeg is embedded into mpv.exe Is there a way to force it to use the external binary? |
Correct.
Not if it's already embedded into mpv.exe. Also, it doesn't use ffmpeg.exe. It uses the ffmpeg library (dll files on windows), but again, not if mpv is linked statically with the ffmpeg libraries. |
Also, this is strange, because the URL does actually have a
So maybe it's redirected to some other URL which doesn't have the extension, at which case it's probably an ffmpeg bug, which didn't take this case into account. This should be reported to ffmpeg. |
Dunno how to report it to ffmpeg as this one is embedded into mpv |
Interestingly, this URL can be accessed directly from ffmpeg.c and it detects it as HLS just fine with |
However playing the URL directly does produce this error, with mpv. |
Update: apparently forcing |
Yes, demuxer=lavf in mpv.conf works. |
Ok, putting this option in mpv.conf breaks opening local files for some reason You need to put this in streamlink config file:
|
demuxer=lavf seems to solve the problem of HLS streaming, but other videos cannot be played, such as https://www.youtube.com/watch?v=vyYk_JuUsD4 |
You need to put this in streamlink config file: player=mpv --cache 2048 --demuxer=lavf |
the
What you might be looking for is |
You're right, it's an old thing, kept doing it as it didn't break anything |
demuxer=lavf solves hls streaming problem but I can't open other videos via FF2MPV browser extension |
Call CMD input mpv --demuxer=lavf URL to play streaming media when only playing hls streaming video to ensure that the FF2MPV browser extension can play other videos correctly |
It seems this is just a workaround and only for twitch vods, a change in ffmpeg broke something |
Yes, demuxer=lavf solves the hls streaming media, but there are other problems that can only be fixed. Fortunately, the 230430 version does not have these problems |
We've identified the issue as 6b1f68ccb04d791f0250e05687c346a99ff47ea1 but it's unclear atm whether this is something that needs to be fixed upstream or downstream. |
mpv-x86_64-v3-20230514-git-9e716d6 seems to have solved the problem. |
mpv-x86_64-20230514-git-9e716d6 problem persists |
Yup, it seems it persists in some other websites if mpv is used instead of taking the streamlink passthrough |
I don't know how long it will take to fix it |
Only use version 230430 first |
A reliable test case for broken-ness is chaturbate streams.
This fixes chaturbate streams but breaks youtube videos. |
Issue seems to be fix with FFmpeg/FFmpeg@954d16f 👍 |
Wait for next Sunday's edition to see |
Well I'm testing it now and it works for the cases that were broken for me before so it looks good :) |
FWIW mpv now includes a workaround in the form of acababe |
230516 has been fixed |
Version 230518 still has FFMPEG problems when opening some streaming connections, such as "https://play-tx-recpub.douyucdn2.cn/live/super_live-252140rz7aIq14cx--20230519004111/playlist.m3u8?tlink=64674e05&tplay=6467daa5&exper=0&nlimit= 5&us=10000000000000000000000000001501&sign =a50eeefb0afd8e3eeaebac3d1a1a7baa&u=434690231&d=10000000000000000000000000001501&ct=web&vid=37585035&pt=2&cdn=tx" |
mpv-x86_64-v3-20230528-git-959ef84 seems to be working great for me |
fix? |
Seems like it. Tried it where I had problems and it's working great |
|
mpv version and platform versions
mpv-x86_64-v3-20230507-git-a1580b6 on windows 10
Reproduction steps
Using streamlink to open a twitch vod
streamlink https://www.twitch.tv/videos/1814843938 best
Expected behavior
When mpv opens the vod passed through with hls by streamlink it shows the whole length of the vod and one can seek back and forth to any place in the whole lenght of said vod
Actual behavior
Now, mpv only plays segment by segment which are each 10 second long, which defeats the purpose of hls passthrough
Log file
Note: going back to the ulterior version of mpv fixes the problem mpv-x86_64-v3-20230430-git-6d422b3
Log of broken version mpv-x86_64-v3-20230507-git-a1580b6 : https://0x0.st/HZ68.txt
Log of working version mpv-x86_64-v3-20230430-git-6d422b3 : https://0x0.st/HZ6K.txt
The text was updated successfully, but these errors were encountered: