jellyfin / jellyfin-roku

The Official Roku Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
439 stars 133 forks source link

mp4 Container not support #303

Closed Artiume closed 3 years ago

Artiume commented 3 years ago

H264 aac mp4 file is remuxing to h264 aac ts. no beuno.

neilsb commented 3 years ago

Problem seems to be that the call to CanDecodeVideo() has a list of codec/container types it expects, and if the passed values are slightly different then returns false.

i.e. Expects Codec "mpeg4 avc" - If "mp4" is sent it doesn't match and thinks it cannot play, resulting in a transcode request.

We need to map the information we get from Jellyfin Server to the exact type names that Roku uses before we ask if the device can handle it.

Artiume commented 3 years ago

in the meantime, should we also push a bug report to roku to fix it upstream? Their decoder being smarter would make this a non-issue as I'm sure other apps besides us can be affected by it.

trekkie690 commented 3 years ago

pushed a modificaiton to try an resolve this. Still runs into an issue when the audio needs to be transcoded. We'll need to look at if there is a method to only transcode whats needed (audio vs video), but i dought that is possible given the file are self contained.

Artiume commented 3 years ago

if you want to try and maintain the mp4 format, you'd probably have to try fmp4, this is available in 10.7. Did you make a PR or just testing for now?

trekkie690 commented 3 years ago

Sorry did a Pull Rquest via the web gui. Tested it on my roku4, and 10.6.4 server. Would stream h265 & h264 mp4s with the fix i put in. Haven't upgraded to 10.7 to test ....yet

Course @Artiume issue could be the end device is like an EoL roku and didn't support the steam. Don't know

rwrozelle commented 3 years ago

Running into a similar issue to this, have a H264 encoded file that is in a TS wrapper. When I attempt to play in Roku app, it fails. Based on documentation, Roku wants H264 encoding but only in MP4, MKS or MOV wrapper. I transcoded manually (using copy) and new file plays successfully in Roku app.