Re: FFmpeg VAAPI H264 /HEVC encoding not supported

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Sat, 06 Jan 2024 17:56:41 UTC
Thanks,

لكن المعلومات التي قدمتها لي عامة. ما زلت لا أعرف ما إذا كان لدي خطأ وما
إذا كان بإمكاني إصلاحه بطريقة ما.

(but the information that you gave to me is generic. I still don't know if
I have a bug and if I can fix it,in some way).

On Sat, Jan 6, 2024 at 5:23 PM Mehmet Erol Sanliturk <
m.e.sanliturk@gmail.com> wrote:

>
> Perhaps the following pages may be useful :
>
> https://trac.ffmpeg.org/wiki/HWAccelIntro
>
> Another issue about video encoders and decoders is patents .
>
>
>
> https://www.google.com/search?q=is+VAAPI+HEVC+encoding+patented+or+not&sca_esv=596226834&sxsrf=AM9HkKnkHnL5dsq45dd5uDNCjL9Olnwl_A%3A1704557479981&ei=p3uZZZXGOLbjxc8P9e66mAU&ved=0ahUKEwjVtdy4k8mDAxW2cfEDHXW3DlMQ4dUDCBA&uact=5&oq=is+VAAPI+HEVC+encoding+patented+or+not&gs_lp=Egxnd3Mtd2l6LXNlcnAiJmlzIFZBQVBJIEhFVkMgZW5jb2RpbmcgcGF0ZW50ZWQgb3Igbm90SO6EAVDyCliigQFwAXgBkAEAmAGiAaAB9xGqAQQwLjE5uAEDyAEA-AEBwgIKEAAYRxjWBBiwA8ICBxAjGLACGCfCAggQABgIGB4YDcICCxAAGIAEGIoFGIYDwgIKECEYChigARjDBMICCBAhGKABGMMEwgIFECEYoAHCAgQQIRgV4gMEGAAgQYgGAZAGCA&sclient=gws-wiz-serp
> is VAAPI HEVC encoding patented or not
>
>
> https://www.google.com/search?q=is+VAAPI+H264+encoding+patented+or+not&sca_esv=596226834&sxsrf=AM9HkKl4fSR7Myk6mZQSftwHYdNbZhnr4Q%3A1704557529388&ei=2XuZZYKcF8m9xc8Pj6u0OA&ved=0ahUKEwjC7KbQk8mDAxXJXvEDHY8VDQcQ4dUDCBA&uact=5&oq=is+VAAPI+H264+encoding+patented+or+not&gs_lp=Egxnd3Mtd2l6LXNlcnAiJmlzIFZBQVBJIEgyNjQgZW5jb2RpbmcgcGF0ZW50ZWQgb3Igbm90MggQABiABBiiBEiP0wZQ5psGWLu5BnADeAGQAQCYAaoBoAGiBqoBAzAuNrgBA8gBAPgBAcICChAAGEcY1gQYsAPiAwQYACBBiAYBkAYI&sclient=gws-wiz-serp
> is VAAPI H264 encoding patented or not
>
>
>
> Mehmet Erol Sanliturk
>
>
>
> On Sat, Jan 6, 2024 at 5:51 PM Mario Marietto <marietto2008@gmail.com>
> wrote:
>
>> Hello to everyone.
>>
>> I'm using FreeBSD 14.0-p3 with the latest packages and I'm trying to
>> enable the VAAPI H264 / HEVC encoding for obs-studio,but it says that they
>> aren't supported. There may be a bug somewhere ?
>>
>> start-obs :
>>
>> sh << EOF
>> env LD_LIBMAP="`nv-sglrun printenv LD_LIBMAP | grep -v libGL`" obs
>> EOF
>>
>> root@marietto:/compat # ./start-obs
>> shim init
>>
>> info: Using EGL/X11
>> info: CPU Name: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
>> info: CPU Speed: 3600.00MHz
>> info: Physical Cores: 8, Logical Cores: 16
>> info: Physical Memory: 31734MB Total, 19859MB Free
>> info: Kernel Version: FreeBSD 14.0-RELEASE-p3
>> info: Distribution: FreeBSD "14.0"
>> info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.21.1
>> info: Qt Version: 6.6.1 (runtime), 6.6.1 (compiled)
>> info: Portable mode: false
>> info: OBS 30.0.2 (freebsd)
>> info: ---------------------------------
>> info: ---------------------------------
>> info: audio settings reset:
>> samples per sec: 48000
>> speakers: 2
>> max buffering: 960 milliseconds
>> buffering type: dynamically increasing
>> info: ---------------------------------
>> info: Initializing OpenGL...
>> info: Loading up OpenGL on adapter NVIDIA Corporation NVIDIA GeForce GTX
>> 1060 3GB/PCIe/SSE2
>> info: OpenGL loaded successfully, version 3.3.0 NVIDIA 535.146.02,
>> shading language 3.30 NVIDIA via Cg compiler
>>
>> info: ---------------------------------
>> info: video settings reset:
>> base resolution: 1920x1080
>> output resolution: 1280x720
>> downscale filter: Bicubic
>> fps: 30/1
>> format: NV12
>> YUV mode: Rec. 709/Partial
>> info: NV12 texture support not available
>> info: P010 texture support not available
>> info: Audio monitoring device:
>> name: Default
>> id: default
>> info: ---------------------------------
>> info: [pipewire] No captures available
>> warning: v4l2loopback not installed, virtual camera disabled
>> info: NVENC supported
>>
>>
>> *info: FFmpeg VAAPI H264 encoding not supported info: FFmpeg VAAPI HEVC
>> encoding not supported*
>>
>> info: [obs-websocket] [obs_module_load] you can haz websockets (Version:
>> 5.0.1 | RPC Version: 1)
>> info: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.6.1
>> | Qt version (run-time): 6.6.1
>> info: [obs-websocket] [obs_module_load] Linked ASIO Version: 101201
>> info: [obs-websocket] [obs_module_load] Module loaded.
>> info: [vlc-video]: VLC 3.0.20 Vetinari found, VLC video source enabled
>> info: ---------------------------------
>> info: Loaded Modules:
>> info: vlc-video.so
>> info: text-freetype2.so
>> info: sndio.so
>> info: rtmp-services.so
>> info: oss-audio.so
>> info: obs-x264.so
>> info: obs-websocket.so
>> info: obs-webrtc.so
>> info: obs-transitions.so
>> info: obs-outputs.so
>> info: obs-filters.so
>> info: obs-ffmpeg.so
>> info: linux-v4l2.so
>> info: linux-pulseaudio.so
>> info: linux-pipewire.so
>> info: linux-jack.so
>> info: linux-capture.so
>> info: image-source.so
>> info: frontend-tools.so
>> info: ---------------------------------
>> info: ==== Startup complete
>> ===============================================
>> info: All scene data cleared
>> info: ------------------------------------------------
>> info: Switched to scene 'Scene'
>> info: ------------------------------------------------
>> info: Loaded scenes:
>> info: - scene 'Scene':
>> info: ------------------------------------------------
>> info: ==== Shutting down
>> ==================================================
>> info: All scene data cleared
>> info: ------------------------------------------------
>> info: [obs-websocket] [obs_module_unload] Shutting down...
>> error: Tried to call obs_frontend_remove_event_callback with no callbacks!
>> error: Tried to call obs_frontend_get_global_config with no callbacks!
>> error: [obs-websocket] [Config::Save] Unable to fetch OBS config!
>> info: [obs-websocket] [obs_module_unload] Finished shutting down.
>> info: [Scripting] Total detached callbacks: 0
>> info: Freeing OBS context data
>> info: == Profiler Results =============================
>> info: run_program_init: 663.636 ms
>> info: ┣OBSApp::AppInit: 3.125 ms
>> info: ┃ ┗OBSApp::InitLocale: 0.784 ms
>> info: ┗OBSApp::OBSInit: 626.884 ms
>> info: ┣obs_startup: 1.247 ms
>> info: ┗OBSBasic::OBSInit: 598.145 ms
>> info: ┣OBSBasic::InitBasicConfig: 0.085 ms
>> info: ┣OBSBasic::ResetAudio: 0.149 ms
>> info: ┣OBSBasic::ResetVideo: 92.565 ms
>> info: ┃ ┗obs_init_graphics: 92.317 ms
>> info: ┃ ┗shader compilation: 22.654 ms
>> info: ┣OBSBasic::InitOBSCallbacks: 0.005 ms
>> info: ┣OBSBasic::InitHotkeys: 0.022 ms
>> info: ┣obs_load_all_modules2: 365.069 ms
>> info: ┃ ┣obs_init_module(frontend-tools.so): 27.908 ms
>> info: ┃ ┣obs_init_module(image-source.so): 0.009 ms
>> info: ┃ ┣obs_init_module(linux-capture.so): 0.374 ms
>> info: ┃ ┣obs_init_module(linux-jack.so): 0.004 ms
>> info: ┃ ┣obs_init_module(linux-pipewire.so): 3.652 ms
>> info: ┃ ┣obs_init_module(linux-pulseaudio.so): 0.003 ms
>> info: ┃ ┣obs_init_module(linux-v4l2.so): 0.856 ms
>> info: ┃ ┣obs_init_module(obs-ffmpeg.so): 5.617 ms
>> info: ┃ ┃ ┗nvenc_check: 5.362 ms
>> info: ┃ ┣obs_init_module(obs-filters.so): 0.029 ms
>> info: ┃ ┣obs_init_module(obs-outputs.so): 0.007 ms
>> info: ┃ ┣obs_init_module(obs-transitions.so): 0.009 ms
>> info: ┃ ┣obs_init_module(obs-webrtc.so): 0.029 ms
>> info: ┃ ┣obs_init_module(obs-websocket.so): 4.649 ms
>> info: ┃ ┣obs_init_module(obs-x264.so): 0.003 ms
>> info: ┃ ┣obs_init_module(oss-audio.so): 0.004 ms
>> info: ┃ ┣obs_init_module(rtmp-services.so): 0.993 ms
>> info: ┃ ┣obs_init_module(sndio.so): 0.005 ms
>> info: ┃ ┣obs_init_module(text-freetype2.so): 0.035 ms
>> info: ┃ ┗obs_init_module(vlc-video.so): 0.635 ms
>> info: ┣OBSBasic::InitService: 0.773 ms
>> info: ┣OBSBasic::ResetOutputs: 0.509 ms
>> info: ┣OBSBasic::CreateHotkeys: 0.026 ms
>> info: ┣OBSBasic::InitPrimitives: 0.162 ms
>> info: ┗OBSBasic::Load: 67.014 ms
>> info: obs_hotkey_thread(25 ms): min=0.03 ms, median=0.17 ms, max=10.834
>> ms, 99th percentile=8.279 ms
>> , 100% below 25 ms
>> info: audio_thread(Audio): min=0.005 ms, median=0.036 ms, max=0.149 ms,
>> 99th percentile=0.101 ms
>> info: obs_graphics_thread(33.3333 ms): min=0.084 ms, median=0.987 ms,
>> max=22.184 ms, 99th percentile
>> =22.184 ms, 100% below 33.333 ms
>> info: ┣tick_sources: min=0.001 ms, median=0.009 ms, max=0.658 ms, 99th
>> percentile=0.658 ms
>> info: ┣output_frame: min=0.041 ms, median=0.212 ms, max=8.411 ms, 99th
>> percentile=8.411 ms
>> info: ┃ ┗gs_context(video->graphics): min=0.04 ms, median=0.211 ms,
>> max=8.41 ms, 99th percentile=8.
>> 41 ms
>> info: ┃ ┣render_video: min=0.02 ms, median=0.125 ms, max=8.379 ms, 99th
>> percentile=8.379 ms
>> info: ┃ ┃ ┗render_main_texture: min=0.015 ms, median=0.098 ms, max=8.356
>> ms, 99th percentile=8.35
>> 6 ms
>> info: ┃ ┗gs_flush: min=0.003 ms, median=0.018 ms, max=7.648 ms, 99th
>> percentile=7.648 ms
>> info: ┗render_displays: min=0.009 ms, median=0.603 ms, max=22.032 ms,
>> 99th percentile=22.032 ms
>> info: =================================================
>> info: == Profiler Time Between Calls ==================
>> info: obs_hotkey_thread(25 ms): min=25.037 ms, median=25.19 ms,
>> max=65.219 ms, 91.0569% within ±2% o
>> f 25 ms (0% lower, 8.94309% higher)
>> info: obs_graphics_thread(33.3333 ms): min=12.188 ms, median=33.322 ms,
>> max=52.604 ms, 78.8889% with
>> in ±2% of 33.333 ms (10% lower, 11.1111% higher)
>> info: =================================================
>> info: Number of memory leaks: 0
>>
>>
>> * but the vaapi codecs are recognized correctly :*
>>
>>
>> # ffmpeg -codecs | grep vaapi
>>
>> ffmpeg version 6.1 Copyright (c) 2000-2023 the FFmpeg developers
>> built with FreeBSD clang version 16.0.6 (
>> https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0
>> -g7cbf1a259152)
>>
>> configuration: --prefix=/usr/local --mandir=/usr/local/man
>> --datadir=/usr/local/share/ffmpeg --doc
>> dir=/usr/local/share/doc/ffmpeg
>> --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disab
>> le-libcelt --enable-shared --enable-pic --enable-gpl --cc=cc --cxx=c++
>> --disable-alsa --disable-libo
>> pencore-amrnb --disable-libopencore-amrwb --enable-libaom
>> --disable-libaribb24 --disable-libaribcapt
>> ion --enable-asm --enable-libass --disable-libbs2b --disable-libcaca
>> --disable-libcdio --disable-lib
>> codec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394
>> --disable-debug --enable-htmlpages -
>> -enable-libdrm --disable-libfdk-aac --disable-libflite
>> --enable-fontconfig --enable-libfreetype --en
>> able-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang
>> --disable-libgme --enable-gmp
>> --enable-gnutls --enable-version3 --disable-libgsm --enable-libharfbuzz
>> --enable-iconv --disable-li
>> bilbc --disable-libjack --enable-libjxl --disable-libklvanc
>> --disable-libkvazaar --disable-ladspa --
>> enable-libmp3lame --enable-lcms2 --disable-liblensfun --disable-libbluray
>> --enable-libplacebo --disa
>> ble-librsvg --disable-librtmp --enable-libxml2 --disable-lv2
>> --disable-mbedtls --disable-libmfx --di
>> sable-libmodplug --disable-libmysofa --enable-network --disable-nonfree
>> --enable-nvenc --disable-ope
>> nal --disable-opencl --disable-opengl --disable-libopenh264
>> --disable-libopenjpeg --disable-libopenm
>> pt --disable-openssl --disable-libopenvino --enable-optimizations
>> --enable-libopus --disable-pockets
>> phinx --disable-libpulse --disable-librabbitmq --disable-librav1e
>> --disable-librist --enable-runtime
>> -cpudetect --disable-librubberband --disable-sdl2 --enable-libshaderc
>> --disable-libsmbclient --disab
>> le-libsnappy --disable-sndio --disable-libsoxr --disable-libspeex
>> --disable-libsrt --disable-libssh
>> --enable-libsvtav1 --disable-libtensorflow --disable-libtesseract
>> --disable-libtheora --disable-libt
>> wolame --disable-libuavs3d --enable-libv4l2 --enable-vaapi
>> --disable-vapoursynth --enable-vdpau --di
>> sable-libvidstab --enable-libvmaf --enable-libvorbis
>> --disable-libvo-amrwbenc --disable-libvpl --ena
>> ble-libvpx --enable-vulkan --enable-libwebp --enable-libx264
>> --enable-libx265 --disable-libxavs2 --e
>> nable-libxcb --disable-libxvid --disable-outdev=xv --disable-libzimg
>> --disable-libzmq --disable-libz
>> vbi
>> libavutil 58. 29.100 / 58. 29.100
>> libavcodec 60. 31.102 / 60. 31.102
>> libavformat 60. 16.100 / 60. 16.100
>> libavdevice 60. 3.100 / 60. 3.100
>> libavfilter 9. 12.100 / 9. 12.100
>> libswscale 7. 5.100 / 7. 5.100
>> libswresample 4. 12.100 / 4. 12.100
>> libpostproc 57. 3.100 / 57. 3.100
>>
>> DEV.L. av1 Alliance for Open Media AV1 (decoders: libdav1d libaom-av1 av1
>> av1_cuvi
>> d) (encoders: libaom-av1 libsvtav1 av1_nvenc av1_vaapi)
>> DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264
>> h264_v4l2m2m
>> h264_cuvid) (encoders: libx264 libx264rgb h264_nvenc h264_v4l2m2m
>> h264_vaapi)
>> DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc
>> hevc_v4l2m2
>> m hevc_cuvid) (encoders: libx265 hevc_nvenc hevc_v4l2m2m hevc_vaapi)
>> DEVIL. mjpeg Motion JPEG (decoders: mjpeg mjpeg_cuvid) (encoders: mjpeg
>> mjpeg_vaapi)
>> DEV.L. mpeg2video MPEG-2 video (decoders: mpeg2video mpegvideo
>> mpeg2_v4l2m2m mpeg2_cuvid)
>> (encoders: mpeg2video mpeg2_vaapi)
>> DEV.L. vp8 On2 VP8 (decoders: vp8 vp8_v4l2m2m libvpx vp8_cuvid)
>> (encoders: libvpx
>> vp8_v4l2m2m vp8_vaapi)
>> DEV.L. vp9 Google VP9 (decoders: vp9 vp9_v4l2m2m libvpx-vp9 vp9_cuvid)
>> (encoders:
>> libvpx-vp9 vp9_vaapi)
>>
>> --
>> Mario.
>>
>

-- 
Mario.