Why Zencoder is ideal for a video web app
blog.takeoffvideo.com
blog.takeoffvideo.com
So I would say what they do better is remove the hassle of having to spend time and resources managing and running all of those services. Just like dropbox, and cloudkick, etc.
It's a shame you chose to ruin your perfectly good comment with such distasteful words. Please let's keep the discussion civil.
Because Zencoder is running a service, they can have lots of boxes going at the same time. You might want to encode 50 things at once which would have to be queued up if you were doing it on one box, but can run simultaneously on Zencoder using their many boxes.
Likewise, Zencoder can fire up high CPU boxes that will get your videos encoded faster. The faster they turn around videos, the more capacity they have. If you're low (or bursty) volume, you can't justify that cost and you go with a small instance that's slow and queue things up if there are multiple jobs at once.
Plus, Zencoder is probably knows ffmpeg and the like better than you do. It's their whole company. Unless the focus of your work is video encoding, the likelihood that you will have any reason to be as knowledgeable is low.
I'm not saying that Zencoder is right for everything. They have certain economies of scale since they're encoding video for many people that kick in which mean that you can have 20 boxes encoding things for you at the same time for a few hours without having to pay for them all the time or going through the hassle of creating 20 encoding boxes and then getting rid of them so that you can use that capacity for an hour or so. That said, if you have a slow, steady flow that isn't too concerned with time or you're popular enough that you've hit those economies of scale yourself, Zencoder might not be right for you.
Oh, plus you might not want to deal with ffmpeg and such. Some people would rather it be abstracted away a bit.
We're using Zencoder daily and ran into an issue where users uploaded WMVs and the output video and audio didn't sync. It's a little known Windows Media Video Screen codec. Zencoder fixed it for us and we're paying them $100/month. Personally, I think they got the raw end. :)
Transcoding, like cryptography, is best handled by those who know what they're doing. It's dark in there.
1. Even if we were just using ffmpeg + simple scripts, we think there is value to using a service instead of our customers running video encoding on their own. We offer easy integration, automatic scalability, a well-designed API, and customer support. So theoretically Amazon S3 is just a file server, but it's still worth using S3. In other words, even simple technology has some benefits when packaged as a service as opposed to managing the technology yourself.
2. Beyond that, we're much more than just ffmpeg. ffmpeg is awesome, and we use ffmpeg as maybe 25%-30% of the work in our encoding chain. But video technology is really messy. There are hundreds of edge cases and non-standard files/formats/settings. The best tools take you 95% of the way there, but the remaining 5% is exceptionally painful, and a few tools plus (simple) scripts don't get you to 99%, let alone 100%. That takes thousands of hours of work, and it really makes sense to let a service handle that, instead of thousands of companies doing that work themselves.
Does that make sense?
Unless you are heavily involved in video, Zencoder won't apply to you. But they are still worth knowing about and a great example of a cutting edge cloud platform.
My only experience with video encoding is place-shifting DVDs to my PSP. On my home box it's usually about a 1:1 ratio for this task. I'm guessing you've got a source with a really high bit-rate that's making the encoding take so long?
Whoa. I'm no video encoding expert, but I was able to find some pretty good settings using CRF of ffmpeg that encoded a video in near real-time. In fact you could even do live streaming off of it. CRF supposedly bloats the filesize, but I was able to get decent HD video at about 7-11mb/sec if I recall.
Takeoff is really well done. The UI is beautiful and really intuitive. Congrats on a great service!
For a good practical guide, I suggest reading this: http://www.amazon.com/H-264-MPEG-4-Video-Compression-Generat...
It'll give you an idea of where all the settings come from.
The Doom9 stuff seems to be more oriented toward ripping and encoding for personal use, not taking a source file and encoding several versions for streaming from a Wowza Media Server, Red5 server, or Flash Media Server...unless I am not looking in the appropriate place.
I haven't yet looked through the flowplayer forums. That seems like a good idea.
That book you linked to has a newer version, but it is over $100.
IF not CLI examples, would you have any recommended settings for encoding to stream for multiple devices and connection speeds (iDevices, Android phones, flash video)? What bitrates and resolutions from a 1280x720 60fps source file?
I think you will find preset in the ffmpeg source/ffpresets
Very important : once you get ffmpeg to work just the way you want, back up the source that you used to build your binary and backup all sources of libs . This is important as sometimes refreshing code from repositories breaks the features you depend on . And if you are extremely paranoid like me and your business had a critical dependency on video transcoding, create a Virtual box guest OS, build ffmpeg and tweek till it works and then save that image for emergencies. Its about a Days work in all.
I have a shell script that scans my "input folder"(an ftp dir) once it finds a file , it invokes ffmpeg process. On a quad core box, I max my cpu utilization at 8 ~10 concurrent instances of ffmpeg. Your mileage would depend on factors like bitrate etc.
By the way, this will give crappy audio quality due to ffmpeg's garbage aac encoder. What I did was shut off audio in ffmpeg (-an) then I used Nero AAC encoder to encode the audio. Then mp4box stitched them together.