Online Marketing

Editing: Targeting Professional Post Production Use cases (GStreamer Conference 2019)

Basically, today I’m going to talk about article editing with the streamer and what is missing to be able to fulfill filmmaking in the filmmaking industry. So first I will just introduce quickly just from reading services. So basically it’s a high level API to do article editing with the streamer, so it provides a set of just a stream, a plug-in element to under non-lead edition.

So that’s the call of the discriminating services. It’s called enemy and it’s just elements that basically will plug and unplug effects and sources on the fly depending on the timing. So you have a timeline described and it just plays back a timeline. It provides some high-level notions, such as a timeline layers, which is often called tracks in the film industry, where it’s basically like the same kind of ideas layers in a photo editing software’s, basically, so that you composite the layers between each other and basically, I’m going to Talk about like integrating just from rating services with the existing tool that are used in the in the post-production industry.

So what I’ve been working on is integrating with open timeline area so a bit. What open terminal is it’s basically a project from Pixar that is used to convert from one editorial format to the other it could eat. It provides an API to go from one format, to an internal representation of the timeline and then allows you to convert it to some other timelines to some other formats. So it’s kind of the pondok of of article editing, civilization format and it also provides API, is to do manipulate the timeline so move the clips inside the timeline add effects and things like that, and then you can just like save it and use your tool to To playback, all-rounder rate, etc, etc.

So the idea is that this provides the this tool it’s in Python and it has been decoded in potty to C++ now, and it supports a lot of different formats such as Final Cut Pro EDL’s. The other premier, FCPX file and advanced, are showing format which is used by a vide, hello and yeah. So it supports like basically all the formats that the industry use, and so, if we integrate it with just reamer, we basically become like compatible with all those tools.

So that’s what’s interesting, so what we did is so the just relating services has its own sterilization format. It’s called x GS and we implement in an adapter, which is a little piece that converts from the open type Nanao internal representation to the other formats and around also. So now we can with open terminal you convert from XJS to to any format that is reported, and we can see here list of features that are supported by the different adapters.

So here in just wimmer, we basically have most of them for FX. For example, many like edge cases and for effects, for example, it’s still not clear. That’s why it’s planned in the auto format the so the internal representation is because it’s not totally defined, but we already have something and it’s working but like you cannot really convert from one to the other. But you still have the information that you have some effects.

Otherwise, we basically support everything that is actually really needed in the in the article editing industry so and all the format’s that are Arnold by open timeline area can be converted from one to the other. So it just like really really useful for us and then on top of that, we decided to have a proper integration of all that inside the district services. So we have a gist for model, which is basically an object that this realized and sterilize the the timelines and the projects from one format.

And here now we have a GS, OTO formatter that basically goes throughout you to go to go from the input format to X. Yes, so and then we just load the x GS file, which is much simpler. So there is some some conversion in between, but we know can support any format. Taking into account the matrices that I just showed from from supported from the industry used authoring format, then we decided to go one step further in the integration between jazz swimmer and the district services, so that we actually natively support all the formats sterilization format.

As part of the streamer, so no we implemented the GSD mixer that basically will get a stream with a serialized timeline of project from any format and play it back as if it was a media format. The media file. So here the the the so you have, basically, you have like perfect integration between all those format that I talked about, as if it was a native media may give a native. So on top of that we have the time firing functions.

That is the mechanism inside a streamer to detect what the the the data is. Basically and then it just like really simply like detects that it’s Sarah’s cellulites timeline, for example. It’s it’s in open timeline, IO format, internal representation format and it will just like use the GSD mixer when it will auto play. So I will make a quick demo about on that since so here I’m just using PTV, which is the hey, I’m using PTV yeah.

It’s a article, editing application that is based on on the discriminating services. So it’s basically a UI at top of just amazing services to make it simple, so I will just make a new project import a few clips. So it’s quite simple in terms of user interface, you just have like clip selection and then you just put the clips inside the timeline here. We’ll just put the clips inside the timeline. Can you see yes, okay, zoom inside the timeline and then you can? You can transition like very simply, and let’s just save it, I will save it in the let’s say: H, oh yeah, it exists, replace in the auto-fire description format and then also open terminal comes with little tools.

That’s the file edge estate so comes with tools to basically debug the the files to sell sterilize the D toriel format, so you can just inspect them and see how it looks like in the internal representation of a pentagon. I/O, you have all the information, it’s quite useful, to find out like precisely what what what do cats are, etc. So here I called open it here and you can just close and let’s just use the SD play to play that file.

Okay, so here is just using like normal just Rimmer player and it’s actually playing back the fight, the timeline that we just built inside PT so and so, basically now you have a way to simply play back any file. That is like a timeline inside any any. Let’s say UI: they could be so that versus new okay. Here we go what okay, so that allows you to basically have new clips that actually are timelines in in in the end, so you can have what we call nested timelines, which means like you, have timelines in silence inside timelines, which is very important.

For usual, article editing workflow has people with just like edit one sequence and on one part, and then you have other people editing another sequence, and then you will have like people just putting the sequence together to have the final cut. So here that allows you to have like multiple sub projects, where everyone feels like one part of a full movie, and then you have everything that is just composed together as a final scene.

So now we have basically the the background to easily do that. With with the infrastructure, we have images from editing services. So basically, what we do is we use a GS, UI clip and we just put like to your eye of the the the editorial file. So the sterilized timeline, basically and then you end up with sub projects and yeah you can have like externally used files inside gos show a clip or you can have all that serialized as one big x, GS file or audio file or whatever you want.

With this report we have so yes, that’s pretty pretty useful in many cases, and that was a feature that was really needed because that’s just how they work for article editing. So, what’s next, we have a few features that are missing in GS and it’s basically, the main one right now is a clip speed control. We implemented a few things inside the streamer. We basically have article rate that allows us to do speed rate modulation.

We have the same for audio, but we need to offer proper API. On top of that, it’s like really something important that we are going west. We are starting to work on that, and then we have the big problem that is basically linked to how we represent times in the streamer, which is basically all just o’clock club time based, which is just one int and usually in the in the industry. People use like frame count to represent times, or they basically use rational time, so I want to offer something.

On top of I mean I want to rework the GS API in a way that allows you to work with both and in a flexible way, and we we studied a bit. But we need to do more, like proper integration testing and to have like precisely the right frame at the right time. So in the streamer. We also have the notion of like native time type, which should be like frames, but it’s really not there and I don’t think it really matches what we want and how we want to represent times in indigestion reading services.

So, yes, those are the two items we are going to work on and many bug to fix and yeah. It’s working pretty well, I have to say, like PTV know, works in very, very decently, and – and we have quite a lot of regression – test – shoot a lot of validating unit testing and that will beat. Thank you any question. Okay, thanks!

Videos are truly an awesome way to get the point across. Any type of content from your business is important!


By Jimmy Dagger

Find out my interests on my awesome blog!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.