Jellyfin Forum
Playback issues on iOS and Jellyfin App - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Playback issues on iOS and Jellyfin App (/t-playback-issues-on-ios-and-jellyfin-app)



Playback issues on iOS and Jellyfin App - Been Reported - 2024-10-28

Hello, I was wondering if anyone could help with some issues I seem to be having.

Firstly my setup is Ubunutu 22.04 with Jellyfin 10.9.11 and I use FFMPEG to convert any MKV or AVIs etc that come onto my server, my issue I have is specifically on iOS and the Jellyfin app content doesn't play, but on Android and the web client it does. Here's what my numerous devices throughout the house return with example.mp4

Android TV App -  Player Error Encounter, Will Retry
Android TV Web Browser - Video Plays
Android Phone App -  Player Error Encounter, Will Retry
Android Phone Browser / Web App - Video Plays
Desktop on Chrome and Mozilla - Video Plays
Laptop on Edge and Chrome - Video Plays
iPhone App -  Player Error Encounter, Will Retry
iPhone Browser - Black Screen
iPad App - Player Error Encounter, Will Retry
iPad Browser - Black Screen
Fire stick App - Player Error Encounter, Will Retry
Fire Stick browser - Video Plays

I have done some googling and found that iOS specifically is picky with audio codecs and only works with acc, but then I do FFMPEG -i example.com it states it is AAC, here's my current FFMPEG set up

Code:
flock -n /var/lock/ffmpeg.lock find /jellymedia/ -name "*.mkv" -type f -exec ffmpeg -i {} -preset veryfast {}.mp4 \;

If you're not familiar with find then simply the FFMPEG is 
Code:
ffmpeg -i example.mkv -preset veryfast example.mp4



RE: Playback issues on iOS and Jellyfin App - TheDreadPirate - 2024-10-29

Can you share your full jellyfin log via pastebin?


RE: Playback issues on iOS and Jellyfin App - Been Reported - 2024-10-29

Hey, I can indeed, I ran a test at at 11pm 28th local time / 1am 29th server time however this isn't logged in the logfile. Also when looking at the log file, why is it enabling settings for users every video load ?

Also the FFMPEG process has logged for the example video causing problems, it looks like the did the process but wouldn't play ?

WARNING: Some users have rude / innapropiate names which can be seen in the logfile.

Log 29 / 10 / 2024

https://pastebin.com/Dxj8wkiY

Log 28 / 10 / 2024

https://pastebin.com/NQZiqB4J

FFMPEG Log 28 / 10 / 2024 : 11:04pm

https://pastebin.com/P0WHkUxK

EDIT: I have attached some videos one screen recording of my mobile jellyfin client and one of my desktop browser.

Mobile client

https://drive.google.com/file/d/1-0IqFitthIEqq5P5zLM87orh5A8qjRXe/view?usp=sharing

Desktop

https://drive.google.com/file/d/1-1oZrGOYCVUAgRs3Cwd52ayC50sudlyr/view?usp=sharing

Some additional information I have found from testing, if I encode manually using handbrake preset 1080p then upload the video it works, if I use FFMPEG it stops been supported. If I use FFMPEG then download and Handbrake and upload it works, but if I Handbrake then upload and FFMPEG it, it stops working. So it must be something to do with FFMPEG.


RE: Playback issues on iOS and Jellyfin App - TheDreadPirate - 2024-10-29

On your iOS devices, can you go to the playback settings on the client and set the max channels to stereo?


RE: Playback issues on iOS and Jellyfin App - Been Reported - 2024-10-29

That didn't fix my problem, but after downloading media info and going through and comparing the differences between a Handbrake encode and a FFMPEG encode, I got the following differences:

HANDBRAKE                     | FFMPEG                               
Format profile: mp42        | Format profile: isom
Format profile: Main@L4  | Format profile: High 10@L4
Audio channels: 2            | Audio Channels: 6
Frame Rate Mode: variable | Frame Rate Mode: Constant

So I started with reducing audio channels down to one, using:

Code:
ffmpeg -i "example.mp4" -preset veryfast -ac 2 "example.mp4"

This didn't work, so I tried changing the format profile from isom to mp42 using:

Code:
ffmpeg -i "example.mp4" -preset veryfast -brand mp42 "example.mp4"

However this when downloaded wouldn't play on windows, so I skipped over this and tried changing format profile from High 10@L4 to Main@L4 using:

Code:
ffmpeg -i "example.mp4" -c:v libx264 -pix_fmt yuv420p -profile:v main -level 4.0 "example.mp4"

I learnt that this needed a colour space so I added -c:v libx264 -pix_fmt yuv420p which when finished and downloaded resulted in a working in windows file, then when testing in Jellyfin app on my Android TV works and still continues to work in browser, then to get closer to handbrake I encoded two audio channels as opposed to 6 with the following:

Code:
ffmpeg -i "example.mp4" -c:v libx264 -pix_fmt yuv420p -profile:v main -level 4.0 -ac 2 "example.mp4"

This has since fixed incompatibility with Jellyfin clients on my TV and phone, I'm currently waiting on my partner to get home to test iOS.

It would seem that Jellyfin and iOS don't like format profile High 10@L4, I Have since tested baseline L3 and that also worked.