Re: FFmpeg VAAPI H264 /HEVC encoding not supported
Date: Sun, 07 Jan 2024 00:17:31 UTC
Very thanks. root@marietto:/usr/ports/graphics # glxinfo https://pastebin.ubuntu.com/p/RryNptHvsk/ I don't see "Accelerated:'' On Sat, Jan 6, 2024 at 11:58 PM Kevin Oberman <rkoberman@gmail.com> wrote: > On Sat, Jan 6, 2024 at 9:57 AM Mario Marietto <marietto2008@gmail.com> > wrote: > >> 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. >> > First, VAAPI is not a codec. It is Video Acceleration-API and is > supported by some tools directly, but most often using Mesa or > libva-VADPAU. Without VA-API support, the graphics will be handled by the > CPU, not the GPU. Both H.264 (AVC) nd H.265 (HVEC) are supported by VAAPI. > > Are you building ffmpeg from source or installing a package? Patented > ports need to be built "NONFREE=on" for patented codecs. I am not sure what > options the ffmpeg package is built with. > > Are you sure that Video Acceleration is working on your GPU? I have an > Alder Lake Intel GPU and, as of last week, the device in FreeBSD's drivers. > (New GPU firmware was added this week, but I have yet to try it to confirm > whether it fixes the issue.) Easy check is to play a high res (780 or > higher) video. If you have VA-API working, CPU usage will not change much. > With VA-API support, it will increase significantly. More accurate check is > to install graphics/xdpiinfo and run it (no args) or graphics/glx-utils > and run "glxinfo into a pager (more, less, or most). glxinfo is quite > verbose. You want to look for "Accelerated:'' about 50 lines from the top. > > I am not an expert on all of this, but I've learned a bit trying to get my > Alder Lake work properly on FreeBSD. > -- > Kevin Oberman, Part time kid herder and retired Network Engineer > E-mail: rkoberman@gmail.com > PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 > -- Mario.