• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting SOLVED: AppleTV stays black

     
    • 0 Vote(s) - 0 Average

    SOLVED: AppleTV stays black

    JamesOberegg
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2023 Sep
    Reputation: 0
    Country:Switzerland
    #1
    2024-10-10, 08:44 AM
    Hi all

    Two of my AppleTV users are unable to play files. 
    After clicking play, the screen goes black. It loads for some seconds, then goes back again to the movie. 
    The files should be pretty easy to play, 720p and 1080p, H.264, one DTS the other AC3.

    Logs will not show anything interesting 

    Code:
    [2024-10-09 14:11:52.503 +02:00] [INF] Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Albtraumhafte Super-Verwandlung! Freezers Kampfkraft ist 1.000.000.". Stopped at "850000" ms
    [2024-10-09 14:11:52.549 +02:00] [INF] User policy for "readacted username". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
    [2024-10-09 14:11:52.555 +02:00] [INF] User policy for "readacted username". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
    [2024-10-09 14:11:52.560 +02:00] [INF] User policy for "readacted username". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
    [2024-10-09 14:11:55.916 +02:00] [INF] User policy for "readacted username". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
    [2024-10-09 14:11:55.919 +02:00] [INF] User policy for "readacted username". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: True
    [2024-10-09 14:12:04.219 +02:00] [INF] Playback stopped reported by app "Jellyfin tvOS" "1.0.1" playing "Killer Joe". Stopped at "4387000" ms


    I am not sure if the problem persisted before or after I updated my NGINX reverse proxy settings to the new standards. 

    This is my new NGINX setting:

        listen                              443 ssl;
    Code:
        listen                              [::]:443 ssl;
        server_name                          jelly.mydomain.com;
        http2 on;
        ## The default `client_max_body_size` is 1M, this might not be enough for some posters, etc.
        client_max_body_size 100M;

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

        ssl_certificate                      /etc/letsencrypt/live/jelly.mydomain.com/fullchain.pem;
        ssl_certificate_key                  /etc/letsencrypt/live/jelly.mydomain.com/privkey.pem;
        include                              /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam                          /etc/letsencrypt/ssl-dhparams.pem;
        ssl_trusted_certificate              /etc/letsencrypt/live/jelly.mydomain.com/chain.pem;
     
        # use a variable to store the upstream proxy
        # in this example we are using a hostname which is resolved via DNS
        # (if you aren't using DNS remove the resolver line and change the variable to point to an IP address e.g `set $jellyfin 127.0.0.1`)
        set $jellyfin 10.0.55.2;

        # Security / XSS Mitigation Headers
        # NOTE: X-Frame-Options may cause issues with the webOS app
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";

        # Permissions policy. May cause issues with some clients
        add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()" always;


        # Content Security Policy
        # See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
        # Enforces https content and restricts JS/CSS to origin
        # External Javascript (such as cast_sender.js for Chromecast) must be whitelisted.
        # NOTE: The default CSP headers may cause issues with the webOS app
        add_header Content-Security-Policy "default-src https: data: blob: ; img-src 'self' https://* ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'";
        # old config  add_header Content-Security-Policy "default-src https: data: blob: http://image.tmdb.org; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtu>


        # SSL own settings
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
        ssl_stapling on;
        ssl_stapling_verify on;

        # logging
        access_log                          /var/log/nginx/access.log combined buffer=512k flush=1m;
        error_log                            /var/log/nginx/error.log warn;

        # reverse proxy for Jelly
        location / {
            # Proxy main Jellyfin traffic
            proxy_pass http://$jellyfin:8096;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Protocol $scheme;
            proxy_set_header X-Forwarded-Host $http_host;

            # Disable buffering when the nginx proxy gets very resource heavy upon streaming
            proxy_buffering off;
        }


        location /socket {
            # Proxy Jellyfin Websockets traffic
            proxy_pass http://$jellyfin:8096;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Protocol $scheme;
            proxy_set_header X-Forwarded-Host $http_host;
        }


      # additional config
    #  include nginxconfig.io/general.conf;

      # Cache images (inside server block)
      location ~ /Items/(.*)/Images {
    proxy_pass http://$jellyfin:8096;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header X-Forwarded-Host $http_host;

    proxy_cache jellyfin;
    proxy_cache_revalidate on;
    proxy_cache_lock on;
      # add_header X-Cache-Status $upstream_cache_status; # This is only to check if cache is working
      }

    }

    # HTTP redirect
    server {
        listen      80;
        listen      [::]:80;
        server_name jelly.mydomain.com;
        include    nginxconfig.io/letsencrypt.conf;

        location / {
            return 301 https://jelly.mydomain.com$request_uri;
        }
    }

      # Add this outside of you server block (i.e. http block)
      proxy_cache_path /var/cache/nginx/jellyfin levels=1:2 keys_zone=jellyfin:100m max_size=10g inactive=60d use_temp_path=off;
    Love Jellyfin Red-heart
    Running a Jellyfin Server on Debian behind a NGINX proxy. 
    I consider video transcodes a waste of CPU/GPU cycles.
    Go to solution
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #2
    2024-10-10, 12:01 PM
    In the Jellyfin UI in a browser, can you go to the listing for the video and click on "..." and click "Media Info"? There will be a "copy" button at the top of this window. Share the media info with us for this video.

    And what model Apple TVs do your users have?
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    JamesOberegg
    Offline

    Junior Member

    Posts: 4
    Threads: 1
    Joined: 2023 Sep
    Reputation: 0
    Country:Switzerland
    #3
    2024-10-11, 05:59 AM
    Hi DreadPirate

    Both are AppleTV 4k boxes.

    One video is this:

    Video
    Titel: 720p H264 SDR
    Codec: H264
    AVC: Yes
    Profil: High
    Level: 41
    Auflösung: 1280x720
    Seitenverhältnis: 16:9
    Anamorph: No
    Zeilensprungverfahren: No
    Bildrate: 25
    Bitrate: 3932 kbps
    Bit-Tiefe: 8 bit
    Videobereich: SDR
    Video-Dynamikumfang: SDR
    Pixelformat: yuv420p
    Referenz-Frames: 1
    NAL: 4


    Audio
    Titel: Ger - Dolby Digital - Stereo - Standard
    Sprache: ger
    Codec: AC3
    AVC: No
    Darstellung: stereo
    Kanäle: 2 ch
    Bitrate: 448 kbps
    Abtastrate: 48000 Hz
    Standard: Yes
    Erzwungen: No
    Extern: No


    the other one this


    Video
    Titel: 1080p H264 SDR
    Codec: H264
    AVC: Yes
    Profil: High
    Level: 41
    Auflösung: 1920x1040
    Seitenverhältnis: 1.85:1
    Zeilensprungverfahren: No
    Bildrate: 23.976
    Bitrate: 9462 kbps
    Bit-Tiefe: 8 bit
    Videobereich: SDR
    Video-Dynamikumfang: SDR
    Pixelformat: yuv420p
    Referenz-Frames: 1
    NAL: 4


    Audio
    Titel: Ger - DTS - 5.1 - Standard
    Sprache: ger
    Codec: DTS
    Profil: DTS
    Darstellung: 5.1
    Kanäle: 6 ch
    Bitrate: 1536 kbps
    Abtastrate: 48000 Hz
    Standard: Yes
    Erzwungen: No
    Extern: No


    These are just two examples, I think that none of the videos work anymore.
    Love Jellyfin Red-heart
    Running a Jellyfin Server on Debian behind a NGINX proxy. 
    I consider video transcodes a waste of CPU/GPU cycles.
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,375
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #4
    2024-10-11, 01:25 PM
    Go ahead and report an issue on Swiftfin's git. I just noticed that there was a release 3 days ago that may explain the multiple Swiftfin related threads.

    https://github.com/jellyfin/Swiftfin/issues
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode