{"id":24135071,"url":"https://github.com/reveldigital/gstreamer-vaapi","last_synced_at":"2025-03-01T11:22:44.203Z","repository":{"id":81731431,"uuid":"174606448","full_name":"RevelDigital/gstreamer-vaapi","owner":"RevelDigital","description":null,"archived":false,"fork":false,"pushed_at":"2019-03-08T20:45:48.000Z","size":1972,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-12T01:19:59.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RevelDigital.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING.LIB","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-08T20:41:56.000Z","updated_at":"2019-03-08T20:45:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"f50ebf94-72b0-4d4b-9d64-3fb6a73f8bff","html_url":"https://github.com/RevelDigital/gstreamer-vaapi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RevelDigital%2Fgstreamer-vaapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RevelDigital%2Fgstreamer-vaapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RevelDigital%2Fgstreamer-vaapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RevelDigital%2Fgstreamer-vaapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RevelDigital","download_url":"https://codeload.github.com/RevelDigital/gstreamer-vaapi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241356366,"owners_count":19949513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-12T01:19:56.715Z","updated_at":"2025-03-01T11:22:44.181Z","avatar_url":"https://github.com/RevelDigital.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n  gstreamer-vaapi\n  VA-API support to GStreamer\n\n  Copyright (C) 2010-2011 Splitted-Desktop Systems\n  Copyright (C) 2011-2014 Intel Corporation\n  Copyright (C) 2011 Collabora Ltd.\n\n\nLicense\n-------\n\ngstreamer-vaapi helper libraries and plugin elements are available\nunder the terms of the GNU Lesser General Public License v2.1+\n\n\nOverview\n--------\n\ngstreamer-vaapi consists in a collection of VA-API based plugins for\nGStreamer and helper libraries.\n\n  * `vaapi\u003cCODEC\u003edec' is used to decode JPEG, MPEG-2, MPEG-4:2, H.264\n    AVC, H.264 MVC, VP8, VC-1, WMV3, HEVC videos to VA surfaces,\n    depending on the actual value of \u003cCODEC\u003e and the underlying\n    hardware capabilities.  This plugin is also able to implicitly\n    download the decoded surface to raw YUV buffers.\n\n  * `vaapi\u003cCODEC\u003eenc' is used to encode into MPEG-2, H.264 AVC, H.264\n    MVC, JPEG, VP8, HEVC videos, depending on the actual value of\n    \u003cCODEC\u003e (mpeg2, h264, etc.) and the hardware capabilities. By\n    default, raw format bitstreams are generated, so the result may be\n    piped to a muxer, e.g. qtmux for MP4 containers.\n\n  * `vaapipostproc' is used to filter VA surfaces, for e.g. scaling,\n    deinterlacing (bob, motion-adaptive, motion-compensated), noise\n    reduction or sharpening. This plugin is also used to upload raw\n    YUV pixels into VA surfaces.\n\n  * `vaapisink' is used to render VA surfaces to an X11 or Wayland\n    display. This plugin also features a \"headless\" mode (DRM) more\n    suited to remote transcode scenarios, with faster throughput.\n\n\nFeatures\n--------\n\n  * VA-API support from 0.29 to 0.38\n  * JPEG, MPEG-2, MPEG-4, H.264 AVC, H.264 MVC, VP8, VC-1, HEVC and\n    VP9 ad-hoc decoders\n  * MPEG-2, H.264 AVC,H.264 MVC, JPEG, VP8 and HEVC ad-hoc encoders\n  * OpenGL rendering through VA/GLX or GLX texture-from-pixmap + FBO\n  * Support for EGL backend\n  * Support for the Wayland display server\n  * Support for headless decode pipelines with VA/DRM\n  * Support for major HW video decoding solutions on Linux (AMD,\n    Intel, NVIDIA)\n  * Support for HW video encoding on Intel HD Graphics hardware\n  * Support for VA Video Processing APIs (VA/VPP)\n    - Scaling and color conversion\n    - Image enhancement filters: Sharpening, Noise Reductio, Color\n      Balance, Skin-Tone-Enhancement\n    - Advanced deinterlacing: Motion-Adaptive, Motion-Compensated\n\n\nRequirements\n------------\n\nSoftware requirements\n\n  * GStreamer 1.9.x:\n      libgstreamer1.0-dev (\u003e= 1.9.x)\n      libgstreamer-plugins-base1.0-dev (\u003e= 1.9.x)\n      libgstreamer-plugins-bad1.0-dev (\u003e= 1.9.0)\n\n  * Renderers:\n      DRM: libva-dev (\u003e= 1.1.0), libdrm-dev, libudev-dev\n      X11: libva-dev (\u003e= 1.0.1)\n      GLX: libva-dev (\u003e= 1.0.3)\n      Wayland: libva-dev (\u003e= 1.1.0), libwayland-dev (\u003e= 1.0.2)\n\nHardware requirements\n\n  * Intel Eaglelake (G45)\n  * Intel Ironlake, Sandybridge, Ivybridge, Haswell, Broadwell,\n    Skylake, etc. (HD Graphics)\n  * Intel BayTrail, Braswell\n  * Intel Poulsbo (US15W)\n  * Intel Medfield or Cedar Trail\n  * Hardware supported by Mesa VA gallium state-tracker\n\n\nUsage\n-----\n\n  VA elements are automatically plugged into GStreamer pipelines. So,\n  using playbin should work as is.\n  However, here are a few alternate pipelines that could be manually\n  constructed.\n\n  * Play an H.264 video with an MP4 container in fullscreen mode\n  $ gst-launch-1.0 -v filesrc location=/path/to/video.mp4 ! \\\n      qtdemux ! vaapidecodebin ! vaapisink fullscreen=true\n\n  * Play a raw MPEG-2 interlaced stream\n  $ gst-launch-1.0 -v filesrc location=/path/to/mpeg2.bits ! \\\n      mpegvideoparse ! vaapimpeg2dec ! vaapipostproc ! vaapisink\n\n  * Convert from one pixel format to another, while also downscaling\n  $ gst-launch-1.0 -v filesrc location=/path/to/raw_video.yuv ! \\\n      videoparse format=yuy2 width=1280 height=720 ! \\\n      vaapipostproc format=nv12 height=480 ! vaapisink\n\n  * Encode a 1080p stream in raw I420 format into H.264\n  $ gst-launch-1.0 -v filesrc location=/path/to/raw_video.yuv ! \\\n      videoparse format=i420 width=1920 height=1080 framerate=30/1 ! \\\n      vaapih264enc rate-control=cbr tune=high-compression ! \\\n      qtmux ! filesink location=/path/to/encoded_video.mp4\n\n\nSources\n-------\n\n  gstreamer-vaapi is Open Source software, so updates to this\n  framework are really easy to get.\n\n  Stable source code releases can be found at:\n  \u003chttps://gstreamer.freedesktop.org/src/gstreamer-vaapi/\u003e\n\n  Git repository for work-in-progress changes is available at:\n  \u003chttps://cgit.freedesktop.org/gstreamer/gstreamer-vaapi\u003e\n\n\nReporting Bugs\n--------------\n\n  Bugs can be reported in the GNOME Bugzilla system at:\n  \u003chttps://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer\u0026component=gstreamer-vaapi\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freveldigital%2Fgstreamer-vaapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freveldigital%2Fgstreamer-vaapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freveldigital%2Fgstreamer-vaapi/lists"}