Конвертация аудио
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
Конвертация аудио
Итак. У меня есть 3 ГБ музыки, а также есть желание перегнать ее в OGG Vorbis. Найти бы программу, которая проделала бы все это быстро и в автоматическом режиме.
Кто чего посоветует?
Кто чего посоветует?
ИМХО = Имею Мнение, Хрен Оспоришь 
Телефон - 8-029-7796373. Ночью выключен.

Телефон - 8-029-7796373. Ночью выключен.
такой программы врядли есть (apt-cache search по крайней мере молчит, а на freshmet лазить некогда)
но ее достаточно просто написать самому
берется mpg321, oggenc, id3ed, sed, find и твой любимый bash
с помощью mpg321 перекодируется в wav, id3ed для извлечения тегов, oggenc для перегона wav в ogg с прописыванием тегов, sed +find+bash (или perl) для создания скрипта который это делает для всех файлов и конвертации инфо о тегах.
получается прикольный скрипт, который не стыдно показать родным )
но ее достаточно просто написать самому
берется mpg321, oggenc, id3ed, sed, find и твой любимый bash
с помощью mpg321 перекодируется в wav, id3ed для извлечения тегов, oggenc для перегона wav в ogg с прописыванием тегов, sed +find+bash (или perl) для создания скрипта который это делает для всех файлов и конвертации инфо о тегах.
получается прикольный скрипт, который не стыдно показать родным )
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
У меня есть такой скрипт на Perl, и работает он именно так, как ты описал
Но я еще не до конца понял, чего же он не пашет.. Сначала хотел perl-MP3-info - я ему дал, потом хочет еще какой-то модуль, которого у меня нет:-( Блин, неужели в 9-ти дисковом Мастере нет такой проги??? 


ИМХО = Имею Мнение, Хрен Оспоришь 
Телефон - 8-029-7796373. Ночью выключен.

Телефон - 8-029-7796373. Ночью выключен.
#!/bin/bash писал(а):У меня есть такой скрипт на Perl, и работает он именно так, как ты описалНо я еще не до конца понял, чего же он не пашет.. Сначала хотел perl-MP3-info - я ему дал, потом хочет еще какой-то модуль, которого у меня нет:-( Блин, неужели в 9-ти дисковом Мастере нет такой проги???
А какой-нибудь faq по перл ты почитать не пробывал? Там написано, что есть www.cpan.org и там есть всяческие модули в неограниченом количестве (ну очень много)
Опыт растет прямо пропорционально выведенному из строя оборудованию
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
Он же маленький, клади сюда, обсудим#!/bin/bash писал(а):Всем спасибо за советыВзял книжку по Perl и написал скриптик, который использует набор кодеков ffmpeg. Вот сижу, конвертирую
Размер проги - 533 байта, коу надо - вышлю вложением

Опыт растет прямо пропорционально выведенному из строя оборудованию
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
Программа пока очень сырая и я знаю, что ее можно сделать еще в 2 раза меньше
Но со своей функцией справляется. Правда, ID3-теги пока не пишет, но я нашел 2 консольных утилы: mp3info и vorbiscomment. Они позволяют делать то, что нужно.. Если планы не поменяются, напишу сегодня. А пока - предлагайте пути по улучшению
#!/usr/bin/perl
system(qq(dirs > currectdir));
open(OF, "currectdir");
$direct=<OF>;
$direct =~ s/[\r,\n]//g;
$direct =~ s/~/root/g;
$direct = '/' . $direct;
system(qq(rm -f currectdir));
opendir(MP3DIR, $direct);
@FILES=grep(/\.mp3$/i, readdir MP3DIR);
for ( $a=0; $a<($#FILES+1); $a=$a+1 )
{
$filename=$FILES[$a];
$filename =~ s/.mp3/./g;
$to=$direct . '/' . $filename . 'ogg';
$from=$direct . '/' . $filename . 'mp3';
system(qq(ffmpeg -i '$from' '$to' -ab 64 -hq));
# system(qq(rm -f '$from'));
}
closedir(MP3DIR);


#!/usr/bin/perl
system(qq(dirs > currectdir));
open(OF, "currectdir");
$direct=<OF>;
$direct =~ s/[\r,\n]//g;
$direct =~ s/~/root/g;
$direct = '/' . $direct;
system(qq(rm -f currectdir));
opendir(MP3DIR, $direct);
@FILES=grep(/\.mp3$/i, readdir MP3DIR);
for ( $a=0; $a<($#FILES+1); $a=$a+1 )
{
$filename=$FILES[$a];
$filename =~ s/.mp3/./g;
$to=$direct . '/' . $filename . 'ogg';
$from=$direct . '/' . $filename . 'mp3';
system(qq(ffmpeg -i '$from' '$to' -ab 64 -hq));
# system(qq(rm -f '$from'));
}
closedir(MP3DIR);
ИМХО = Имею Мнение, Хрен Оспоришь 
Телефон - 8-029-7796373. Ночью выключен.

Телефон - 8-029-7796373. Ночью выключен.
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
Вот усовершенствованный вариант программы (версия 0.02:)). Она уже умеет переносить ID3-теги из MP3 в OGG. Реализовано все стандартными средствами: ffmpeg, mp3info и vorbiscomment (из пакета vorbis-tools). Никаких дополнительных Perl-модулей не требуется. Кстати, спасибо Llama за совет - программу можно прервать по Ctrl+C
Вот исходник:
#!/usr/bin/perl
############################################
# Program ffmp32ogg #
# Version 0.02 #
# Author: #!/bin/bash #
# Program that converts all mp3-files in currect directory to OGG. #
# ffmp32ogg can save the ID3-tags too (Artist and Title yet) #
# Needs the following binaries: #
# ffmpeg (package: ffmpeg) #
# vorbiscomment (package: vorbis-tools) #
# mp3info (package: mp3info) #
# Special thanks to Linux.HiTECH.BY community for idea and support #
##############################################
system(qq(dirs > currectdir));
open(OF, "currectdir");
$direct=<OF>;
$direct =~ s/[\r,\n]//g;
$direct =~ s/~/root/g;
$direct = '/' . $direct;
system(qq(rm -f currectdir));
opendir(MP3DIR, $direct);
@FILES=grep(/\.mp3$/i, readdir MP3DIR);
for ( $k=0; $k<($#FILES+1); $k=$k+1 )
{
$filename=$FILES[$k];
$filename =~ s/.mp3/./g;
$to=$direct . '/' . $filename . 'ogg';
$from=$direct . '/' . $filename . 'mp3';
system(qq(ffmpeg -i '$from' '$to' -ab 64 -hq));
$artist=qx(mp3info '$from' -p %a);
$title=qx(mp3info '$from' -p %t);
if ($title != '')
{
system(qq(vorbiscomment -a '$to' -R -t "ARTIST=$artist" -t "TITLE=$title"));
}
# system(qq(rm -f '$from'));
}
closedir(MP3DIR);
Так, что еще с ней сделать? (мне кажется, что все это закончится графическим интерфейсом:)) Кстати, я решил, что эта программа станет моей курсовой работой по информатике (вместе с сайтом поддержки:)) Так что предлагайте новые функции и дополнения.

#!/usr/bin/perl
############################################
# Program ffmp32ogg #
# Version 0.02 #
# Author: #!/bin/bash #
# Program that converts all mp3-files in currect directory to OGG. #
# ffmp32ogg can save the ID3-tags too (Artist and Title yet) #
# Needs the following binaries: #
# ffmpeg (package: ffmpeg) #
# vorbiscomment (package: vorbis-tools) #
# mp3info (package: mp3info) #
# Special thanks to Linux.HiTECH.BY community for idea and support #
##############################################
system(qq(dirs > currectdir));
open(OF, "currectdir");
$direct=<OF>;
$direct =~ s/[\r,\n]//g;
$direct =~ s/~/root/g;
$direct = '/' . $direct;
system(qq(rm -f currectdir));
opendir(MP3DIR, $direct);
@FILES=grep(/\.mp3$/i, readdir MP3DIR);
for ( $k=0; $k<($#FILES+1); $k=$k+1 )
{
$filename=$FILES[$k];
$filename =~ s/.mp3/./g;
$to=$direct . '/' . $filename . 'ogg';
$from=$direct . '/' . $filename . 'mp3';
system(qq(ffmpeg -i '$from' '$to' -ab 64 -hq));
$artist=qx(mp3info '$from' -p %a);
$title=qx(mp3info '$from' -p %t);
if ($title != '')
{
system(qq(vorbiscomment -a '$to' -R -t "ARTIST=$artist" -t "TITLE=$title"));
}
# system(qq(rm -f '$from'));
}
closedir(MP3DIR);
Так, что еще с ней сделать? (мне кажется, что все это закончится графическим интерфейсом:)) Кстати, я решил, что эта программа станет моей курсовой работой по информатике (вместе с сайтом поддержки:)) Так что предлагайте новые функции и дополнения.
ИМХО = Имею Мнение, Хрен Оспоришь 
Телефон - 8-029-7796373. Ночью выключен.

Телефон - 8-029-7796373. Ночью выключен.
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация:
Если она не найдет ffmpeg, то сама завершится[uNIx]mend0za писал(а):из возможных улучшений - проверка на существование ffmpeg, vorbiscomment и mp3info с завершением программы, если они не существуют

Но проверку все равно вставлю, спасибо за идею.
ИМХО = Имею Мнение, Хрен Оспоришь 
Телефон - 8-029-7796373. Ночью выключен.

Телефон - 8-029-7796373. Ночью выключен.
- #!/bin/bash
- Неотъемлемая часть форума
- Сообщения: 331
- Зарегистрирован: 11 дек 2002, 00:35
- Откуда: /bsu/rfe
- Контактная информация: