Thomas-Sohier / jellyflut

Just a jellyfin client made in flutter (side project quality code)
MIT License
149 stars 22 forks source link

Unable to run any content #22

Closed quaintdev closed 2 years ago

quaintdev commented 2 years ago

I was unable to run hevc content in Firefox but found out it is not possible so I was looking for an alternative and found about jellyflut. First of all thanks, for creating this client. It's what I was looking for.

My issue is when trying to play hevc content jellyflut shows black screen. Clicking play button multiple times does nothing. I enabled transcoding and I can view the content in the browser now but still not in jellyflut. The vlc on my system can play the content just fine.

Edit: Just wanted to add I am using this on Debian. Thanks.

Edit2: I just tried with other files and I am not able to play any content.

Thomas-Sohier commented 2 years ago

I have this issue too but on Windows and not on Linux.

I can't log nor i can't catch any error as VLC don't tell me what's wrong... But it seems that's the certifcate issue that i have too. VLC think the certifcate cannot be trusted so it don't play any content.

Right now i don't know fow to fix this issue, apart from opening an issue, as it's a plugin and not developped by myself.

I'm gonna check what i can do as this issue seems to be affect more peaople than i thought.

Thomas-Sohier commented 2 years ago

Now that I think about it, did you install vlc and libvlc ? Linux should work

sudo apt-get install vlc
sudo apt-get install libvlc-dev
quaintdev commented 2 years ago

I had vlc installed already. The package manager refused to install jellyflut until libvlc was installed. I don't think there is issue with dependencies since it was all resolved before installing jellyflut.

Thomas-Sohier commented 2 years ago

Strange as it works for me on Fedora.

Right now i can't find a solution, even dropping latest vlc binary in dart_vlc project while building do not seems to make it works...

At first I thought it was reverse proxy too high TLS version but even reduce TLS from 1.3 to 1.2 do not work...

I'm gonna let this issue opened hopping someone could help me on this 🙏

quaintdev commented 2 years ago

So I tried to run app from command line and I see some logs

[00007fb104008350] gnutls tls client error: TLS handshake error: An unexpected TLS packet was received.
[00007fb104008350] main tls client error: TLS session handshake error
[00007fb104008350] main tls client error: connection error: Resource temporarily unavailable
[00007fb104007f80] access stream error: HTTP connection failure
[00007fb164685610] main input error: Your input can't be opened
[00007fb164685610] main input error: VLC is unable to open the MRL 'https://pavilion:8096/Videos/b94982c34f552cdd7f0bfdb897521e0f/stream.m4v?StartTimeTicks=2252376250&Static=true&MediaSourceId=b94982c34f552cdd7f0bfdb897521e0f&DeviceId=debian&VideoBitrate=50000000&AudioBitrate=8000000&Tag=42ad9b12ecc60b03ea0d52948e4806ca&api_key=<removed>'. Check the log for details.

I am not sure if you have seen these logs but thought I had share anyway. One thing I wanted to know was why the stream is using ssl since afaik I have not enabled ssl on my jellyfin server. Why not use stream over http?

quaintdev commented 2 years ago

I spent some time on this and found out that if we use Uri.http instead of Uri.https the issue is resolved. I had to make the change at these 2 places

streaming_service#119 & 216

I can play both with and without transcoding streams after this change. I will stick with my build until you make decision on how to resolve this issue. Thanks.

Thomas-Sohier commented 2 years ago

Yeah i saw the same thing, i was enforcing https...

I just made a patch on branch feature/selectable_remote_audio_tracks, can you try it and tell me if it's ok ?

Thanks

quaintdev commented 2 years ago

Yes this fixes my issue!