Jellyfin Forum
SOLVED: Most compatible container and format - 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: SOLVED: Most compatible container and format (/t-solved-most-compatible-container-and-format)

Pages: 1 2


Most compatible container and format - ghiamar - 2024-07-24

Hi! I'm searching for the most compatible format and container to use on iOS, Android and Shield TV Pro 2019 clients. I'm using Jellyfin Server 10.9.8 (Docker) and the official clients for those platforms. For this I read https://jellyfin.org/docs/general/clients/codec-support/ and decided to use Handbrake to transcode some test videos to MP4 (HB created .m4v files then renamed to .mp4) container with h264 8bit (I think) video and two channels of AAC audio and two channels for subtitles with following results:

Logged in clients with administrator user account and transcode options disabled:
  • Allow audio playback that requires transcoding
  • Allow video playback that requires transcoding

Bluey (2018) s01e01.mp4
  • Web client 10.9.8 (Firefox): Play method Direct playing (plays after 2 to 3 minutes)
  • Android client 2.6.2: Play method Remux (After triggering remux, plays very quickly and creates mp4 cache files in /cache/transcodes/, see attachment)
  • iOS client 1.5.0: No go with error "Playback failed because the media is not supported by this client." After a while (about after 2 to 3 minutes), the file plays in direct play mode
  • Shield TV Pro 2019 0.16.11: Works right away, no remux, nothing, as it should I guess...

Code:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Season 01 remaster/Bluey (2018) s01e01.mp4':
  Metadata:
    major_brand    : mp42
    minor_version  : 512
    compatible_brands: mp42iso2avc1mp41
    creation_time  : 2024-07-24T14:35:07.000000Z
    title          : Bluey - T01E01 - Stranno
    artist          : Dave McCormack,Melanie Zanetti,Brad Elliot,Hsiao-Ling Tang
    encoder        : HandBrake 1.5.1 2022030700
    description    : Bluey y Bingo sacan un xilófono mágico que tiene el poder de congelar a su padre
  Duration: 00:07:18.02, start: 0.000000, bitrate: 1558 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 420.503000
      Metadata:
        title          : Intro
    Chapter #0:1: start 420.503000, end 437.937000
      Metadata:
        title          : Credits
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1226 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : VideoHandler
      vendor_id      : [0][0][0][0]
  Stream #0:1(spa): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : Español (Latinoamericano)
      vendor_id      : [0][0][0][0]
  Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : English
      vendor_id      : [0][0][0][0]
  Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : English [CC]
  Stream #0:4(spa): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : Español (Latinoamericano) [CC]
  Stream #0:5(eng): Data: bin_data (text / 0x74786574)
    Metadata:
      creation_time  : 2024-07-24T14:35:07.000000Z
      handler_name    : SubtitleHandler

Bluey (2018) s01e02.mp4
  • Web client 10.9.8 (Firefox): Play method Direct playing (plays after 2 to 3 minutes)
  • Android client 2.6.2: Play method Remux (After triggering remux, plays very quickly and creates mp4 cache files in /cache/transcodes/, see attachment)
  • iOS client 1.5.0: No go with error "Playback failed because the media is not supported by this client." After a while (about after 2 to 3 minutes), the file plays in direct play mode
  • Shield TV Pro 2019 0.16.11: Works right away, no remux, nothing, as it should I guess...

Code:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/martinb/.01-media/Season 01 remaster/Bluey (2018) s01e02.mp4':
  Metadata:
    major_brand    : mp42
    minor_version  : 512
    compatible_brands: mp42iso2avc1mp41
    creation_time  : 2024-07-24T16:18:38.000000Z
    title          : Bluey - T01E02 - Stranno
    artist          : Dave McCormack,Melanie Zanetti,Brad Elliot,Hsiao-Ling Tang
    encoder        : HandBrake 1.5.1 2022030700
    description    : Mientras juegan a los hospitales, el padre queda en manos de la doctora Bluey, m
  Duration: 00:07:18.02, start: 0.000000, bitrate: 1515 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 421.421000
      Metadata:
        title          : Intro
    Chapter #0:1: start 421.421000, end 437.937000
      Metadata:
        title          : Credits
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1183 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : VideoHandler
      vendor_id      : [0][0][0][0]
  Stream #0:1(spa): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : Español (Latinoamericano)
      vendor_id      : [0][0][0][0]
  Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : English
      vendor_id      : [0][0][0][0]
  Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : English [CC]
  Stream #0:4(spa): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : Español (Latinoamericano) [CC]
  Stream #0:5(eng): Data: bin_data (text / 0x74786574)
    Metadata:
      creation_time  : 2024-07-24T16:18:38.000000Z
      handler_name    : SubtitleHandler

