GitHub user sreid8 opened a pull request:
https://github.com/apache/guacamole-server/pull/159
GUACAMOLE-465: beginning to support new codecs and containers
This patch adds a dependency to "libavformat", the ffmpeg library that
handles writing video and audio streams properly into video/audio containers.
The patch makes NO changes to the way that guacenc functions from the user
perspective.
This change is required to eventually support more codecs and containers.
Previously, guacenc wrote encoded video frames directly into an output file.
This works perfectly file for mpeg4 in an m4v container, but will not work for
most other combinations (like h.264 in mp4, for example). However, this patch
does not add any support for any new codecs or containers. After this patch,
guacenc will still _only_ support mpeg4 in m4v.
This is patch 1 of 3 that will be provided for GUACAMOLE-465. The code for
the other patches is written already on a branch that I've been maintaining,
but in the interest in getting the functionality merged, I'm breaking it into
multiple patches to make it easier to review.
**The current plans for the next patches are as follows:**
- Patch 2 will add the ability for the user to decide to specify input and
output files rather that using the current batch interface, but will still
provide the batch interface.
- Patch 3 will add h.264, VP8, and h.265 codecs in addition to the already
existing mpeg4 and will also add mp4 and webm container support in addition to
the already existing m4v support.
I welcome any suggestions for changes for this to be merged and will answer
any questions about decisions I made while writing the patch. This _will_
require changes to the Guacamole Manual, but I didn't see those documents in
the repo, so I haven't modified them myself. If those documents are open and
accept pull requests, I will gladly update them myself as part of this patch.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/sreid8/guacamole-server guacenc_libavformat
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/guacamole-server/pull/159.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #159
----
commit 35531c1e3d9bb8da15745834411292f0e2e3bf39
Author: Sean Reid <sean.reid8@...>
Date: 2018-03-10T15:57:32Z
GUACAMOLE-465: added dependency to libavformat as first step to supporting
other types of codecs and containers in guacenc. migrated existing
functionality to use the libavformat library for writing the files. there is
not differnce to the user with this patch, but it provides a good base to
finish this new feature from later
----
---