Skip to content
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

Swiftfin stays black on AppleTV #1347

Closed
jameskimmel opened this issue Dec 8, 2024 · 6 comments
Closed

Swiftfin stays black on AppleTV #1347

jameskimmel opened this issue Dec 8, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@jameskimmel
Copy link
Contributor

Describe the bug

This problem happens to a remote user of mine.
The screen will stay black and the vid seems to be stuck at 00:00. But the server logs show, that at least the server thinks that the video is playing.

Jellyfin Server is setup on a Ubuntu VM behind a NGINX proxy.

Here are the server logs:

[2024-12-08 22:24:36.916 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:24:36.916 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:24:38.736 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:24:38.736 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:24:47.191 +01:00] [INF] Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Kishi Kaisei". Stopped at "251000" ms
[2024-12-08 22:24:47.232 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:31:46.006 +01:00] [WRN] IPv6 is disabled in Jellyfin, but enabled in the OS. This may affect how the interface is selected.
[2024-12-08 22:32:29.818 +01:00] [INF] Authentication request for "user.name" has succeeded.
[2024-12-08 22:32:29.818 +01:00] [INF] Current/Max sessions for user "user.name": 3/0
[2024-12-08 22:32:29.818 +01:00] [INF] Creating new access token for user 783f6e79-e5b7-4000-bfd8-8f94a8e51238
[2024-12-08 22:32:35.306 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:32:35.307 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:32:36.939 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:32:36.939 +01:00] [INF] User policy for "user.name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
[2024-12-08 22:42:37.459 +01:00] [INF] Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Kishi Kaisei". Stopped at "276000" ms

The video itself is pretty basic and should be easily playable.

1080p H264 SDR
Codec: H264
AVC: Yes
Profil: High
Level: 41

Audio
Codec: AC3
AVC: No

Application version

1.0.1

Where did you install the app from?

App Store

Device information

AppleTV 4k

OS version

tvOS 18.1

Jellyfin server version

10.10.3

@jameskimmel jameskimmel added the bug Something isn't working label Dec 8, 2024
@JPKribs
Copy link
Member

JPKribs commented Dec 8, 2024

Please confirm that your reverse proxy is not using TLS 1.3 as VLCKit does not support it. You can get around this limitation by using the Native Player in Settings > Experimental but VLCKit is our only player than can handle subtitles so if those are a requirement TLS 1.2 or 1.1 are a requirement.

We are currently working on some major changes for tvOS. Our progress can be followed here: #1294

@jameskimmel
Copy link
Contributor Author

jameskimmel commented Dec 9, 2024

Edit: Forget what I wrote here, this is wrong :)

Apparently NGINX uses TLSv1.3 by default since 1.23.4.
If I understand it correctly, this line in the Jelly docs need to be updated:

  # Uncomment next line to Disable TLS 1.0 and 1.1 (Might break older devices)
    #ssl_protocols TLSv1.3 TLSv1.2; 

since the default is TLSv1.3 only?

Anyway, I have it set to:
ssl_protocols TLSv1.3 TLSv1.2;

Do I need to remove TLSv1.3?
Or add TLSv1.1?
Or does it use TLSv1.2 automatically as fallback?

@JPKribs
Copy link
Member

JPKribs commented Dec 9, 2024

When I've done this in the past, I believe having 1.3 and 1.2 is fine as VLCKit via Swiftfin will fallback to 1.2.

This being said, I'm not the best NGINX resource.

For full player features, we have this documented here: https://github.com/jellyfin/Swiftfin/blob/main/Documentation/players.md including a link to VLC's 1.3 issue.

I hope this helps!

@jameskimmel
Copy link
Contributor Author

I just read up on TLS, and I did disable 1 and 1.1.
According to your link, that should not be the problem.

@jameskimmel
Copy link
Contributor Author

jameskimmel commented Dec 9, 2024

Ok, we found the issue.
The user had used http instead of https as the server URL.
He was able to see all the movies, but unable to play any of them.

I think this is a very odd behavior, especially considering that I am using HSTS preload and redirect all http to https.

@jameskimmel
Copy link
Contributor Author

Solved, but I opened up a bug report for the strange behavior
#1351

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants