Project

mp4info

0.04
No commit activity in last 3 years
No release in over 3 years
Rubygem for getting and setting mp4 info
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

My Changes¶ ↑

This gem isn’t originally mine, but i’ve added things etc…

Bundler¶ ↑

The gem can now be used with bundler and by extension, Rails 3, just use…

gem “mp4info”, :git => “git://github.com/arbarlow/ruby-mp4info.git”, :require => “mp4info”

Introduction¶ ↑

MP4Info supports the reading of tags and file info from MP4 audio files. It is based on the Perl module MP4::Info (search.cpan.org/~jhar/MP4-Info/) Note: MP4Info does not currently support Unicode strings.

License¶ ↑

This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Usage¶ ↑

With mp4info.rb in your load path, do:

require 'mp4info'

Once the library is loaded, an MP4Info object is created by sending an IO object to MP4Info#new. MP4Info also provides the MP4Info#open method, which takes String containing a filename.

file = "my_favorite_song.mp4"
info = MP4Info.open(file)

io_stream = File.new("that_other_song.m4a")
other_info = MP4Info.new(io_stream)

Once an MP4Info object is succesfully created, a number of tags are avalible:

* ALB   - Album
* APID  - Apple Store ID
* ART   - Artist
* CMT   - Comment
* COVR  - Album art (typically jpeg data)
* CPIL  - Compilation (boolean)
* CPRT  - Copyright statement
* DAY   - Year
* DISK  - Disk number & total (Array of two integers)
* GNRE  - Genre
* GRP   - Grouping
* NAM   - Title
* RTNG  - Rating (integer)
* TMPO  - Tempo (integer)
* TOO   - Encoder
* TRKN  - Track number & total (Array of two integers)
* WRT   - Author or composer

The following extra information about the audio file is also provided:

* VERSION   - MPEG version (=4)
* LAYER     - Doesn't really mean antyhing, but here in case we need it
              for compatibility with an MP3 library...
* BITRATE   - Bitrate in kbps (average for VBR files)
              The formula used to generate this seems a little suspect.
* FREQUENCY - Frequency in kHz
* SIZE      - Bytes in audio stream

* SECS  - Total seconds, rounded to nearest second
* MM    - Minutes
* SS    - Leftover seconds
* MS    - Leftover milliseconds, rounded to nearest millisecond
* TIME  - Time in MM:SS, rounded to nearest second

* COPYRIGHT	- Non-nil if audio is copyrighted
* ENCRYPTED	- Non-nil if audio data is encrypted