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


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

Can you share your latest docker compose?

Also run this command and share the output.

Code:
sudo docker exec jellyfin env

And also this.

Code:
sudo cat /media/data/jellyfin/config/config/encoding.xml

And I see you are using VAAPI instead of Intel Quick Sync. Switch to Quick Sync and make sure you only check boxes that your CPU supports.

https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding

The Coffee Lake column.


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

Docker compose
Code:
services:
  jellyfin:
    image: 'jellyfin/jellyfin:10.9.8'
    container_name: jellyfin
    restart: always
    volumes:
      - /media/data/jellyfin/config:/config
      - /media/data/jellyfin/cache:/cache
      - /media/data/jellyfin/media:/media
    # user: 0:0
    network_mode: 'host'
    # Optional - alternative address used for autodiscovery
    environment:
      - JELLYFIN_PublishedServerUrl=https://media.mgscreativa.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

sudo docker exec jellyfin env
Code:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=xxxx
JELLYFIN_PublishedServerUrl=https://xxxx.xxxx.com
HEALTHCHECK_URL=http://localhost:8096/health
DEBIAN_FRONTEND=noninteractive
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US:en
JELLYFIN_DATA_DIR=/config
JELLYFIN_CACHE_DIR=/cache
JELLYFIN_CONFIG_DIR=/config/config
JELLYFIN_LOG_DIR=/config/log
JELLYFIN_WEB_DIR=/jellyfin/jellyfin-web
JELLYFIN_FFMPEG=/usr/lib/jellyfin-ffmpeg/ffmpeg
XDG_CACHE_HOME=/cache
MALLOC_TRIM_THRESHOLD_=131072
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
HOME=/root

sudo cat /media/data/jellyfin/config/config/encoding.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<EncodingOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <EncodingThreadCount>-1</EncodingThreadCount>
  <TranscodingTempPath>/cache/transcodes</TranscodingTempPath>
  <FallbackFontPath />
  <EnableFallbackFont>false</EnableFallbackFont>
  <EnableAudioVbr>false</EnableAudioVbr>
  <DownMixAudioBoost>2</DownMixAudioBoost>
  <DownMixStereoAlgorithm>None</DownMixStereoAlgorithm>
  <MaxMuxingQueueSize>2048</MaxMuxingQueueSize>
  <EnableThrottling>false</EnableThrottling>
  <ThrottleDelaySeconds>180</ThrottleDelaySeconds>
  <EnableSegmentDeletion>false</EnableSegmentDeletion>
  <SegmentKeepSeconds>720</SegmentKeepSeconds>
  <HardwareAccelerationType>vaapi</HardwareAccelerationType>
  <EncoderAppPathDisplay>/usr/lib/jellyfin-ffmpeg/ffmpeg</EncoderAppPathDisplay>
  <VaapiDevice>/dev/dri/renderD128</VaapiDevice>
  <EnableTonemapping>false</EnableTonemapping>
  <EnableVppTonemapping>false</EnableVppTonemapping>
  <EnableVideoToolboxTonemapping>false</EnableVideoToolboxTonemapping>
  <TonemappingAlgorithm>bt2390</TonemappingAlgorithm>
  <TonemappingMode>auto</TonemappingMode>
  <TonemappingRange>auto</TonemappingRange>
  <TonemappingDesat>0</TonemappingDesat>
  <TonemappingPeak>100</TonemappingPeak>
  <TonemappingParam>0</TonemappingParam>
  <VppTonemappingBrightness>16</VppTonemappingBrightness>
  <VppTonemappingContrast>1</VppTonemappingContrast>
  <H264Crf>23</H264Crf>
  <H265Crf>28</H265Crf>
  <EncoderPreset />
  <DeinterlaceDoubleRate>false</DeinterlaceDoubleRate>
  <DeinterlaceMethod>yadif</DeinterlaceMethod>
  <EnableDecodingColorDepth10Hevc>true</EnableDecodingColorDepth10Hevc>
  <EnableDecodingColorDepth10Vp9>true</EnableDecodingColorDepth10Vp9>
  <EnableEnhancedNvdecDecoder>true</EnableEnhancedNvdecDecoder>
  <PreferSystemNativeHwDecoder>true</PreferSystemNativeHwDecoder>
  <EnableIntelLowPowerH264HwEncoder>false</EnableIntelLowPowerH264HwEncoder>
  <EnableIntelLowPowerHevcHwEncoder>false</EnableIntelLowPowerHevcHwEncoder>
  <EnableHardwareEncoding>true</EnableHardwareEncoding>
  <AllowHevcEncoding>false</AllowHevcEncoding>
  <AllowAv1Encoding>false</AllowAv1Encoding>
  <EnableSubtitleExtraction>true</EnableSubtitleExtraction>
  <HardwareDecodingCodecs>
    <string>h264</string>
    <string>vc1</string>
  </HardwareDecodingCodecs>
  <AllowOnDemandMetadataBasedKeyframeExtractionForExtensions>
    <string>mkv</string>
  </AllowOnDemandMetadataBasedKeyframeExtractionForExtensions>

For new QS settings, see attachment
   

Tested on Shield TV Pro 2019 client and playback starts right away, testes on never played track, no remux, updated log https://pastebin.com/raw/v9U4vsEp


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

At the top, you can check all the boxes except AV1. Also check Allow encoding in HEVC, Enable VPP tone mapping, Enable Tone mapping, Enable VBR audio, Throttle Transcodes, Delete Segments.

Change the transcode path to /config/transcodes.

Save and try again.


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

Done, see attachment

Tried on another track in web player, triggered remux, long playback start delay, updating logs.

Remux https://pastebin.com/6wsmzDy7

Log https://pastebin.com/EfkgbpHM

   


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

I have a file with the exact same codecs and containers. When I disable transcoding and only allow remuxing it remuxes correctly into a MP4 instead of .MOV like yours does. I think the reason it takes so long to start is because .MOV doesn't support segmentation so you have to wait for the remux to fully complete before it starts.

Let's try rebuilding the docker container.

Code:
sudo docker compose down jellyfin
sudo docker system prune -a
sudo docker compose up -d jellyfin

We are stopping Jellyfin, then pruning the virtual file system it creates and the image. This does NOT delete your permanent config files or media. Then starting jellyfin again. It will re-pull the image and rebuild the container.


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

I'm using portainer so I've stopped the jellyfin container, then in the host cmd ran sudo docker system prune -a and then deployed the stack again. Tried to play track #27 and that created two remux logs:
https://pastebin.com/raw/F2cxBRPy
https://pastebin.com/raw/mv40sDYV

And the delay stayed, then I realized that I haven't mapped the domain used for jellyfin locally to the host server local IP (since all clients are in my home network), changed that in my router to point my jellyfin domain name to the local server IP address and the delay went away, no remuxes since then... ¿¿??

Current JF log
https://pastebin.com/raw/Q6yhkKE0

Is there a way somehow going into internet to query the JF local server through JF configured domain caused the remux and the slowness? (the slowness I can get it because of the internet loop, but the remux ¿¿??)

Another one. ¿can I be certain that a Handbrake transcoded video with this result is compatible enough to get Direct playing in all clients?

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



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

iOS delay also gone, no remux at all


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

The only issue I see are the subtitles. For max compatibility, SRT subs are recommended.


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

Great! Can I transcode subs to SRT in handbrake? Or I have to export/convert/inserting Handbrake or just leave them beside the video files in media folder?