0.01
No commit activity in last 3 years
No release in over 3 years
FFMpeg Ruby Bridge. Call FFMpeg/LibAVCodec/LibAVFormat directly
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

Ruby FFMpeg Library¶ ↑

“ffmpeg-ruby” is a ruby gem library (work in progress) that provides bindings allowing you to access the ffmpeg under ruby. FFMpeg is a cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library.

This implementation is starting by doing the translation for some of the functions in libavcodec and libavformat to ruby.

FFMpeg is provided by ffmpeg.org/ under the LGPL license.

This bindings gem is graciously provided by www.channels.com under the LGPL license.

Installing¶ ↑

$ gem install ffmpeg-ruby

Installation troubleshooting¶ ↑

If you run into trouble, it could be the C bundle not building. This is known to happen on MacOS 64-bit or with the ffmpeg from macports. You basically need to run ruby extconf yourself then.

$ ruby extconf.rb

You may need to add --with on mac, to point it to macports’ /opt/local for the libraries.

Mac Notes¶ ↑

Because of the way the library gets built, it needs to match the architecture type of your ruby. You can force it to do this by specifying the -arch flag. For a 64-bit ruby on Snow Leopard:

$ sudo port install ffmpeg
(go have coffee)
$ sudo env ARCHFLAGS="-arch x86_64" gem install ffmpeg-ruby

If your machine is 32 bit, the ARCHFLAGS above should be ++ARCHFLAGS=“-arch i386”+

This will provide you with a bundle you can require.

Usage¶ ↑

See the code on test/ for usage. But basically it goes like this:

require 'ffmpeg-ruby'

# Get a list of the video codecs supported FFMpeg::AVCodec.supported_video_codecs

# Get a list of the audio codecs supported FFMpeg::AVCodec.supported_video_codecs

# Create new AVFormatContext f = FFMpeg::AVFormatContext.new(“/path/to/my/video.mov”)

f.codec_contexts.each{ |ctx| puts ctx.name # The name of the codec this file uses. }