ffmpeg-libav-tutorial VS libva

Compare ffmpeg-libav-tutorial vs libva and see what are their differences.

ffmpeg-libav-tutorial

FFmpeg libav tutorial - learn how media works from basic to transmuxing, transcoding and more. Translations: πŸ‡ΊπŸ‡Έ πŸ‡¨πŸ‡³ πŸ‡°πŸ‡· πŸ‡ͺπŸ‡Έ πŸ‡»πŸ‡³ πŸ‡§πŸ‡· (by leandromoreira)

libva

Libva is an implementation for VA-API (Video Acceleration API) (by intel)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ffmpeg-libav-tutorial libva
10 8
9,572 618
- 2.8%
1.0 7.7
2 months ago 14 days ago
C C
BSD 3-clause "New" or "Revised" License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ffmpeg-libav-tutorial

Posts with mentions or reviews of ffmpeg-libav-tutorial. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-01.
  • The FFmpeg Tutorial
    1 project | news.ycombinator.com | 30 Oct 2022
    The FFmpeg libraries are possibly the worst thing I have ever worked with in my life. I have never been more afraid to use a library than this one. This tutorial is very outdated, eg. `AVPicture`, which is used throughout, is completely deprecated and removed from the library, so you will simply encounter linker errors trying to follow this tutorial.

    FFmpeg libraries randomly break themselves, so if you find an answer from a few years ago, chances are it's useless. Want to free an AVPacket? `av_free_packet` is deprecated,. You can use `av_packet_unref` (but there's _also_ a function named `av_packet_free` that doesn't do quite the same thing).

    Most questions on Stack Overflow or related platforms have no replies, the library has literally zero documentation, it has very little error handling, which means if you're a bad C developer like me you are required to recompile FFmpeg with debugging information unstripped so you can trace segfaults in gdb.

    https://github.com/leandromoreira/ffmpeg-libav-tutorial/ is a better and more up-to-date tutorial than this one.

  • Error when I install KShare
    1 project | /r/archlinux | 6 Sep 2022
    I found this . I think you need an older version of ffmpeg to use the program, try to write it under the AUR to see if the mantainer is still active and knows the problem.
  • Ask HN: How can I learn about video encoding, h.264, ffmpeg, etc.
    3 projects | news.ycombinator.com | 1 Apr 2022
  • All the giant companies used ffmpeg
    4 projects | news.ycombinator.com | 24 Dec 2021
    I think you're supposed to read the header files? I have no idea how people write ffmpeg stuff. The only good tutorial I've seen is: https://github.com/leandromoreira/ffmpeg-libav-tutorial
  • A simple X11+SDL2 animated wallpaper setter and video player
    2 projects | /r/C_Programming | 13 Dec 2021
    Much of it I learned from An ffmpeg and SDL Tutorial (outdated, but the core idea persists), and from ffmpeg-libav-tutorial.
  • super quick FFmpeg and libav tutorial
    1 project | /r/signalprocessing | 8 Jun 2021
    https://github.com/leandromoreira/ffmpeg-libav-tutorial#learn-ffmpeg-libav-the-hard-way
  • FFmpeg + WebAssembly
    8 projects | dev.to | 19 May 2021
    If you are not familiar with libav, ffmpeg-libav-tutorial is a great introduction.
  • FFmpeg as a Library
    1 project | news.ycombinator.com | 12 May 2021
  • How to encode using c++ with constant fps?
    1 project | /r/ffmpeg | 18 Apr 2021
    Try this tutorial: https://github.com/leandromoreira/ffmpeg-libav-tutorial
  • where do I start? Linux embedded development; SoC's. CSI and DSI MIPI
    2 projects | /r/embedded | 30 Dec 2020
    Btw, if you want to encode anything higher than 1080p60 using the Videocore VI, you'll need to use an external library like ffmpeg. There is a good tutorial for ffmpeg too - https://github.com/leandromoreira/ffmpeg-libav-tutorial . This should teach you how to encode the raw video stream you get from the camera into a codec of your choice.

libva

