I have an assignment to convert a large set of videos into ogg, webm and mp4, for different resolutions plus mobile etc, I am considering running transcoding job queues using ffmpeg or use elastic transcoder. (Background info: the source files are already on S3 and the web application is quite integrated into AWS SDK, and files get added daily, real time conversion not required)
I know using EC2 and ffmpeg will involve some dev time and effort, as opposed to just using the transcorder API. But if there is good cost saving...
Therefore I have two questions
1) AWS say charge is roughly $.015/minute of video(SD). My question is, is each output file charged separately. Docs say they support up to 30 outputs for the same job. But it not clear whether it is per minute of the job or per minute of each output format ($0.45/minute of video for 30 output formats then) ?
2) Does any one have experience using EC2 and ffmpeg in this use case? Is this cheaper than transcorder??
Last time I developed something of this nature, I did not factor in the I/O costs for EC2 and I/O ended up costing more than instance itself. Are there any code optimizations that I can do, to make it cheaper? (apart from using spot instances, Cheaper Regions etc).
AWS Elastic Transcoding Service only supports MP4/H.264/AAC. It does not currently support WebM/VP8/Vorbis or Ogg/Theora/Vorbis (which are the other two container/video/audio combinations you're looking for).
As such, a custom ffmpeg installation is a requirement for the purpose of your assignment, but you can very quickly run astray of legal issues if you use the wrong combination of software libraries. It's a legal minefield of patent law issues.
Once you get past that, you need to figure out what you're looking for. Cheap & Slow vs. Fast & Expensive. Having built this very thing before, I would recommend nothing smaller than an EC2 XL instance. If you try to use a Micro or a Small, be prepared to spend hours and hours waiting around for the encoding to complete.
You'll also need to think about how to trigger the encodes on upload, if that's what you're going for. ETS doesn't do that — you have to trigger them manually.
Update: ElasticTranscoder now supports Webm VP8 & VP9, HLS, and a few other formats by default.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With