Vicente Louvet III created GUACAMOLE-2298:
---------------------------------------------
Summary: guacenc: add -c option to encode recordings as VP9/VP8
(WebM)
Key: GUACAMOLE-2298
URL: https://issues.apache.org/jira/browse/GUACAMOLE-2298
Project: Guacamole
Issue Type: Improvement
Components: guacenc
Reporter: Vicente Louvet III
Attachments: guacenc-vp9-webm.patch
Currently guacenc only produces MPEG-4 video (FILE.m4v). It would be useful to
also support a royalty-free, browser-native output format, so that recordings
can be played back directly in a browser and shared without codec-licensing
concerns. Encoding to VP9 (or VP8) in a WebM container covers this, and libvpx
is already available wherever guacenc's libavcodec is.
The attached patch adds an optional -c flag which selects the libavcodec
encoder by name. For example:
guacenc -c libvpx-vp9 recording.guac -> recording.guac.webm
Details:
- With no -c option, guacenc encodes mpeg4 to FILE.m4v exactly as before. The
default behavior is unchanged.
- The VP8 (libvpx) and VP9 (libvpx-vp9) encoders are written to a WebM (.webm)
container. The output container is derived from the codec so the encoded
stream always lands in a compatible container.
- A codec name that isn't available in the local libavcodec build logs a
warning and falls back to mpeg4, rather than aborting the run.
guacenc already passes the codec name straight through to libavcodec, so no
encoding logic changed beyond the container selection and the new option. The
diff is small and self-contained -- guacenc only, no libguac / protocol /
client changes. A CUnit test suite under src/guacenc/tests covers the
codec-to-container mapping, and the man page documents the option.
I'm happy to open a pull request against guacamole-server if this looks
reasonable.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)