Hathor Logo

Week 3: Basic VLC Live Video Streaming Added

This entry is part 7 of 7 in the series The Streaming Chronicles

Here is the link to this week’s tag.

Abstract

After spending way too much time looking around, I have come to the conclusion that the only viable alternative for real-time streaming playback, at the programmer’s level, is VLCKit. It’s a monster, it doesn’t seem to play so well with others, and it’s really, really complex, but there doesn’t seem to be anything that even comes close; especially for mobile.

Video is hard. I really have to hand it to the VLC people. What they made, works.

Now, you can be forgiven for thinking that I said that I wasn’t going to use VCLKit.

That’s because it’s exactly what I said. We’re allowed to change our minds.

The main work ahead is “tuning.” This is a massive job, and people have made entire, lucrative careers out of the task. They don’t write software. They tune. They play with ffmpeg and VLCKit options and arguments until they have a performant video processing/conversion/streaming engine that delivers the requisite quality.

I’m going to be trying something similar, but nowhere near as well.

For Argument’s Sake

The biggest issue that I had, was finding a complete list of arguments for ffmpeg and VLCKit.

It looks like there isn’t a comprehensive published (on the Web) source for them, so what I did, was save the -h dumps from each of them. I will attach those dumps to this post. They are MASSIVE.

First Things First. Finish the Breadboard

I have completed the basics for having VLCKit included in the project. It’s still rather primitive, but it gives me what I need.

Video Window

The New Video Window

Streaming Server Window

Streaming Server Window

Streaming Server Window (Open)

Streaming Server Window (Open)

Viewing The Stream In the Browser

Browser View

Preferences Screen

The Regular Preferences Screen

The new video display window uses VLCKit to display the video in near-realtime, directly from the source. If you play it and the browser together (assuming they are started at the same time), then you would see the lag, caused by the HLS latency.

I’m now ready to start tuning, which will be a topic for the next week.

Attached, is a zip file, containing the help dumps from ffmpeg and VLCKit.