mediaextract/README.md

125 lines
5.3 KiB
Markdown
Raw Normal View History

2012-12-28 01:00:35 +00:00
Audioextract
============
Extract audio files that are embedded within other files.
2012-12-28 17:23:27 +00:00
Setup
-----
2013-01-06 05:21:09 +00:00
make builddir
2012-12-28 17:23:27 +00:00
make
make install PREFIX=/usr
2013-01-06 05:21:09 +00:00
Cross compile for Windows (uses `i686-pc-mingw32-gcc`):
2013-01-03 06:18:44 +00:00
2013-01-06 05:21:09 +00:00
make TARGET=win32 builddir
2013-01-03 06:24:12 +00:00
make TARGET=win32
2013-01-03 06:18:44 +00:00
2013-01-06 05:21:09 +00:00
Or (uses `x86_64-w64-mingw32-gcc`):
2013-01-03 06:18:44 +00:00
2013-01-06 05:21:09 +00:00
make TARGET=win64 builddir
2013-01-03 06:24:12 +00:00
make TARGET=win64
2013-01-03 06:18:44 +00:00
**NOTE:** 32bit binaries can only process 2 GB of a file at once. The rest of
bigger files will be ignored. You need to run this program several times with
different `--offset` values to process such a file whole.
This also means that using a 32bit binary extracted files can never be larger
than 2 GB.
This is because `audioextract` uses `mmap` to read files, wich maps files to
2013-01-06 05:21:09 +00:00
memory. On 32bit platforms the address space of the main memory is simply not
big enough. 64bit binaries can read up to 8 EB (8 Exabytes) at once.
2013-01-03 06:18:44 +00:00
2012-12-28 01:00:35 +00:00
Usage
-----
audioextract [option...] <filename> [<filename> ...]
2012-12-28 01:00:35 +00:00
2012-12-28 03:47:37 +00:00
### Examples
2012-12-28 03:56:02 +00:00
Extract .wav, .aif and .ogg (might actually be .flac, .opus or .ogm) files from
the file `data.bin` and store them in the `~/Music` directory.
2012-12-28 03:47:37 +00:00
audioextract -f wave,ogg -o ~/Music data.bin
2012-12-31 20:02:57 +00:00
This will then write files like such into `~/Music`:
data.bin_00000000.ogg
data.bin_00FFB2E3.wav
data.bin_01F3CD45.aif
The hexadecimal number in the written file names give the offset where in the
data file the audio file was found.
2012-12-29 16:50:22 +00:00
Extract .mp3, .mp2 and .mp1 files (with or without ID3v2 tags). The `mpg123`
option yields a lot of false positives because there is no nice way to
unambigiously detect MPEG files. These false positives are however usually very
small, so using the `--min-size` one can hopefully extract only real MPEG files.
2012-12-28 03:56:02 +00:00
2012-12-29 16:50:22 +00:00
audioextract -f id3v2,mpg123 --min-size 100k -o ~/Music data.bin
2012-12-28 03:56:02 +00:00
2012-12-28 01:00:35 +00:00
### Options
-h, --help Print this help message.
-q, --quiet Do not print status messages.
-s, --simulate Don't write any output files.
-o, --output=DIR Directory where extracted files should be written. (default: ".")
-i, --offset=OFFSET Start processing at byte OFFSET. (default: 0)
-n, --length=LENGTH Only process LENGTH bytes.
(default and maximum: 8 EB)
-m, --min-size=SIZE Minumum size of extracted files (skip smaller). (default: 0)
-x, --max-size=SIZE Maximum size of extracted files (skip larger).
(default and maximum: 16 EB)
The last character of OFFSET, LENGTH and SIZE may be one of the
following:
2013-01-04 22:25:02 +00:00
B (or none) for Bytes
k for Kilobytes (units of 1024 Bytes)
M for Megabytes (units of 1024 Kilobytes)
G for Gigabytes (units of 1024 Megabytes)
T for Terabytes (units of 1024 Gigabytes)
2013-01-04 22:25:02 +00:00
P for Petabytes (units of 1024 Terabytes)
E for Exabyte (units of 1024 Petabytes)
The special value "max" selects the maximum alowed value.
2012-12-28 01:00:35 +00:00
-f, --formats=FORMATS Comma separated list of formats (file magics) to extract.
2012-12-31 20:02:57 +00:00
2012-12-28 01:00:35 +00:00
Supported formats:
all all supported formats
2013-01-01 05:41:01 +00:00
default the default set of formats (AIFF, ASF, BINK, ID3v2, IT,
2013-01-02 03:31:45 +00:00
MIDI, MP4, Ogg, RIFF, S3M, XM)
aiff big-endian (Apple) wave files
2012-12-31 20:02:57 +00:00
asf Advanced Systems Format files (also WMA and WMV)
2013-01-01 05:41:01 +00:00
bink BINK files
id3v2 MPEG layer 1/2/3 files with ID3v2 tags
2012-12-29 05:31:30 +00:00
it ImpulseTracker files
2012-12-28 17:23:27 +00:00
midi MIDI files
2013-01-03 19:34:11 +00:00
mod Noisetracker/Soundtracker/Protracker Module files
mpg123 MPEG layer 1/2/3 files (MP1, MP2, MP3)
2012-12-31 20:02:57 +00:00
mp4 MP4 files (M4A, M4V, 3GPP etc.)
2013-01-03 06:18:44 +00:00
ogg Ogg files (Vorbis, Opus, Theora, etc.)
riff Resource Interchange File Format files (ANI, AVI, MMM,
PAL, RDI, RMI, WAV)
2012-12-29 06:53:46 +00:00
s3m ScreamTracker III files
2013-01-02 03:31:45 +00:00
xm Extended Module files
tracker all tracker files (MOD, S3M, IT, XM)
2012-12-28 01:00:35 +00:00
2012-12-29 16:50:22 +00:00
WARNING: Because MP1/2/3 files do not have a nice file magic, using
the 'mpg123' format may cause *a lot* of false positives. Nowadays
2012-12-28 01:00:35 +00:00
MP3 files usually have an ID3v2 tag at the start, so using the
'id3v2' format is the better option anyway.
2012-12-29 06:53:46 +00:00
The detection accuracy of MOD files is not much better and thus
they are also per default disabled.
2012-12-29 06:53:46 +00:00
2012-12-29 16:50:22 +00:00
NOTE: When using only the 'mpg123' format but not 'id3v2' any ID3v2
2012-12-28 01:00:35 +00:00
tag will be stripped. ID3v1 tags will still be kept.
If '-' is written before a format name the format will be
removed from the set of formats to extract. E.g. extract
everything except tracker files:
2012-12-28 01:00:35 +00:00
audioextract --formats=all,-tracker data.bin