What is Parsec?
Parsec is a proprietary desktop capturing application primarily used for playing games, or working remotely through video streaming. Using Parsec, a user can stream video game footage or a desktop session through an internet connection, enabling ultra low-latency high performance remote access. The Parsec client is available on most modern operating systems.
Parsec also provides a paid "Parsec for Teams" and "Parsec for Enterprise" versions with additional features for artists and developers, such as additional administrative tools, better color accuracy and the ability to stream multiple screens at once. Additionally, Teams customers can leverage additional security features such as integration of a SAML 2.0 Identity Provider and robust audit logging. Enterprise customers can further leverage security and automation features such as the on-premises relay server and REST API.
This technical reference section is intended to provide a deeper look in to how Parsec works, and advanced deployment and configuration options.
We don't take shortcuts
Parsec's core technology suite, the Parsec SDK, is built in cross platform C. We take a strong stand against unnecessary bloat, complexity, and dependencies of dubious value. Even our host side WebRTC implementation (for our web client) was custom built without requiring Google's massive dependency tree.
We didn’t build on top of any wrappers — we wanted full hardware control and the ability to manipulate every element of the stream to reduce latency as much as possible. On our test setup on a LAN ethernet connection, Parsec adds only 7 milliseconds of latency to your game. Remember, your ping is important, so if you're far from the computer, there will be more lag.
BUD - Our high performance network protocol
We use our own peer-to-peer networking protocol called BUD; Better User Datagrams (naming is hard). BUD has been optimized for low-latency video delivery based on the data gathered over a three year period. With a 97% NAT traversal success rate and lightning fast adjustment to packet loss and congestion, BUD is the cornerstone of the Parsec SDK.
It’s not a clever name, but the protocol works. Providing reliable UDP video at the lowest latency possible while handling all sorts of messy networking situations. Built with an ultra-responsive dynamic bitrate adjustment that is constantly adjusting based on network conditions. It also supports the best in-class security available with DTLS 1.2 with AES128 or AES256 cipher enabled on every single packet sent over the network.
Hardware encoding and decoding plus frame time optimizations
We support the h.265 codec and low latency desktop capture, with a zero-copy GPU pipeline to the encoder. You can use whatever GPU you want — AMD gets the same love as Nvidia here. We use hardware decoding whenever possible on every platform we support, and we have low level frame timing and synchronization optimizations for a smooth 60 FPS stream.
The process generally looks like this:
- Capture raw desktop frames
- Encode the raw frames
- Send the encoded frames over the network
- Decode the frames
- Render the frames on the screen