Git Product home page Git Product logo

Comments (3)

dateno1 avatar dateno1 commented on September 18, 2024

Change Jellyfin Setting QSV -> VAAPI worked

/var/packages/ffmpeg6/target/bin/ffmpeg -analyzeduration 200M -probesize 1G -hwaccel vaapi -noautorotate -i file:"/volume1/test/test.mp4" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 3820483 -maxrate 3820483 -bufsize 7640966 -profile:v:0 high -sei -a53_cc -force_key_frames:0 "expr:gte(t,n_forced3)" -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw,iha),1280)/2)*2:trunc(ow/a/2)*2,format=nv12,hwupload=derive_device=vaapi" -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "40a95207513e0b57ec3b20e5778e442e-1.mp4" -start_number 0 -hls_segment_filename "/volume1/@appdata/jellyfin/data/transcodes/40a95207513e0b57ec3b20e5778e442e%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/volume1/@appdata/jellyfin/data/transcodes/40a95207513e0b57ec3b20e5778e442e.m3u8"

But it not work with another video file
[hwupload @ 0x564ce4744900] A hardware device reference is required to upload frames to.
[Parsed_hwupload_3 @ 0x564ce470da80] Query format failed for 'Parsed_hwupload_3': Invalid argument
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

Worked : h.264
Not worked : H.265 10bit

from spksrc.

th0ma7 avatar th0ma7 commented on September 18, 2024

Indeed vaapi is probably your way to go as synocommunity's ffmpeg does not yet support opencl which is mandatory for QSV in Jellyfin I believe (work is progressing towards that #6166)

Current opencl status should read as follow on your nas, showing no opencl capacity at the moment:

$ sudo /var/packages/ffmpeg6/target/bin/ffmpeg6 -hide_banner -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
[AVHWDeviceContext @ 0x5559c66e89c0] libva: VA-API version 1.21.0
[AVHWDeviceContext @ 0x5559c66e89c0] libva: Trying to open /var/packages/ffmpeg6/target/lib/iHD_drv_video.so
[AVHWDeviceContext @ 0x5559c66e89c0] libva: Found init function __vaDriverInit_1_21
[AVHWDeviceContext @ 0x5559c66e89c0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5559c66e89c0] Initialised VAAPI connection: version 1.21
[AVHWDeviceContext @ 0x5559c66e89c0] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.5 (c97ec91).
[AVHWDeviceContext @ 0x5559c66e89c0] Driver not found in known nonstandard list, using standard behaviour.
Device creation failed: -12.
Failed to set value 'opencl@va' for option 'init_hw_device': Cannot allocate memory
Error parsing global options: Cannot allocate memory

Also, depending of your processor, hardware decoding codecs will vary. On your NAS the following capabilities should show:

$ sudo /var/packages/ffmpeg6/target/bin/vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
libva info: VA-API version 1.21.0
libva info: Trying to open /var/packages/ffmpeg6/target/lib/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_21
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.21 (libva 2.21.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.1.5 (c97ec91)
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD

From the decoding feature set at https://github.com/intel/media-driver BXTx feature set should indeed allow decoding h265 (hevc) 10-bit. I suggest you reach out to Jellyfin for support and/or explanations relatively to that in particular.

Lastly, one change with the latest version for intel apollolake and later synology NAS (such as yours), ffmpeg got migrated from intel MFX to Intel Video Processing Library (Intel-VPL). This is in preparation for opencl enablement.

Question is: does hevc 10-bit work when using the older ffmpeg6 version (6.0-2) available at https://synocommunity.com/package/ffmpeg6 ?

from spksrc.

dateno1 avatar dateno1 commented on September 18, 2024

Lastly, one change with the latest version for intel apollolake and later synology NAS (such as yours), ffmpeg got migrated from intel MFX to Intel Video Processing Library (Intel-VPL). This is in preparation for opencl enablement.

Question is: does hevc 10-bit work when using the older ffmpeg6 version (6.0-2) available at https://synocommunity.com/package/ffmpeg6 ?

I was using i5-6500t for NAS

https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding
It not support 'HEVC 10bit'

I wasn't use hardware decoding for it on jellyfin

It will be decoded by software but failed (I don't know why it failed)

AVC + AAC@mp4 is OK but HEVC 10bit + AAC@mkv is failed

That is not big problem

All of them work well with QSV(not VAAPI) on old jellyfin + old ffmpeg

Fix QSV on newest ffmpeg6 will fix all problem

from spksrc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.