From: McMCC <http://mcmcc.bat.ru>
Date: Mon, 20 Dec 2004 18:21:07 +0000 (UTC)
Subject: Преобразование WMA в MP3 или OGG
Оригинал: http://mcmcc.bat.ru/wma2mp3.html
Перегоняем WMA в MP3 или OGG.
Набралось тут у меня всяких новинок в формате WMA, но мой
автомобильный плеер работает только с форматом MP3, подарок понимаете
ли, если бы я сам выбирал то взял бы еще с поддержкой WMA, но как
говориться - даренному коню в зубы не смотрят... Так вот, захотелось
мне всю коллекцию WMA перегнать в MP3, я это раньше делал с помощью
ffmpeg, получалось отлично, но только вот тэги приходилось вручную
прописывать, тем более тегы WMA практически никто из существующих под
линукс приложений, кроме самого ffmpeg, читать не умеет.
Сейчас появилось немного свободного времени и я сделал патч для ffmpeg,
который делает копирование тегов из одного формата в другой и делает
конвертацию в различных кодировках, unicode, utf-8, cp1251 и т.д. Для
автоматизации процесса перегона использовать можно что угодно, любой
скрипт, потому как ffmpeg не умеет делать этого. Что нового из ключей
появилось:
-copytag - Указывает ffmpeg'у, что нужно считать тег из входного файла
и перенести его в выходной
-fcode - Из какой кодировки
-tcode - В какую
Почему указано из KOI8-R, потому как патч берет информацию из WMA
файла в юникоде и конвертит в кодировку установленной в вашей локали,
т.е. у меня koi8-r, у вас может быть utf-8 или еще какая либо другая,
поэтому -fcode должен быть таким, какая локаль установлена у вас. Но
это работает только с теми форматами которые пишут информацию в
юникоде, т.е. ogg тоже попадают под такое правило:
Input #0, asf, from 'test.wma':
Duration: 00:02:36.9, bitrate: 46 kb/s
Stream #0.0: Audio: wmav2, 44100 Hz, stereo, 45 kb/s
Title: Холодное пиво
Author: Ленинград
Album: Мой друг музыкант
Year: 2002
Copyright: Самый Неофициальный Сайт Группы Ленинград и Сергея Шнурова
Comments: Только для ознакомления!
Output #0, mp3, to 'test.mp3':
Stream #0.0: Audio: mp3, 44100 Hz, stereo, 192 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 2188kB time=93.4 bitrate= 192.0kbits/s
Теперь как это выглядит в mpg123
Title : hOLODNOE PIWO Artist: lENINGRAD
Album : mOJ DRUG MUZYKANT Year : 2002
Comment: tOLXKO DLQ OZNAKOMLENIQ! Genre : Blues
MPEG 1.0, Layer: III, Freq: 44100, mode: Joint-Stereo, modext: 2, BPF: 626
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0.
Bitrate: 192 Kbits/s, Extension value: 0
Audio: 1:1 conversion, rate: 44100, encoding: signed 16 bit, channels: 2
Понятно, что не очень красиво, однако моему плееру всеравно, он все
теги показывает в верхнем регистре...
Пропатченный ffmpeg можно взять тут:
http://mcmcc.bat.ru/myprogs/ffmpeg-0.4.8cvs-060204.tar.bz2
Если интересны изменения которые я делал то можете взять патч:
http://mcmcc.bat.ru/mypatches/ffmpeg_tag_mc1.patch
И мой маленький скриптик на perl'е, который перегоняет WMA в MP3 с
битрейтом 160 kbps сохраняя теги:
http://mcmcc.bat.ru/mypatches/wma2mp3.pl
P.S. Набирайте ключи для ffmpeg в том порядке, как я указывал в
примерах!!! Помимо добавления работы с тегами мне пришлось еще править
правильность считывания этих тегов из ogg и wma, плюс добавлена
возможность указывать информацию для тегов в ffmpeg, она была раньше,
но сильно урезанная,полный список ключей вы получите после запуска
ffmpeg'а. На тему показа информации доработан и ffplay, все ключи тоже
можно посмотреть после его запуска. Собирать следует с LAME для работы
с MP3, внутренний кодек в ffmpeg не очень, скачать можно с моего сайта
на страничке http://mcmcc.bat.ru/fedora