Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-bad gst-plugins-bad
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 982
    • Issues 982
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 125
    • Merge requests 125
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #1038
Closed
Open
Created Jul 29, 2019 by Dan Isla@danisla

Improve X11 capture with nvenc

When capturing from ximagesrc and encoding with NVENC, the RGB buffers from ximagesrc need to be converted to I420 before they can be used as a sink for the nvh264enc plugin. From what I can tell, there is no way to do this without the videoconvert plugin, which is quite CPU intensive when streaming at 1080p, 60fps or better.

It looks like the NVENC API supports ARGB and ABGR formats, is it possible to use those formats with ximagesrc and eliminate the need for videoconvert? Alternatively, is there any way to move the color-space conversion to the GPU?

NVIDIA also has a frame buffer capture SDK (NVFBC) which can capture and encode to H.264. This would be another way to free up the CPU and possibly improve capture performance. The capture SDK comes with an example C program, it would be great to see that functionality as a source plugin.

Edited Jul 29, 2019 by Dan Isla
Assignee
Assign to
Time tracking