2 hours ago
(This post was last modified: 2 hours ago by Been Reported. Edited 3 times in total.)
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:
This didn't work, so I tried changing the format profile from isom to mp42 using:
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:
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:
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.
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.