Video: Video Engineering Toolbox: The Last Two Feet, Part 2
Learn more about video engineering at Streaming Media's next event.
Watch the complete video of this presentation from Streaming Media West, VES101: Tools & Techniques for Diagnosing & Resolving Problems in Large-Scale Events, in the Streaming Media Conference Video Portal.
Read the complete transcript of this clip:
David Hassoun: Here's a tool that we put together called MOE:Viewer. This is what we use for live events, and when it comes to monitoring out streams. The key thing that we wanted here is that we found so many times that we have this live event going on. We really need to pay attention to what's happening in the manifest. Is the manifest updating properly? Did we have a stall? As well as how is what's in the manifest relating to the content, and being able to test this stuff very quickly became just a bit of a pain in the butt.
RealEyes MOE:Viewer/Manifest Viewer
We can keep curling, and we can keep loading in the browser, but we wanted to have a tool that provided this stuff better, and correlated to visuals. So we made this tool called MOE:Viewer. This is something I'm gonna give you guys access to if you guys want to play with this. I'm gonna go ahead and show you it, though, right now.
MOE:Viewer, also called Manifest Viewer, you can save things too in here. So hit a little drop-down. If put in a stream that I want to be able to continually test, I can just put it in here and come back to it anytime I want. This is a VOD file. I want to show video. If I'm going to use XHR credentials. You can set a global token in here, if you have token access.
If you're doing live, you can do automatic polling, which will default to the segment size. You can show some metrics, show HOS logs. This tool actually works with DASH as well. Not quite as full-featured, but it does. Then I can load this up. So this is going to show me my master-level manifest and it's going to start doing playback. And we can see overall stats of what's kind of going on. It shows me which bitrate is currently playing. I can switch to a specific one. Currently it's on auto. But the key thing is, though, is on any of these, I can just go ahead and I can either control click or just click and it will open up that variant now over here that I can watch. And I can monitor.
In this case, it's a VOD, so it's not going to really show us a whole bunch extra, but with live that can be handy, because then we'll see updates and we can set up automatic polling and so forth. It even has a stall detector as well. So we ran into problems, like sometimes encoders weren't updating or it wasn't getting to Origin on time and we'd end up getting Manifest Not Updating. We needed to be able to identify that immediately and then be able to report that. So we put in this stall detector. You can turn that on and if it sees that it's not updating in the time period that you specified and it misses more than two refreshes, it blares a big old alarm at you. And then you can go and identify and do that. It'll monitor all your different renditions for that.
We automatically break out if you have multiple rendition sets. You can have A and B, you can test each one of those. So if you have different Origins set up. If I actually come back, I'm going to reload. I'm going to pull in a different stream. So this is actually used in another tool that we have. So we have a tool that allows us to re-broadcast a VOD as live. So it just takes the Manifest and starts incrementally adding those in at the same time as defined in the EXT tags and so forth. So this one should kick on a live stream for us of a rebroadcast of Sintel.
So if I go into one of the renditions here, one of the things it also does is it shows you which segment it's actually loading and which segment it's actually playing and you can click on these. So green means it loaded in fine. Now we show the polling. Yellow is actually what it's playing. I can seek back. I can click on any segment to go test that segment itself. We're able to get the HLS logs. You can actually specify which version of HLS/JS you want to use, if you want to test a specific version and so forth. And you can also turn on, like I said, there's the stall detector.
You can copy manifests, save manifests, all right from here. Stall detector indicates ... Right now it's all green. You can specify how much stall threshold you want and be able to go from there. It'll automatically indicate if you have any discontinuities or other stuff within your metric stats and you're able to go from there. You can open up multiple windows of all this as well. I just hit control, click and I can now have separate ones for different renditions if I want. I can monitor all those independently.
So this has been a fun tool. We've been working on this off and on, different versions of this for quite some time. But it's something that now we use almost daily for a lot of our kind of, the stream testing. We also use it a lot when we bring on new hires to give them some good visual training around how HLS works, how things kind of look, how those manifests actually work and what they actually do in the end.
RealEyes CEO David Hassoun discusses Beamr View, Telestream Switch and other tools you can use to test playback for your streaming content in this clip from his presentation at Video Engineering Summit at Streaming Media West 2018.
RealEyes CEO David Hassoun discusses Elecard Stream Analyzer, FFprobe, and other tools for deep content analysis in this clip from his presentation at Video Engineering Summit at Streaming Media West 2018.
RealEyes CEO David Hassoun discusses Charles, Wireshark, Apple TV Proxy, and other network diagnostic tools in this clip from his presentation at Video Engineering Summit at Streaming Media West 2018.