Tools For Building Video Streaming Apps

Amara Graham - Dec 10 '19 - - Dev Community

Starting a new project or using a new technology often requires setting up your development workspace to be compatible with what you are trying to accomplish.

Building a web application? You'll need one of the many JS frameworks out there, Node, npm, and probably a couple other helper libraries and utilities. And you can't forget an IDE like VS Code!

But what happens when you want to do something with video streaming? Whether it's a desktop app, mobile app, web app, something embedded, or even something in between, you'll need to get your development workspace setup to test flows as you go. Video streaming workflows have so many pieces, you'll want to make sure you have the right tools to help you navigate your solution.

Ready for the most exciting part? Many tools are both free and open source.

ffmpeg

It's a beast of a tool and to be honest, I've really only used it for making screen captured videos into gifs (I can't believe I just typed that lol).

When I was working with audio and speech-to-text, I found myself occasionally needing to convert the audio container to a compatible file format. But like I mentioned above, most of the time I wanted to make an mov into a gif.

VLC

Not all video players are created equal, so be careful where you decide to test your stream.

For desktop, I recommend VLC. Audio, video, streaming locally for testing, anything.

If you are doing something in the browser, keep in mind that some players may work in some browsers and not others. Some streams may work in some browsers or players and not others, or strange and unexpected behavior may occur.

Mobile is another issue. Some streams may behave differently in native and non-native players on mobile.

This is where I say VLC is great for testing, but be sure to test where and how you want your end users to consume your stream. Choose a player and platform that work for your workflow.

OBS

OBS is an incredible tool for streaming, and the route I recommend for folks getting started and wanting to stream their webcam or desktop.

Using a custom service, you can supply your server URL and stream key with your authentication and connect to Wowza Streaming Engine without leaving your network.

Or if that's not your jam, choose from a number of different services in the dropdown like Twitch or YouTube, supply what they ask for, and you are one putting click from starting your stream.

Wireshark or tcpdump (Linux)

Like I previously mentioned, and keep harping on, there are a lot of pieces when building a streaming video application and some of that gets more complicated when you want to do it live.

You may need to inspect packets or make sure things are moving across the network. Don't let this be intimidating or lead you into thinking you need to be a network engineer to get a working streaming video solution. You probably don't need to be a Wireshark or tcpdump master, but having the ability to take a peek might save you some time while you troubleshoot.

So I guess you could say this one is optional, but when you need it, its awesome.


Did I miss your favorite one? Do you have an alternative to any I've suggested? Let me know below!

And as always, if you are building something that incorporates streaming video, live or on demand, I'd love to hear about it whether you use Wowza or not.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .