Every sports fan knows that when something incredible happens on the field/ice/court, we want to see the replay right now. But many of us don’t know the impressive efforts that live media teams undertake to deliver clips in real time to all of us on whatever viewing platform we might prefer. Today, Backblaze is excited to make the work of live media production (and the end results) a lot easier with our latest innovation.
Announcing Backblaze B2 Live Read
Backblaze B2 Live Read is a patent-pending service that gives media production teams working on live events the ability to access, edit, and transform media content while it is being uploaded into Backblaze B2 Cloud Storage. This means that teams can start working on content far faster than they could before, without having to drastically change their workflows and tools, massively speeding up their time to engagement and revenue.
This is a game changer for live media teams, who are passionate about bringing content to their audience as soon as possible. It means they don’t need to worry as screen resolutions continue to expand, ranging from 4K to 8K and beyond. It also reduces the need for having production teams on-site to minimize latency, which could be extremely costly depending on the venue.
Previously, producers had to wait hours or days before they could access uploaded data, or they had to rely on cost-prohibitive and complicated options that often required on-premises storage. That’s no longer necessary. This innovation will make it faster and less expensive to:
- Create near real-time highlight clips for news segments, in-app replays, and much more.
- Tap into talent where they are versus trying to find local talent to produce events.
- Promote content for on-demand sales within minutes of presentations at live events.
- Distribute teasers for buzz on social media before talent has even left the venue.
For our customers, turnaround time is essential, and Live Read promises to speed up workflows and operations for producers across the industry. We’re incredibly excited to offer this innovative feature to boost performance and accelerate our customers’ business engagements.”
Richard Andes, VP, Product Management, Telestream
Coming soon inside your favorite tools
We designed Live Read to be easily accessible directly via the Backblaze S3 Compatible API and/or seamlessly within the user interface of launch partners including Telestream, Glookast, and Mimir. These platforms, along with CineDeck, Alteon, Hedge, Hiscale, MoovIT, and many others to come, are enabling Live Read within their platforms soon.
If you want to use Live Read, you can join our private preview.
How does it work?
Previously, media teams were forced to either wait for uploads to complete or use on-premises storage. Now, Live Read uniquely supports accessing parts of each growing file or growing object as it is uploaded so there’s no need to wait for the full file upload to complete. And, when the full upload is complete, it’s accessible like any other file in a Backblaze B2 Cloud Storage Bucket, with no middleware or proprietary software needed.
Here’s a short video showing both how Live Read works on a conceptual level, as well as a live demo showing how one app can upload video data to Backblaze B2 using Live Read while a second app reads the uploaded video data:
For those of you who want to dig deeper into the code samples you saw in the video, here is some example code that uses the Amazon SDK for Python, Boto3, to start uploading data with Live Read. If you’re familiar with Amazon S3, you’ll recognize that this is a standard multipart upload apart from the add_custom_header handler function and the call to register it with Boto3’s event system:
def add_custom_header(params, **_kwargs): """ Add the Live Read custom headers to the outgoing request. See https://boto3.amazonaws.com/v1/documentation/api/latest/guide/events.html """ params['headers']['x-backblaze-live-read-enabled'] = 'true' client = boto3.client('s3') client.meta.events.register('before-call.s3.CreateMultipartUpload', add_custom_header) response = client.create_multipart_upload(Bucket='my-video-files', Key='liveread.mp4') upload_id = response['UploadId'] # Now upload data as usual with repeated calls to client.upload_part()
As it processes the call to create_multipart_upload()
, Boto3 calls the add_custom_header()
handler function, which adds a custom HTTP header, x-backblaze-live-read-enabled
, with the value true
, to the S3 API request. The custom HTTP header signals to Backblaze B2 that this is a Live Read upload. As with standard multipart uploads, the data is uploaded in parts between 5MB and 5GB in size. To facilitate reading data efficiently, all parts except the last one must have the same size.
Since this is a Live Read upload, as soon as a part is uploaded, it is accessible for downloading.
An app that downloads the file needs to send the same custom HTTP header when it retrieves data. For example:
def add_custom_header(params, **_kwargs): """ Add the Live Read custom headers to the outgoing request. See https://boto3.amazonaws.com/v1/documentation/api/latest/guide/events.html """ params['headers']['x-backblaze-live-read-enabled'] = 'true' client = boto3.client('s3') client.meta.events.register('before-call.s3.GetObject', add_custom_header) # Read the first 1 KiB of the file response = client.get_object( Bucket='my-video-files', Key='liveread.mp4', Range='bytes=0-1023' )
Note that you must supply either Range
or PartNumber
to specify a portion of the file when you download data using Live Read. If you request a range or part that does not exist, then Backblaze B2 responds with a 416 Range Not Satisfiable
error, just as you might expect. On receiving this error, an app reading the file might repeatedly retry the request, waiting for a short interval after each unsuccessful request.
The source code for the applications is available as open source at https://github.com/backblaze-b2-samples/live-read-demo/ and the technical documentation for Live Read can be found here.
How much does it cost?
Live Read upload capacity is offered in $15/TB increments—and the capacity is only consumed when an upload is marked for Live Read. Standard uploads are free, as usual. After uploading is complete, the data stored in Backblaze B2 is billed as normal. From a cost perspective, this represents significant savings versus the workflows that production teams must currently follow to achieve anything close to the functionality delivered by Live Read.
And it’s not just for live media
Beyond media, the Live Read API can support breakthroughs across development and IT workloads. For example, organizations maintaining large data logs or surveillance footage backups have often had to parse them into hundreds or thousands of small files each day in order to have quick access when needed—but with Live Read, they can now move to far more manageable single files per day or hour while preserving ability to access parts immediately after they are written.
What’s next
For those interested in Live Read, you can sign up for the private preview here. We’ll continue to report as we add more integrations and we’ll share stories as customers succeed with the new feature. Until then, feel free to ask any question you have in the comments below.
Want to see more?
Join Pat Patterson, Chief Technical Evangelist, and Elton Carneiro, Senior Director of Partnerships, on June 26, 2024 at 10:00 a.m. PT to learn more in real time. Can’t make it live? Sign up anyway and we’ll send a recording straight to your inbox.