From d4a26fbf4be668e8afa48e795c5a193c760ac6ab Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 30 Jan 2012 16:30:03 -0500 Subject: [PATCH] ShellRecorder: improve the default pipeline The default pipeline was fairly aggressive about quality, and could be too expensive for some computers. Decrease the quality setting for the vp8 codec from 10 to 8, and increase the speed setting from 2 to 6. (Basically, quality affects the visual fidelity of the end result, while speed affects how much CPU the encoder uses to get a high compression ratio at that quality level.) Remove videorate from the pipeline, since the GStreamer VP8 encoder can handle variable-framerate streams. This means that we won't spend CPU encoding duplicate frames added by videorate. https://bugzilla.gnome.org/show_bug.cgi?id=669066 --- data/org.gnome.shell.gschema.xml.in | 2 +- src/shell-recorder.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in index a6438f02d..325f4089a 100644 --- a/data/org.gnome.shell.gschema.xml.in +++ b/data/org.gnome.shell.gschema.xml.in @@ -127,7 +127,7 @@ take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently - 'videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux' + 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system. diff --git a/src/shell-recorder.c b/src/shell-recorder.c index a32ad863c..40df07c42 100644 --- a/src/shell-recorder.c +++ b/src/shell-recorder.c @@ -148,7 +148,7 @@ G_DEFINE_TYPE(ShellRecorder, shell_recorder, G_TYPE_OBJECT); * (Theora does have some support for frames at non-uniform times, but * things seem to break down if there are large gaps.) */ -#define DEFAULT_PIPELINE "videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux" +#define DEFAULT_PIPELINE "vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux" /* The default filename pattern. Example shell-20090311b-2.webm */ @@ -1623,7 +1623,7 @@ shell_recorder_set_filename (ShellRecorder *recorder, * might be used to send the output to an icecast server * via shout2send or similar. * - * The default value is 'videorate ! theoraenc ! oggmux' + * The default value is 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' */ void shell_recorder_set_pipeline (ShellRecorder *recorder,