Files
Zac BergquistandRyan Clark 02629106a4 Reintroduce tsh recordings export for RemoteFX (#63126)
The tsh recordings export command exports a Windows desktop session
recording to a video file that can be played outside Teleport. It
was built prior to our RemoteFX support, and to this day only works
on legacy PNG recordings.

This commit allows us to export RemoteFX recordings by leveraging the
Rust RDP decoder library in tsh. This will be the first time tsh links
to Rust libraries.

In addition to restoring the previous functionality, this adds two
new capabilities:

1. We now support recordings that change size. (The original
   implementation was completed prior to desktop sessions
   supporting resize)
2. We try to encode an MP4 video with ffmpeg (the system-installed
   version, not by linking ffmpeg code) if available, and fall
   back to the slower AVI encoder if ffmpeg is not available.
   (There's also a --encoder flag choosing one or the other, but
   most users shouldn't need it).

Closes #45388

Also take the opportunity to remove the scholls/progressbar dependency
and unify a few different progress bar implementations.

Co-authored-by: Ryan Clark <ryan.clark@goteleport.com>
2026-07-21 20:08:35 +00:00
..