Aanok / jftui

Jellyfin Terminal User Interface
The Unlicense
149 stars 7 forks source link

mpv complains about file corruption and can't seek #19

Closed fullmetal1 closed 3 years ago

fullmetal1 commented 3 years ago

jftui version jftui 0.4.0, libmpv 1.109, libcurl 7.75.0 OpenSSL/1.1.1j, yajl 20100

mpv version mpv 0.33.0-dirty Copyright © 2000-2020 mpv/MPlayer/mplayer2 projects built on UNKNOWN FFmpeg library versions: libavutil 56.51.100 libavcodec 58.91.100 libavformat 58.45.100 libswscale 5.7.100 libavfilter 7.85.100 libswresample 3.7.100 FFmpeg version: n4.3.1

Describe the bug After upgrading to the latest version of jellyfin (10.7.0) my mpv output in jftui started to include messages like:

[ffmpeg] Cannot seek backward in linear streams!
[mkv] Corrupt file detected. Trying to resync starting from position 1511863...
[mkv] Cluster found at 2887326.

When trying to seek through the video, or change audio or subtitle stream, the video skips to a random time (usually between 0:10-3:00), and I can't seek back to the start of the video

I tried playing the stream url directly through mpv to verify that it's not an issue with mpv, and had no issues printed to the terminal, and seeking and audio/subtitle stream switching worked fine.

Aanok commented 3 years ago

Yeah, 10.7.0 has not been kind to jftui :(

jftui uses the /items/.../file endpoints to grab its sources, did you try with that or with /videos/... like the web client?

fullmetal1 commented 3 years ago

When I click Copy Stream URL in the web client it gives me an items/.../Download?api_key=...

Aanok commented 3 years ago

Oh, I'd never noticed that. But then again I did write jftui out of a profound hatred for web interfaces, I don't really poke around where I don't need :P If you look through the network tab on your browser's devtools, you'll see that's not what the media player ends up using.

Anyways, I just tried that and I get an unseekable playback with

[mkv] Stream is not seekable or unknown size, not reading mkv metadata at end of file.
[mkv] Stream is not seekable or unknown size, not reading mkv metadata at end of file.

My suspicion is that this has to do with 10.7.0's switch to Kestrel as HTTP server and the way it serves chunked content, but I need to dig a lot deeper. Thanks for the feedback, unfortunately it's going to take me a while to address this.