This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Antonin Amand (author)
Thu Sep 24 01:38:41 -0700 2009
commit 4263ae9f2dd262cc234e908fd21cc26eb2da77e4
tree e796a5bdac1febd8e77b75683eff9d6e4ab38b8e
parent 66ee2465b6fc901886d070f727bcf356df888823
tree e796a5bdac1febd8e77b75683eff9d6e4ab38b8e
parent 66ee2465b6fc901886d070f727bcf356df888823
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Sep 24 01:37:21 -0700 2009 | |
| |
LICENSE | Sun Oct 12 09:48:13 -0700 2008 | |
| |
README.mdown | Mon Jun 01 01:21:27 -0700 2009 | |
| |
Rakefile | Mon Dec 01 12:40:58 -0800 2008 | |
| |
animated_gif_example.rb | Mon Dec 01 13:29:38 -0800 2008 | |
| |
ext/ | ||
| |
ffmpeg-ruby.gemspec | Sun Oct 12 09:48:13 -0700 2008 | |
| |
spec/ | Mon Dec 01 13:29:38 -0800 2008 |
README.mdown
ffmpeg-ruby
Summary
ffmpeg-ruby is a ruby C extension binding to ffmpeg/libav* library.
It's main purpose is to extract frame in order to make video thumbnails. It also give access to main video attributes (frame rate, bit rate, duration, codecs, ...)
So, it doesn't support encoding (at least for now).
Installation
Download latest sources of ffmpeg :
wget http://ffmpeg.mplayerhq.hu/ffmpeg-export-snapshot.tar.bz2
tar xjvf ffmpeg-export-snapshot.tar.bz2
cd ffmpeg-export-20*
Configure, optionally with some prefix :
./configure --prefix=/opt/ffmpeg --enable-pthreads --enable-shared --enable-gpl
make
sudo make install
You can now continue with ffmpeg-ruby.
git clone git://github.com/gwik/ffmpeg-ruby.git
cd ffmpeg-ruby
gem build ./ffmpeg-ruby.gemspec
sudo gem install ./ffmpeg-ruby-0.1.0.gem -- --with-ffmpeg-dir=/opt/ffmpeg
You can now test it :
irb
>> require 'rubygems'
=> false
>> require 'ffmpeg'
=> true
>> FFMPEG
=> FFMPEG
Tutorial
ffmpeg-ruby does not have real document YET (I promise it will change soom). You can take a look a specs for in depth usage.
Here is basic usage.
Video attributes
require 'rubygems'
require 'ffmpeg'
video = FFMPEG::InputFormat.new('alligator.mp4')
=> #<FFMPEG::InputFormat:0x5fa3c0>
video.public_methods - Object.public_instance_methods
=> ["bit_rate", "filename", "duration", "has_stream_with_codec_type?", "first_video_stream", "human_duration", "has_video?", "video_stream_count", "streams", "has_audio?", "first_audio_stream", "audio_stream_count"]
Streams
>> video.first_video_stream.public_methods - Object.public_instance_methods
=> ["position", "duration", "index", "codec", "decode_frame", "seek"]
Seeking in stream
video.first_video_stream.seek(10)
video.first_video_stream.position
=> 10.2333333333333
As you can see, seeking is not very precise.
Extracting frame
frame = video.first_video_stream.decode_frame
=> #<FFMPEG::Frame:0x5c9874>
"frame size #{frame.width}x#{frame.height}"
=> "frame size 240x176"
Animated GIF example with RMagick
See animated_gif_example.rb








