[
https://issues.apache.org/jira/browse/GUACAMOLE-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vicente Louvet III updated GUACAMOLE-2298:
------------------------------------------
Description:
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:
{color:#172b4d}guacenc -c libvpx-vp9 recording.guac -->
recording.guac.webm{color}
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.
was:
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.
> 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
> Priority: Minor
> 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:
> {color:#172b4d}guacenc -c libvpx-vp9 recording.guac -->
> recording.guac.webm{color}
> 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)