Posts with mentions or reviews of libva. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-18.
  • Trying to enable the D3D12 GPU Video acceleration in the Windows (11) Subsystem for Linux.
    2 projects | /r/bashonubuntuonwindows | 18 Jul 2023
    # apt install autoconf libtool meson glslang-tools libxcb-glx0-dev libxcb-shm0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev llvm-11 llvm-15 libxml2-dev graphviz doxygen xsltproc xmlto gstreamer1.0-plugins-bad gstreamer1.0-tools gstreamer1.0-vaapi ffmpeg mesa-va-drivers vainfo libxrandr-dev libxxf86vm-dev libxfixes-dev libxext-dev libwayland-egl-backend-dev wayland-egl-backend libelf-dev byacc bison flex wayland-protocols python3-pip libdrm-dev libva-dev vainfo # pip3 install mako # wget https://archive.mesa3d.org/mesa-22.3.0.tar.xz # tar -xvf mesa-22.3.0.tar.xz # cd mesa-22.3.0 # meson build -Dgallium-drivers=swrast,d3d12 -Dgallium-va=true -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec The Meson build system Version: 0.63.2 Source dir: /home/marietto/Scaricati/mesa-22.3.0 Build dir: /home/marietto/Scaricati/mesa-22.3.0/build Build type: native build Program python3 found: YES (/usr/bin/python3) Project name: mesa Project version: 22.3.0 C compiler for the host machine: cc (gcc 12.2.0 "cc (Ubuntu 12.2.0-3ubuntu1) 12.2.0") C linker for the host machine: cc ld.bfd 2.39 C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Ubuntu 12.2.0-3ubuntu1) 12.2.0") C++ linker for the host machine: c++ ld.bfd 2.39 Host machine cpu family: x86_64 Host machine cpu: x86_64 Checking if "-mtls-dialect=gnu2" runs: YES Checking if "split TLSDESC" : links: YES Found pkg-config: /usr/bin/pkg-config (0.29.2) Did not find CMake 'cmake' Found CMake: NO Run-time dependency directx-headers found: NO (tried pkgconfig and cmake) Run-time dependency directx-headers found: YES 1.606.4 Run-time dependency vdpau found: YES 1.5 Program glslangValidator found: YES (/usr/bin/glslangValidator) meson.build:785: WARNING: gallium-va option "true" deprecated, please use "enabled" instead. Run-time dependency libva found: YES 1.19.0 Header "va/va.h" has symbol "VASurfaceAttribDRMFormatModifiers" with dependency libva: YES Program python3 found: YES (/usr/bin/python3) Fetching value of define "ETIME" : 62 Checking for function "bswap32" : YES Checking for function "bswap64" : YES Checking for function "clz" : YES Checking for function "clzll" : YES Checking for function "ctz" : YES Checking for function "expect" : YES Checking for function "ffs" : YES Checking for function "ffsll" : YES Checking for function "popcount" : YES Checking for function "popcountll" : YES Checking for function "unreachable" : YES Checking for function "types_compatible_p" : YES Compiler for C supports function attribute const: YES Compiler for C supports function attribute flatten: YES Compiler for C supports function attribute malloc: YES Compiler for C supports function attribute pure: YES Compiler for C supports function attribute unused: YES Compiler for C supports function attribute warn_unused_result: YES Compiler for C supports function attribute weak: YES Compiler for C supports function attribute format: YES Compiler for C supports function attribute packed: YES Compiler for C supports function attribute returns_nonnull: YES Compiler for C supports function attribute alias: YES Compiler for C supports function attribute noreturn: YES Compiler for C supports function attribute visibility:hidden: YES Checking if "__uint128_t" compiles: YES Checking for function "reallocarray" : YES Compiler for C supports link arguments -Wl,--gc-sections: YES Compiler for C supports arguments -Werror=implicit-function-declaration: YES Compiler for C supports arguments -Werror=missing-prototypes: YES Compiler for C supports arguments -Werror=return-type: YES Compiler for C supports arguments -Werror=empty-body: YES Compiler for C supports arguments -Werror=incompatible-pointer-types: YES Compiler for C supports arguments -Werror=int-conversion: YES Compiler for C supports arguments -Wimplicit-fallthrough: YES Compiler for C supports arguments -Wno-missing-field-initializers: YES Compiler for C supports arguments -Wno-format-truncation: YES Compiler for C supports arguments -fno-math-errno: YES Compiler for C supports arguments -fno-trapping-math: YES Compiler for C supports arguments -Qunused-arguments: NO Compiler for C supports arguments -fno-common: YES Compiler for C supports arguments -Wno-microsoft-enum-value: NO Compiler for C supports arguments -Wno-unused-function: YES Compiler for C supports arguments -Werror=format: YES Compiler for C supports arguments -Wformat-security: YES Compiler for C supports arguments -Werror=thread-safety: NO Compiler for C supports arguments -ffunction-sections: YES Compiler for C supports arguments -fdata-sections: YES Compiler for C++ supports arguments -Werror=return-type: YES Compiler for C++ supports arguments -Werror=empty-body: YES Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES Compiler for C++ supports arguments -Wno-missing-field-initializers: YES Compiler for C++ supports arguments -Wno-format-truncation: YES Compiler for C++ supports arguments -fno-math-errno: YES Compiler for C++ supports arguments -fno-trapping-math: YES Compiler for C++ supports arguments -Qunused-arguments: NO Compiler for C++ supports arguments -flifetime-dse=1: YES Compiler for C++ supports arguments -Wno-microsoft-enum-value: NO Compiler for C++ supports arguments -Werror=format: YES Compiler for C++ supports arguments -Wformat-security: YES Compiler for C++ supports arguments -ffunction-sections: YES Compiler for C++ supports arguments -fdata-sections: YES Compiler for C supports arguments -Wno-override-init: YES Compiler for C supports arguments -Wno-initializer-overrides: NO Compiler for C supports arguments -Werror=pointer-arith: YES Compiler for C supports arguments -Werror=vla: YES Compiler for C supports arguments -Werror=gnu-empty-initializer: NO Compiler for C++ supports arguments -Werror=pointer-arith: YES Compiler for C++ supports arguments -Werror=vla: YES Compiler for C++ supports arguments -Werror=gnu-empty-initializer: NO Checking if "GCC atomic builtins" compiles: YES Checking if "GCC atomic builtins required -latomic" : links: YES Checking if "GCC 64bit atomics" with dependency : links: YES Library ws2_32 found: NO Header "sys/sysmacros.h" has symbol "major" : YES Header "sys/sysmacros.h" has symbol "minor" : YES Header "sys/sysmacros.h" has symbol "makedev" : YES Header "sys/mkdev.h" has symbol "major" : NO Check usable header "sched.h" : YES Checking for function "sched_getaffinity" : YES Check usable header "xlocale.h" : NO Check usable header "linux/futex.h" : YES Check usable header "endian.h" : YES Check usable header "dlfcn.h" : YES Check usable header "sys/shm.h" : YES Check usable header "cet.h" : YES Check usable header "pthread_np.h" : NO Checking for function "strtof" : YES Checking for function "mkostemp" : YES Checking for function "timespec_get" : YES Checking for function "memfd_create" : YES Checking for function "random_r" : YES Checking for function "flock" : YES Checking for function "strtok_r" : YES Checking for function "getrandom" : YES Checking for function "qsort_s" : NO Checking if "GNU qsort_r" : links: YES Header "time.h" has symbol "struct timespec" : YES Checking for function "thrd_create" : YES Header "errno.h" has symbol "program_invocation_name" : YES Header "math.h" has symbol "issignaling" : YES Checking for function "posix_memalign" : YES Checking whether type "struct dirent" has member "d_type" : YES Checking if "strtod has locale support" : links: YES Checking if "Bsymbolic" : links: YES Checking if "gc-sections" : links: YES Checking if "version-script" : links: YES Checking if "dynamic-list" : links: YES Compiler for C supports link arguments -Wl,--build-id=sha1: YES Checking for function "dlopen" : YES Checking for function "dladdr" with dependency : YES Checking for function "dl_iterate_phdr" : YES Checking for function "clock_gettime" : YES Run-time dependency zlib found: YES 1.2.11 Run-time dependency libzstd found: NO (tried pkgconfig and cmake) Run-time dependency threads found: YES Checking for function "pthread_setaffinity_np" with dependency threads: YES Run-time dependency expat found: YES 2.4.8 Library m found: YES Message: libdrm 2.4.110 needed because amdgpu has the highest requirement Run-time dependency libdrm_amdgpu found: YES 2.4.113 Run-time dependency libdrm found: YES 2.4.113 Run-time dependency libudev found: YES 251 WARNING: Ignoring LLVM CMake dependency because dynamic was requested llvm-config found: YES (/usr/bin/llvm-config-15) 15.0.7 Run-time dependency LLVM (modules: amdgpu, bitreader, bitwriter, core, engine, executionengine, instcombine, ipo, mcdisassembler, mcjit, native, scalaropts, transformutils, coroutines) found: YES 15.0.7 Run-time dependency libelf found: YES 0.187 Run-time dependency valgrind found: NO (tried pkgconfig) Program bison found: YES (/usr/bin/bison) Program bison found: YES 3.8.2 (/usr/bin/bison) Program flex found: YES (/usr/bin/flex) Run-time dependency libunwind found: NO (tried pkgconfig and cmake) Found pkg-config: /usr/bin/pkg-config (0.29.2) Build-time dependency wayland-scanner found: YES 1.22.90 Program /usr/local/bin/wayland-scanner found: YES (/usr/local/bin/wayland-scanner) Run-time dependency wayland-protocols found: YES 1.32 Run-time dependency wayland-client found: YES 1.22.90 Run-time dependency wayland-server found: YES 1.22.90 Run-time dependency wayland-egl-backend found: YES 3 Run-time dependency OpenMP found: YES 4.5 Run-time dependency x11 found: YES 1.8.1 Run-time dependency xext found: YES 1.3.4 Run-time dependency xfixes found: YES 6.0.0 Run-time dependency xcb-glx found: YES 1.15 Run-time dependency xcb-shm found: YES 1.15 Run-time dependency xcb found: YES 1.15 Run-time dependency x11-xcb found: YES 1.8.1 Run-time dependency xcb-dri2 found: YES 1.15 Run-time dependency xcb-dri3 found: YES 1.15 Run-time dependency xcb-present found: YES 1.15 Dependency xcb-shm found: YES 1.15 (cached) Run-time dependency xcb-sync found: YES 1.15 Run-time dependency xshmfence found: YES 1.3 Run-time dependency glproto found: YES 1.4.17 Run-time dependency dri2proto found: YES 2.8 Run-time dependency xxf86vm found: YES 1.1.4 Run-time dependency xcb-xfixes found: YES 1.15 Run-time dependency xcb-randr found: YES 1.15 Run-time dependency xrandr found: YES 1.5.2 Library sensors found: NO Program nm found: YES (/usr/bin/nm) Program symbols-check.py found: YES (/usr/bin/python3 /home/marietto/Scaricati/mesa-22.3.0/bin/symbols-check.py) Program install_megadrivers.py found: YES (/usr/bin/python3 /home/marietto/Scaricati/mesa-22.3.0/bin/install_megadrivers.py) WARNING: Library target 'GLESv1_CM' has 'name_prefix' set. Compilers may not find it from its '-lGLESv1_CM' linker flag in the 'glesv1_cm.pc' pkg-config file. WARNING: Library target 'GLESv1_CM' has 'name_prefix' set. Compilers may not find it from its '-lGLESv1_CM' linker flag in the 'glesv1_cm-uninstalled.pc' pkg-config file. WARNING: Library target 'GLESv2' has 'name_prefix' set. Compilers may not find it from its '-lGLESv2' linker flag in the 'glesv2.pc' pkg-config file. WARNING: Library target 'GLESv2' has 'name_prefix' set. Compilers may not find it from its '-lGLESv2' linker flag in the 'glesv2-uninstalled.pc' pkg-config file. Program decode.py found: YES (/home/marietto/Scaricati/mesa-22.3.0/src/compiler/isaspec/decode.py) Program encode.py found: YES (/home/marietto/Scaricati/mesa-22.3.0/src/compiler/isaspec/encode.py) Compiler for C++ supports arguments -Wno-unused-variable: YES Compiler for C++ supports arguments -Wno-unused-local-typedefs: YES Compiler for C++ supports arguments -Wno-unused-but-set-variable: YES Compiler for C++ supports arguments -Wno-maybe-uninitialized: YES Compiler for C++ supports arguments -Wno-self-assign: NO Compiler for C++ supports arguments -fno-exceptions: YES Compiler for C++ supports arguments -fno-rtti: YES Compiler for C++ supports arguments -Wimplicit-fallthrough: YES Compiler for C++ supports arguments -Wshadow: YES Compiler for C supports arguments -Wimplicit-fallthrough: YES (cached) Compiler for C supports arguments -Wshadow: YES Program ln found: YES (/usr/bin/ln) Checking for function "mincore" : YES WARNING: Library target 'EGL' has 'name_prefix' set. Compilers may not find it from its '-lEGL' linker flag in the 'egl.pc' pkg-config file. WARNING: Library target 'EGL' has 'name_prefix' set. Compilers may not find it from its '-lEGL' linker flag in the 'egl-uninstalled.pc' pkg-config file. Message: Configuration summary: prefix: /usr/local libdir: lib/x86_64-linux-gnu includedir: include OpenGL: yes (ES1: yes ES2: yes) OSMesa: no DRI platform: drm DRI driver dir: /usr/local/lib/x86_64-linux-gnu/dri GLX: DRI-based EGL: yes EGL drivers: builtin:egl_dri2 builtin:egl_dri3 EGL/Vulkan/VL platforms: x11 wayland surfaceless drm xcb GBM: yes GBM backends path: /usr/local/lib/x86_64-linux-gnu/gbm Video Codecs: h264dec h264enc h265dec h265enc vc1dec Vulkan drivers: amd intel intel_hasvk swrast Vulkan ICD dir: share/vulkan/icd.d Vulkan Intel Ray Tracing: no llvm: yes llvm-version: 15.0.7 Gallium drivers: swrast d3d12 Gallium st: mesa vdpau va HUD lmsensors: no Shared-glapi: yes Perfetto: no Perfetto ds: auto Build targets in project: 236 NOTICE: Future-deprecated features used: * 0.55.0: {'ExternalProgram.path'} * 0.56.0: {'meson.source_root'} mesa 22.3.0 User defined options gallium-drivers: swrast,d3d12 gallium-va : true video-codecs : h264dec,h264enc,h265dec,h265enc,vc1dec Found ninja-1.11.0 at /usr/bin/ninja # git clone https://github.com/intel/libva.git # cd libva & ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu # make & sudo make install # which llvm-config-11 /usr/bin/llvm-config-11 added to : /home/marietto/.bashrc and /root/.bashrc # export LIBVA_DRIVERS_PATH=/usr/local/lib/x86_64-linux-gnu/dri # export LIBVA_DRIVER_NAME=d3d12 # source /home/marietto/.bashrc # source /root/.bashrc # vainfo --display drm --device /dev/dri/card0 Failed to open the given device! # ls /dev/dri ls: cannot access '/dev/dri': No such file or directory
  • ASRock Intel Arc A380 Challenger ITX 6GB OC
    1 project | /r/AV1 | 17 Aug 2022
    Intel's docs seem outdated (version 2.13). Version 2.14: Add av1 encode interfaces
  • Installing intel-media-driver
    2 projects | /r/linuxquestions | 15 Jul 2022
    Stating that libva (https://github.com/intel/libva) version 2.10.0 is already installed on my machine. I think I didnt install it, seems like debian ships with it preinstalled?
  • [Intel to AMD] just realised that gnome installed Intel vaapi drivers from rpm-fusion not AMD.
    1 project | /r/Fedora | 17 Jun 2022
    Hey, un-wanted fun fact? Intel actually develops the VA-API specification.
  • Trying to understand the video stack
    1 project | /r/Fedora | 22 Jan 2022
    To understand the Linux video stack see slides #114 and #178 from https://bootlin.com/doc/training/graphics/graphics-slides.pdf and https://01.org/linuxmedia and https://gstreamer.freedesktop.org/documentation/application-development/introduction/gstreamer.html?gi-language=c
  • Is the hardware transocding working?
    1 project | /r/jellyfin | 11 May 2021
    Which appears to be VAProfileJPEGBaseline? ( https://github.com/intel/libva/blob/master/va/va.h#L486 )
  • Libva (vaapi) 2.11.0 released with support for LibVA Protected Content API
    1 project | /r/linux | 24 Mar 2021
  • Hardware video acceleration now available in google chrome 88
    2 projects | /r/linux | 20 Jan 2021
    Xwayland requires DRI3, libva supports only DRI2. Under native X11 it is not a problem, under Xwayland it is: https://github.com/intel/libva/issues/122

What are some alternatives?

When comparing ffmpeg-libav-tutorial and libva you can also consider the following projects:

ffmpeg.wasm - FFmpeg for browser, powered by WebAssembly

intel-hybrid-driver

libav-examples - Collection of FFmpeg libav examples.

butterflow-ui - A graphical user interface for butterflow.

FFmpeg - Mirror of https://git.ffmpeg.org/ffmpeg.git

vdpau-va-driver-vp9 - Experimental VP9 codec support for vdpau-va-driver (NVIDIA VDPAU-VAAPI wrapper) and chromium-vaapi

obs-studio - OBS Studio - Free and open source software for live streaming and screen recording

libvorbis - Haskell binding for libvorbis, for decoding Ogg Vorbis audio files

media-driver - Intel Graphics Media Driver to support hardware decode, encode and video processing.

oss-fuzz - OSS-Fuzz - continuous fuzzing for open source software.

ManjaroWSL2 - Manjaro for WSL2 using wsldl