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.
The New Video Window |
||
Streaming Server Window |
Streaming Server Window (Open) |
Browser View |
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.