Bluey (2018) s01e03.mp4
  • Web client 10.9.8 (Firefox): Play method Direct playing (plays after 2 to 3 minutes)
  • Android client 2.6.2: Play method Remux (After triggering remux, plays very quickly and creates mp4 cache files in /cache/transcodes/, see attachment)
  • iOS client 1.5.0: No go with error "Playback failed because the media is not supported by this client." After a while (about after 2 to 3 minutes), the file plays in direct play mode
  • Shield TV Pro 2019 0.16.11: Works right away, no remux, nothing, as it should I guess...

Code:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/martinb/.01-media/Season 01 remaster/Bluey (2018) s01e03.mp4':
  Metadata:
    major_brand    : mp42
    minor_version  : 512
    compatible_brands: mp42iso2avc1mp41
    creation_time  : 2024-07-24T16:19:51.000000Z
    title          : Bluey - T01E03 - Stranno
    artist          : Dave McCormack,Melanie Zanetti,Brad Elliot,Hsiao-Ling Tang
    encoder        : HandBrake 1.5.1 2022030700
    description    : La madre de Bluey le sugiere que use el globo que les queda para jugar a 'Que no
  Duration: 00:07:18.02, start: 0.000000, bitrate: 1861 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 421.504000
      Metadata:
        title          : Intro
    Chapter #0:1: start 421.504000, end 437.937000
      Metadata:
        title          : Credits
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 1529 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : VideoHandler
      vendor_id      : [0][0][0][0]
  Stream #0:1(spa): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : Español (Latinoamericano)
      vendor_id      : [0][0][0][0]
  Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : English
      vendor_id      : [0][0][0][0]
  Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s (default)
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : English [CC]
  Stream #0:4(spa): Subtitle: mov_text (tx3g / 0x67337874), 1920x162, 0 kb/s
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : Español (Latinoamericano) [CC]
  Stream #0:5(eng): Data: bin_data (text / 0x74786574)
    Metadata:
      creation_time  : 2024-07-24T16:19:51.000000Z
      handler_name    : SubtitleHandler



RE: Most compatible container and format - TheDreadPirate - 2024-07-25

If its direct playing, it shouldn't take 2 to 3 minutes to start. Can you share your full jellyfin log via pastebin?


RE: Most compatible container and format - ghiamar - 2024-07-26

Bump, sorry

(2024-07-25, 12:12 AM)TheDreadPirate Wrote: If its direct playing, it shouldn't take 2 to 3 minutes to start.  Can you share your full jellyfin log via pastebin?

Sorry, didn't see this message, please tell me how can I obtain the full JF log and will share it right away


RE: Most compatible container and format - TheDreadPirate - 2024-07-26

Its in the same directory as the ffmpeg logs you attached in your first post.


RE: Most compatible container and format - ghiamar - 2024-07-26

Ok, I think I got them, uploading 3 logs

log_20240724.log: https://pastebin.com/raw/rKYEtr3G
log_20240725.log: https://pastebin.com/raw/ZXVz7ExT
log_20240726.log: https://pastebin.com/raw/FvFeZz37


RE: Most compatible container and format - ghiamar - 2024-07-26

Just to mention that I've enabled HW accel with this guide https://elblogdelazaro.org/posts/2020-04-13-docker-trancodificacion-por-hardware-en-jellyfin/ and this reddit thread https://www.reddit.com/r/jellyfin/comments/ehb8b3/how_can_i_identify_if_transcoding_is_being/ resulting in this docker compose file and attached JF transcoding config (see attachment):

