mp4tools

Overview

mp4tools are a set of scripts to encode Audio and Video in Isomedia (aka MP4) format
mp4tools uses opensources programs as backends like mencoder, MP4Box, xvid, x264
and its quality is very good.
There are presets for most common devices like Sony PSP, Apple iPod, Nokia S60 phones,
so you haven't to go in the jungle of encoding options, firmware bugs, unsupported configurations
common in all embedded devices.
mp4tools hot functions are:

Quality

mp4tools quality is good since it uses x264 (the best h.264 encoder ever) or
xvid (the best mpeg4 encoder ever).
Here there are some video samples, so you can have a look before installing
It's the Ocean's 13 official trailer (resolutions are the ones before autocropping)

Note: you need Flash Player 9.0.60 or above to play the samples: Click here to download it from Adobe

And this is a song encoded with aacplusenc at a very low bitrate

Download

mp4tools consist of 3 archives which can be downloaded separately:

Install

Extract all the archives and run in each subdir
make install
Read the mp4tools README to know about dependencies you have to met

Ubuntu packages

There are Ubuntu packages for all the above tools, you just have to use this repository by
either editing /etc/apt/sources.list by hand or adding it to Synaptic or Adept

deb http://ppa.launchpad.net/teknoraver/ubuntu maverick main
deb-src http://ppa.launchpad.net/teknoraver/ubuntu maverick main


and then run:

apt-get install mp4tools

Usage

After installing you will have two type of scripts, some named mk* and other named dvd2*
For example, mkipod encodes a video file to the ipod format, while dvd2ipod rips a DVD into the same format
The included scripts are:

Script Description
mk3gp encodes a standard 3gp file
mks60 encodes an high quality 3gp file (may not play on older phones)
mkamr encodes an AMR file (ringtone)
mkmp4 encodes an highest quality H.264 Video file, for PC playback
mkipod encodes a movie for the Apple iPod
mkpsp encodes a movie for the Sony PSP
dvd23gp rips a DVD to a standard 3gp file
dvd2s60 rips a DVD to an high quality 3gp file
dvd2psp rips a DVD to a movie for the Sony PSP
dvd2ipod rips a DVD to a movie for the Apple iPod

Additionally, there are amrenc and aacplusenc, which respectively encodes to AMR and AAC+

nokiatagger

If you use mp4tools to encode songs to listen them in a Nokia phone
you will notice that you will not be able to tag your encoded files.
This because Nokia uses a non standard tag system.
Fortunately I made my own tool to tag them, so feel free to use it.
Download it: nokiatagger.c
and compile it in the usual way:
gcc nokiatagger.c -o nokiatagger

Windows binaries

Currently I have Windows binary only for the HE-AAC+ encoder,
Download it here: aacplusenc.exe

Mac OS X binaries

Currently I have Mac OS X binary only for the HE-AAC+ encoder,
Download it here: aacplusenc

Contact

You can reach me via:

Comments

nick:
email:
(optional)
Comment
 
[1] [2] [3] [4] [5] [6] [7] [8] [9]

john
2007-11-13 23:41:16
worked with a nokia 6230i
thanks
Dimitri
2007-11-14 22:34:46
Works for nokia 6630 too
Rohan Dhruva
2007-11-18 20:18:07
Works great with my Nokia 6233. Thanks for this wonderful software and scripts ! Keep up the great work..
roman
2007-11-26 00:03:29
just compiled, and successfully encoded a wav!
all went fine, thanks.
does it work only with 16bit wav?
i've also tried to encode a 32bit wav and this produced the file that is not audible...
teknoraver
2007-11-26 00:08:40
Never tried 32 bit, but it isn't supposed to work as the routine stores samples as 16 bit values
roman
2007-11-26 00:42:36
and one more question :)
do you happen to know any good aac+ stream specification?
i need to know if aac+ file has SBR and PS to correctly report the samplerate and number of channels to a streaming server for accurate info.. ADTS headers don't contain the information about SBR and PS so i end up getting 22050hz/1 channel for files that are in fact 44100hz/2 channels (aac+v2)..
teknoraver
2007-11-26 00:52:34
No there isn't.
SBR and PS part are encoded as ancillary data, so the only way to recon it is tryng to decode as AAC+ first,
then if it fails it's plain AAC
This is because usually AAC is wrapped in MP4.
Many muxers, most notably MP4Box, has a switch to mark the file as (HE-)AAC+

BTW, for technical questions contact me via mail
nix
2007-12-14 10:07:30
thanks for this wonderful software.. I hope this works better than faac encoder for HE-AAC. love ya.. nix.
psp
2007-12-23 16:11:09
dont works for psp :(
teknoraver
2007-12-23 17:08:56
you have to use latest firmware from Sony
Smarter
2007-12-24 19:02:46
What's the license of this project?
teknoraver
2007-12-25 02:55:33
mp4tools and nokiatagger are GPL
aacplusenc and amrenc are copyrighted by 3gpp
Alx
2007-12-27 14:25:21
Hi! how to that output file of 'aacplusenc' was in a raw aac format? what needs to be changed in the source code that was it?
Alx
2007-12-27 17:23:40
why compile 'aacplusenc' without fftw3 support? :(
Alx
2007-12-27 18:51:37
sorry, i realized! ;\
and 'aacplusenc' can read wav data from stdin?
teknoraver
2007-12-27 18:55:09
you can use stdin and stdout using - as filename
Alx
2007-12-28 12:19:15
Thanks!
...
I found that the old encoder (v0.2) encodes better than the current one. Why?
teknoraver
2007-12-28 17:55:09
you may be wrong, the encoding algorithm is still the same, just the IO routine and FFT are changed.
If you talk about mono encodings yes, they are broken
Alx
2007-12-28 19:19:13
I used stereo. I thought that in the m4a container, quality of sound a bit better. What is this ADTS format? there is a suggestion to make the optional argument #5 - 'nops' to be force disable ps. (may want) =)
teknoraver
2007-12-28 19:24:50
use bitrates >= 52kbit to don't use PS

Valid HTML   Created with /bin/cat