Software

qcp, the QUIC copier

The QUIC Copier (qcp) is an experimental high-performance remote file copy utility for long-distance internet connections.

Source repository: https://github.com/crazyscot/qcp

Features

  •  🔧 Drop-in replacement for `scp`
  •  🛡️ Similar security to `scp`, using existing, well-known mechanisms
  •  🚀 Better throughput on congested networks

 📖 About qcp

qcp is a hybrid protocol combining ssh and QUIC.

We use ssh to establish a control channel to the target machine, then spin up the QUIC protocol to transfer data.

This has the following useful properties:

  • User authentication is handled entirely by ssh
  • Data is transmitted over UDP, avoiding known issues with TCP over "long, fat pipe" connections
  • Data in transit is protected by TLS using ephemeral keys
  • The security mechanisms all use existing, well-known cryptographic algorithms

For full documentation refer to qcp on docs.rs.

Motivation

I needed to copy multiple large (3+ GB) files from a server in Europe to my home in New Zealand.

I’ve got nothing against ssh or scp. They’re brilliant. I’ve been using them since the 1990s. However they run on top of TCP, which does not perform very well when the network is congested. With a fast fibre internet connection, a long round-trip time and noticeable packet loss, I was right in the sour spot. TCP did its thing and slowed down, but when the congestion cleared it was very slow to get back up to speed.

If you’ve ever been frustrated by download performance from distant websites, you might have been experiencing this same issue. Friends with satellite (pre-Starlink) internet connections seem to be particularly badly affected.

Results

Typical results (updated in July 2025) for a 1GB download from Europe to New Zealand. Both endpoints have nominal 1Gbit connectivity (server in a data centre, client on residential 1Gb fibre).

TimeThroughput
qcp (this tool)16s66.7MB/s
scp147s6.9MB/s

The Internet is a complex system of systems; your mileage may vary.

💻 Getting qcp

You can install it:

You will need to install qcp on both machines. Please refer to the README for more.

References

RFC9000 "QUIC: A UDP-Based Multiplexed and Secure Transport"

Permalink
Tags: tech  

Fencing scoreboard graphics

We recently created a graphics package for a fencing broadcast, which provides a read-out of the scoreboard to the Captivate (formerly Titler Live) software.

The package can be seen in action on the Commonwealth Junior & Cadet 2024 programmes.

The details read from the scoreboard cover the "hit" lamps, scores, clock (including fractional seconds in the last 10s), period, red/yellow cards, and the priority indicator. On top of that, the package provides a place to enter the fencer names and nationalities, and set colours for them.

This is all made possible by the scoreboard, a Favero FA-07, offering a data feed over an RS-422 interface.

We can build on this experience to create graphics packages for other scoreboards and for other titling packages. Most graphics packages offer an API that we can use.

Permalink
Tags: graphics   sports  

Controlling Lightroom with a Tangent Wave

Hardware control surfaces make your life easier - and faster! - when colour grading.

Speaking as photographers as well as videographers, wouldn't it be nice if we could use our Tangent Wave there on photographs too, without having to load them into Resolve?

Long story short, we did. We have created a plugin that lets you use the Tangent family of control surfaces (Wave, Ripple and Element) with Adobe Lightroom Classic. You wouldn't necessarily buy a Tangent just to use it with Lightroom - there are cheaper alternatives - but if you already had the Tangent, this will let you get more use out of it.

You can get it from tangent-lightroom on Github.

Permalink
Tags: colourist  

Broadcast graphics for CasparCG

We recently created a broadcast graphics package for the CasparCG playout engine. It features a number of graphical templates with sports in mind, and a custom control panel. It could be useful in many situations as a low cost option to create on-screen graphics in real time.

Sample/Promo video

Music credit: “There It Is" by Kevin MacLeod (incompetech.com). Licensed under Creative Commons: By Attribution 3.0 License. http://creativecommons.org/licenses/by/3.0/

Features

  • Generic lower thirds - one line, two lines, and extended two line banner
  • Score bug covers most sports
    • Operator-controlled team colours
    • Optional field for extra information (period number, stoppage, etc.)
    • Customised control panels for rugby (league and union) and basketball
    • Ability to generate a lower third from the current score data
  • Score bug "with history", for sports with two levels of scoring
    • Customised panel for lawn bowls
  • On-screen clock
    • Count-up and count-down modes
  • Highly customisable, can be extended to other sports

System requirements

For the server:

  • CasparCG Server 2.1.0beta2 or later (freely available)
  • Suitable hardware to run the server and output to your mixer (e.g. a suitably powerful Windows or Linux PC with Blackmagic Design DeckLink card)

For the operator console:

  • Python 3; wxPython 3.0 (both freely available)
  • IP connectivity to the CasparCG server. (Typically this runs on a computer in the production control room.)
  • We have tested on Windows and Linux. Mac has not been tested but is expected to work.

You can use CasparCG's own client with our templates if you like, but our client is designed specifically for the job.

Technical Notes

  • The operator console is written in Python. The templates are in HTML, CSS and JavaScript. As such most of the system is its own source code and you can modify it at will, even on your live system if you're feeling brave.
  • The countdown/countup clock template is a separate precompiled javascript package based on work by Blair McMillan. If you wish to modify it you will need to install node.js and gulp; we recommend you do this on some other machine than your live Caspar server. The source code for this template lives on GitHub.
  • The requirement for CasparCG server 2.1.0 is due to the HTML templates. If you have your own Flash templates running on server 2.0.x, you could modify our client to work with them.
  • If you want to design your own templates but use our panel, that's easy enough. You can use any template format that CasparCG supports (Flash, HTML, Photoshop).

Licensing and Availability

This package is currently in beta. Access is available free of charge, with the following provisos:

  1. It is the user's responsibility to confirm compatibility, suitability and stability in their intended mode of operation before deployment.
  2. No warranty is provided.
  3. Support and customisation services are available on a commercial basis.

You can find the client on its GitHub project page, or you might prefer to visit the releases page.

Gallery

See https://mediary.nz/software/casparcg-gallery/

Permalink
Tags: graphics   sports  

Contact Us

hi@mediary.nz
+64 22 090 8118
Facebook button

Recent Posts

Getting value from CI 1 year, 8 months ago
qcp, the QUIC copier 1 year, 9 months ago