Code:
services:
  jellyfin:
    image: 'jellyfin/jellyfin:10.9.8'
    container_name: jellyfin
    restart: always
    volumes:
      - /XXXX/XXXX/jellyfin/config:/config
      - /XXXX/XXXX/jellyfin/config/web-config.json:/jellyfin/jellyfin-web/config.json
      - /XXXX/XXXX/jellyfin/cache:/cache
      - type: bind
        source: /XXXX/XXXX/jellyfin/media
        target: /media
    # user: 0:0
    network_mode: 'host'
    # Optional - alternative address used for autodiscovery
    environment:
      - JELLYFIN_PublishedServerUrl=https://XXXXXXX.XXXXXXXX.com
    # Optional - may be necessary for docker healthcheck to pass if running in host network mode
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128

   


RE: Most compatible container and format - TheDreadPirate - 2024-07-26

Two things.

What is the point of this line?

Code:
- /XXXX/XXXX/jellyfin/config/web-config.json:/jellyfin/jellyfin-web/config.json

And can you change your media mount from a bind to a volume mount?

Code:
- /XXXX/XXXX/jellyfin/media:/media

For some reason bind mounts sometimes cause weird problems that are hard to explain.

One thing I noticed in your log is that your remuxes are outputting in a weird format. The output of the remux might be the cause of the issue you are experiencing.

Code:
[2024-07-26 01:42:46.640 +00:00] [INF] [186] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts -f mov,mp4,m4a,3gp,3g2,mj2  -i file:\"/media/TV Shows/Petit (2018)/Season 01/Petit (2018) s01e01 - Mi mascota imaginaria existe.mp4\" -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y \"/cache/transcodes/8d08736382a730bd1bc933c1ff91bc79.mov

I've seen this happen for another user. Normally transcodes are written to /config/transcodes instead of /cache/transcodes. Since you have /config, essentially, mounted twice I'm wondering if that is causing some weird issues with how and where transcodes are written.

Comment out the web-config.json line, restart jellyfin, and try again.


RE: Most compatible container and format - ghiamar - 2024-07-26

(2024-07-26, 04:06 PM)TheDreadPirate Wrote: What is the point of this line?

Code:
- /XXXX/XXXX/jellyfin/config/web-config.json:/jellyfin/jellyfin-web/config.json

Read about that here https://jellyfin.org/docs/general/clients/web-config/#docker, but I really didn't changed anything in that file, removing...

(2024-07-26, 04:06 PM)TheDreadPirate Wrote: And can you change your media mount from a bind to a volume mount?

Code:
- /XXXX/XXXX/jellyfin/media:/media

Think I nailed it, changed this

Quote:      - type: bind
        source: /media/data/jellyfin/media
        target: /media

to this
Quote:      - /media/data/jellyfin/media:/media

(2024-07-26, 04:06 PM)TheDreadPirate Wrote: Comment out the web-config.json line, restart jellyfin, and try again.

Done, will try and let you know


RE: Most compatible container and format - ghiamar - 2024-07-26

Well, tried some not played before tracks and for one got a remux, https://pastebin.com/raw/29UN0vHv for the test files (e01, e02, e03) the play starts right away (because I guess there's some cache somewhere, don't know where).

If I re enable Allow audio playback that requires transcoding and Allow video playback that requires transcoding, transcoding kicks in now with hardware acceleration (I guess because transcoding FPS went up to > 300 ) but de playback start delay persists (about 1 min in web player, didn't tested it in my other clients), logs https://pastebin.com/raw/d1m2CUXq and https://pastebin.com/raw/pYLKBk7J

Re uploaded today's log https://pastebin.com/raw/H8RjybiF


RE: Most compatible container and format - ghiamar - 2024-07-26

After several tries in iOS client with error "Playback failed because the media is not supported by this client.", I got the file playing, see logs

https://pastebin.com/raw/gfkB2aUw
https://pastebin.com/raw/RZJTvdM4
https://pastebin.com/raw/WkCbwZdF
https://pastebin.com/raw/rUZs5E84


Log https://pastebin.com/j3LHqypR