Thank you OK so it well I must be parity. I'm going to talk about that approach that we're taking a baby seat. Experiment and realize some of the ideas that Frank spoke nothing in his keynote yesterday to enable object based. Streaming of audiotape to the browser. You know no I don't think we need to get over how to place broke us again quite a few people who spoke about it in this context. In any context really it's allows the content of the program to change according to the requirements of each individual audience member and we all know now that and audiocassette is made up of audio and meditator So the key thing for us is how do we get all of those lovely audial objects to the listener. How do we render them and how do we deal with some of the limitations that we face. Limitations is maybe a negative way of saying it just the way things are in browsers and what browsers on state today. So. Here firstly and probably most importantly to allow the streaming of multiple O.D.O. channels which represent those objects to the browser. That's not so much of a problem if we're sending five channels of audio maybe twelve channels of audio with some browsers but if you want to send twenty photos Odio then how do we do that we need to think of a way of doing this. We'll see to make sure that if we're sending that many channels that we synchronizing all of those across streams and also the metadata associated with it is also synchronized. We're broke. We want to make sure we support prerecorded material and of course live media. As we've we've heard the conference so far we have personalization is a big thing we want to enable and we was unable to enable interaction for these are so actually they can the have some say and held the media's presented to them. And we also aim to support so plug in renderers. We want to be able to render the audio based on the capabilities of the user so they may have a five point one system they may have headphones they may just be listening in stereo they behave. You know. So. Each of the sections as we start with. And. We start with some origin media which in our case we use the in the old year definition model format which I'll talk about more in a minute. We segmented encode those files using a P.C. or you took it was a native C. plus plus toolkit. We bundle those into manifest into the impact desk standard streaming that can be delivered just over plain old H.T.T.P.. And then we get to the browser where we render this using all javascript library. So look at the origin to start with so the order definition model is a broker which has. More to any number of channels of audio. But also timestamps metadata stored to that X.M.L. in the header. This is very simplified in terms of the promises I'm interested at the moment but the idea definition model stores a lot of information about the structure of the audio and Hell of the objects relate to each other. Really aren't I'm dealing with basic as a math elevation distance again information but also flags that signal the interaction state of an object. An object can be interactive or it can be interactive and if it is interactive the interaction can be on the game or it can be on the position information. We also do there is also available a range parameter on the interaction which is quite important because if you're going to allow a user to interact with a piece of content and therefore take the change the mix of that content it's nice to know who if you are the engineer that makes that content the first place actually you can have some control to say Actually I never really want the user to be able to position this in certain locations of complete destroyed mics and make me look stupid so you can have a kind of range that gives a bit a bit of a sudden see check on what the user can actually do. Going through the the segmenting encoding approach that we take so for the message to extract the X.M.L. from the audio definition model so from the broadcast follow we convert it into an array of Jason objects then we say we write those objects to sequential files of a segment length So let's say for the sake the segment length is four seconds each segment of four seconds will contain the message data related to that four seconds of audio the message to Jason relates to. In the same way they were able to convert say for argument's sake a twenty two channel. So we'd separate into four five. Plus one two channel. I think is the remainder. We don't encode all those to a scene. Where we end up with a structure that looks something like this returns to Channel four we end up with five folders full of Odeo data in full second segment we end up with a message data folder full of data in full second segments. You probably call read up from there would look something. Containing none of. Second time stamp out in this in this case. Because if information also information about the about the object itself instead of getting a media. So once we have all that we bundled into an MPEG Daschle manifest Now this is a very tiny portion of the manifest but this represents the Jason feed so we can see that on the top segment we start segment number one we use the same time scale as the audience so it's a work helper so the client knows knows how long the media is and then we just have a substitution for segment numbers so we can we can to sequentially move through those. For the second one would represent one audio file of. Repeat for the many many channels already have. So the delivery is pretty straightforward because it's all H.T.T.P. gets a web server behind a constant delivery network for scale and then the client can request that manifest in turn that will pass the client on to the media because it can start to be delivered. So in the client we have a. Client which which we've developed which is a very scaled down in terms of features only has the features that we need and will only parse the manifest information that we need at this point. To Codes And Keys all of the audio data pass it to decode your data and schedule those different segments to play so if any for second section it will grab for you if chunks of audio buffer those. Key the metadata to be passed on to render. The render then based on user preference auto discovery or even maybe a default be selected so we have a view that render we have the bio render based on the. Other was presented last year we have a render just use the web. And we can just see. Steria render as well and also take in interactive interaction from the users. If that's flight in the in the in the metadata. That's on demand live which is something which so on demand we have running over showing in the in the demo later we tried to do this with said that the step to live is actually quite straightforward So the approach to live is pretty much the same in terms of the delivery in the Client Well it is the same in terms of the delivery in the current rendering. Obviously we have to increase latency is where as we're scheduling and encoding in real time for the strains. Metadata has to be inserted in real time so some work around there to look at offering tools and what the process is for a live production team to actually be offering that metadata. So summary Now we can stream existing idea of the browser and there's a demolition where you can you can check that out. We can overcome the channel limits so we can send in others or channel channels to the browser. We can signal interactive elements and services the content. We can drive multiple rendering and engines that can be switched on the per user preference. So just to summarize some of the use cases that actually we're looking at and this is designed to support of the neighbors to look into a bit more. Things such as sports and looking at Commentary versus crowd noise and process complex events such as the venue Explorer project which I presented last year and Frank mentioned yesterday where we have multiple events going in one venue and we need to be able to pound its windows and locate them in a certain point in the in the video feed. There's a few things around the accessibility so control of integration versus background noise. Also do something looking at the moment control of audio descript description. Being able to duck in and raise the level of audio description against the actual program level without having to generate separate broadcast assets for that. And also V.R. such a living surround Odio two three sixty video experiences along with methylated stating whether to speak as might be and where things are located. Thank you and the questions. That was super interesting and I'm I'm interested in how you feed the dash segments into the Web audio A.P.I. feeds through five media element no. No So that is one of the problems that we have. We could do it that way but then we'd be synchronizing a whole load of what do other months and throwing away so we actually generate buffer social age and schedule those so we decode the daily turn into into a buffer and then we schedule the playback of that buffer obviously we're scheduling a number of buffers to will play at the same time so you see you're able to convert the dash which is actually straightforward and people were just AC D.C. yet. Just. Math anything for excess ability where people don't have to do stuff in advance is generally good and means people actually do it so if you disable them or about you got these on your descriptions but you don't have to do anything special how do you extract that where does it come from OK So what do description is so for visually impaired so you've e-mailed her heard it you listen to a program and the program or you will duck and someone's a voice will will come on and say you know John has just left the building closing the door behind it but it's a description track now actually the user doesn't normally have to do anything with other than turn it on however certainly in our case that gets rendered in the broadcast chain as a separate order description enabled us or the house that has that media and so the idea behind this is we can cut out all of that workflow by just supplying the normal program with a normal program or D.O.B. that stereo if I put one. But also separate would be a description track along with the message data that says at X. seconds then audience Christian faith up face down and the polling information for the right things. Do you actually have some of these conference should scheduling programs to supervise your time to mitigate to guard your some of these problems because talk to them and how do you we so we can hear everything slightly in advance with a message for the metadata but then we operate a key basically poll the kind of the current playback time of the Dutch guy so. As long as the metadata I mean we're talking. Less than a second generally that the message is arrived before it's actually recall required and actually the reason we do that isn't just for the scheduling issues it's also because sometimes of some operations you may want that I dislike you know if you calculate calculating a pound or something you may want that information in the browser before the moment is actually meant to move so you don't get strange you know the strange effect of a voice suddenly jumping from one side to another because the metadata was a couple of the seconds late. In the kind of testing of the synchronized synchronization of the audio we haven't had any issues that what we do need to do is a bit further testing with higher temps with systems on the more load to actually really look at the how accurately on sets of the the buffers. But in the general in general listening tests at the moment we're not experiencing any issues so we can't really count on you doing our best to get a decent argument I remember hearing this through I don't see what the problem is. I think the presentation so I was wondering are on the client side if you have videos coated as well in your bathroom so how do you handle anything problems after demarking the dark string so in these cases these are already only these examples however we've got video a video example as well with three sixty video at the moment we're doing that with basically a process that looks at the playback times of both treats the audio is a must to track and does basically a very. Conservative frame dropping of video to keep the two in sync continuously. Not ideal of the moment I don't know of any other way to do it in the browser but it's certainly. Unless you have very bad network conditions it actually you know is pretty much on the disability or but does seem to be a continuous process of the femur seconds here and there so actually History says it will be more of a machine than if you can generate about problems yourself trying to correct overcrowding. Thank you just another quick one for me so you go to the having plans for landing to heights photo board and most of the experience that lights rendering to help with heart to heights yet so that we already support height so I mean in the in the bone in about an overall sense where we're rendering with height. But actually you know the the limitation is what is whichever undried side so we have the but render which obviously will support light as well thank you. Can answer more questions in the post target demo session I know Jason had something you wanted to say with First let's thank the speaker. At the.