Open Source at Grabyo
Open Source software plays a large part at Grabyo, and we use open-source libraries and projects across our entire engineering stack. To name a few examples, we make use of FFmpeg in our backend, the HTTP-streaming library in our frontend and use Terraform to manage nearly all of our infrastructure.
As much as we like using open-source software, we also like to give back to the communities that help power our business by regularly contributing updates to many such projects. Some of our more interesting contributions are described below:
Terraform and its Providers
AWS is our primary cloud provider, and we, therefore, use the Terraform AWS provider extensively to create the majority of our infrastructure. Over the years, we have raised many bug reports and feature requests and often attempt to fix any issues ourselves.
As an example, we were recently caught out trying to update the tags on an AWS Firehose delivery stream. A bug caused our Firehose destination to be updated, and the connection password was reset, causing a minor outage to some internal systems. After some brief discussions with project maintainers, we pushed a fix which was accepted and released in v4.28.0 for the benefit of the Terraform community.
It’s not just bugs that we like to squash, though! We also enjoy contributing new features, such as adding support for Assume Role blocks to the ElasticSearch provider. This feature was well received before being released in v1.5.0, and we’re pleased to see the community taking full advantage!
VideoContext is an NPM library developed by the BBC to compose and render videos directly in the browser. Behind the BBC, we are the second largest contributor to this project. We worked closely with the BBC to ship an array of powerful new features, including the Audio Node and the Media Node, as well as helped fix some bugs with effect rendering. Not only this, but we helped clean up a lot of documentation and collaborated on the project’s general maintenance to ensure it has a healthy future.
The very popular video recorder and streaming software OBS Studio is used by many streamers and content creators to broadcast to platforms such as Youtube or Twitch. When operating a multi-stream setup, such as an e-sports tournament, each capture can be slightly out-of-sync.
At Grabyo, we have Stream Sync to help our customers synchronise their streams, but this relies on the source content containing timestamps (such as MISB precision timestamps in H.264 encodings). Although there are several commercial products that support this functionality, OBS currently does not.
Our engineering team decided to raise a feature request to the OBS project and followed it up with a working implementation to support this feature.
We’re looking for talented engineers in all areas to join our team and help us to build the future of broadcast and media production.