Кодирование аудио-файлов в Unix/Linux


== Форматы файлов ==

Рассмотрим аудио-файлы в следующих форматах .wav, .mp3, .wma, .flac, .ape, .aif
Процедуры по кодированию треков в данные форматы представлены ниже.

== Аудио ==

=== Кодирование WAV, MP3 в MP3 ===

lame --cbr -S -b bitrate --tt "title" --ta "artist" --tl "album" --tc "comment" -ty year -c --ta "copyright" infile outfile

* bitrate - это значение 128,192,256,320, обязательно не выше, чем в исходном mp3
* infile - это файл .wav или .mp3
* outfile - это файл .mp3

Если хочетс максимально хорошего качества mp3, то лучше делать его из wav таким образом:

lame --cbr -q 0 -b 320 infile outfile


=== Кодирование WMA в MP3 ===

mplayer --really-quiet -vo null -vc dummy -af resample=44100 -ao pcm:waveheader file.wma && \
lame --cbr -S -b bitrate --tt "title" --ta "artist" --tl "album" --tc "comment" -ty year -c --ta "copyright" \
audiodump.wav file.mp3 && rm audiodump.wav

* bitrate - это значение 128,192,256,320, обязательно не выше, чем в исходном wma


=== Кодирование WAV, MP3, WMA в WMA ===

ffmpeg -i <infile>.wav  -author "<Artist Name>" -track <#> -album "<Album title>" \
-title "<Song title>" -copyright "Stereokiller" -acodec wmav2 -ab 192 <outfile>.wma

В качестве входного файла в данном случае могут быть использованы .wav, .mp3, .wma


=== Кодирование WAV в FLAC ===

shnconv -o flac *.wav


=== Кодирование FLAC в WAV ===

flac --decode *.flac


=== Создание сампла для MP3, WAV, WMA ===

Я делаю это с помощью такого скрипта (на входе - имя fulltime трека):

#!/bin/sh                                                                                                                                      
                                                                                                                                               
mplayer='/usr/local/bin/mplayer -really-quiet -ao null -vo null -vc null -ss 0 -endpos 30 -ao pcm:waveheader'                                  
                                                                                                                                               
f=$@                                                                                                                                           
                                                                                                                                               
if [ ! -e "$f.smp.mp3" ]                                                                                                                       
then                                                                                                                                           
    echo "$f"                                                                                                                                  
    $mplayer "$f" && $lame --quiet --cbr -b 64 "audiodump.wav" -o "$f.smp.mp3" && rm "audiodump.wav"                                           
fi


=== Кодирование CUE+(FLAC|APE) в WAV ===

Иногда попадаются очень большие FLAC или APE файлы, в которых прошит весь саунд-диск без потери 
качества. В файле CUE содержится его разбиение по трекам. Этот файл перед началом кодирования 
желательно привести к необходимой кодировке с помощью iconv

shntool split -f file.cue -t "%n - %t" -i ape -o wav "file.ape"

В данном примере разбивается файл .ape  Для FLAC - все аналогично.
Кстати, для кодирования .ape - необходим кодер audio/mac


=== Кодирование AIF в WAV ===

Это достаточно просто делается с помощью lame:

find . -name "*.aif" -exec lame --decode "{}" "{}".wav \;