Months ago we wrote about video converting with CarrierWave. Implementation with Voyeur gem is pretty outdated at the moment, so I though that I could write something more up to date. This time I have used streamio-ffmpeg. However, this may not work with the latest ffmpeg builds. ffmpeg itself is required and needs to be installed manually, for example with homebrew on OSX. I have used the following code with ffmpeg version 2.4.4.

Add to your gemfile:

gem 'streamio-ffmpeg'

Custom processor will look like this (lib/carrierwave_processing/):

and your CarrierWave uploader will be something like:

You also need an initializer that will load your custom processor (config/initializers/carrierwave_processors.rb)

If you also need to use different formats of uploaded file in views you need to add some code to uploader mounted in your model. In my case, I have post model.

And now you are ready to convert some media files ;)

This is first part of bigger series about CarrierWave and video conversion. Stay tuned for more!

Sample app, that illustrates this blog post can be found here: prograils/video-converter-test

Photo by: startupstockphotos.com