mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-18 07:34:54 +00:00
screencastService: Add gstreamer pipeline for h264 encoding on hardware
Try h264 on intel and AMD hardware using VA-API, using vapostproc to do the color conversion using specialized hardware. We're not adding a vaapi pipeline using the color conversion GL shader here, as vapostproc color conversion should be better suited for anything needed by vaapi based encoders/decoders. A capsfilter is used to enforce the use of DMAbuf (memory:DMABuf) with the new explicit modifier API (format=DMA_DRM). Also, we're using the new va* gst elements instead of the vaapi* ones here, as the vaapi* elements are deprecated, while the va* elements are actively maintained.
This commit is contained in:
parent
c576f82bdf
commit
e56437cc41
1 changed files with 11 additions and 0 deletions
|
|
@ -31,6 +31,17 @@ const DEFAULT_DRAW_CURSOR = true;
|
|||
const PIPELINE_BLOCKLIST_FILENAME = 'gnome-shell-screencast-pipeline-blocklist';
|
||||
|
||||
const PIPELINES = [
|
||||
{
|
||||
id: 'hwenc-dmabuf-h264-vaapi',
|
||||
fileExtension: 'mp4',
|
||||
pipelineString:
|
||||
'capsfilter caps=video/x-raw(memory:DMABuf),format=DMA_DRM,max-framerate=%F/1 ! \
|
||||
vapostproc ! \
|
||||
vah264enc ! \
|
||||
queue ! \
|
||||
h264parse ! \
|
||||
mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise',
|
||||
},
|
||||
{
|
||||
id: 'swenc-dmabuf-h264-openh264',
|
||||
fileExtension: 'mp4',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue