Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Require Ability to Disable Codecs Based on GPU Support #1408

Open
Routhinator opened this issue Feb 28, 2025 · 0 comments
Open

Require Ability to Disable Codecs Based on GPU Support #1408

Routhinator opened this issue Feb 28, 2025 · 0 comments
Labels
feature New feature or request

Comments

@Routhinator
Copy link

Is your feature request related to a problem? Please describe.
I am running Nextcloud on Zimaboards in a Kubernetes cluster. The have a GPU and I have working transcoding, however Memories keeps trying to transcode to HEVC, which the Intel GPU in a Zimaboard does not support. I need to prevent Memories from trying to use HEVC and AV1 to align with the GPU and things should work.

Describe the solution you'd like
I want to be able to configure the available codecs for the transcoder

Describe alternatives you've considered
There doesn't seem to be any alternatives for this use case. CPU transcoding is too slow.

Additional context
Transcode log:

2025/02/28 00:22:12 tthx0j4miy90-max: /usr/bin/ffmpeg -loglevel warning -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i /var/www/html/data/__groupfolders/1/2024/2024-12-25/20241225_060733.mp4 -copyts -fflags +genpts -vf "format=nv12|vaapi,hwupload,scale_vaapi=force_original_aspect_ratio=decrease:format=nv12" -map "0:v:0" "-c:v" h264_vaapi -global_quality 24 -low_power 1 -map "0:a:0?" "-c:a" aac -ac 1 -start_number 0 -avoid_negative_ts disabled -f hls -hls_flags split_by_time -hls_time 3 -hls_segment_type mpegts -hls_segment_filename /tmp/go-vod/oc7hlbj9m969/tthx0j4miy90-4046163589/max-%06d.ts -force_key_frames "expr:gte(t,n_forced*3)" -
2025/02/28 00:22:12 ffmpeg-error: [hevc @ 0x55de534219c0] No support for codec hevc profile 1.
2025/02/28 00:22:12 ffmpeg-error: [hevc @ 0x55de534219c0] Failed setup for format vaapi: hwaccel initialisation returned error.
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54981580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de549c4740] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54a076c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54a4a640] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54a8b6c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54ace640] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54b0f6c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54b52640] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54972cc0] [swscaler @ 0x55de54b955c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54981580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54abab00] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b86680] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a82cc0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b47d00] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b020c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549ac900] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549ee700] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a316c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54981580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54ab2580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b7b700] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a782c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549a5b00] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b3f000] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54af85c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549ec800] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a2f7c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54981580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a71bc0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54ab2580] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b7ea80] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549a7a00] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54b40100] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54af74c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de549ec800] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [swscaler @ 0x55de54bbcb00] [swscaler @ 0x55de54a2f7c0] deprecated pixel format used, make sure you did set range correctly
2025/02/28 00:22:12 ffmpeg-error: [h264_vaapi @ 0x55de5340c6c0] No usable encoding entrypoint found for profile VAProfileH264High (7).
2025/02/28 00:22:12 ffmpeg-error: Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
2025/02/28 00:22:12 tthx0j4miy90-max: ffmpeg exited with status: 1

Verified working transcode based on HW Transcode documentation test:

root@nextcloud-5d967d6d-dgtz9:/var/www/html/data# su - www-data -s /bin/bash -c "ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i 'html/data/sample.mp4' -vcodec h264_vaapi html/data/output-www-data.mp4"
ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'html/data/sample.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
  Duration: 00:00:10.00, start: 0.000000, bitrate: 837 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 832 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
File 'html/data/output-www-data.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[h264_vaapi @ 0x55eabe2a8f00] No quality level set; using default (20).
Output #0, mp4, to 'html/data/output-www-data.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.27.100
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), vaapi(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 60 fps, 15360 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 h264_vaapi
frame=  600 fps=209 q=-0.0 Lsize=   17421kB time=00:00:09.96 bitrate=14318.6kbits/s speed=3.46x    
video:17414kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.038022%
root@nextcloud-5d967d6d-dgtz9:/var/www/html/data#
@Routhinator Routhinator added the feature New feature or request label Feb 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant