воскресенье, 29 августа 2010 г.

Кодирование в Ogg в Linux

В Линукс есть замечательная консольная программа oggenc. Для кодирования *.flac или других файлов в Ogg/Vorbis используем команду:

oggenc -b 400 -o output.ogg input.flac

Где 400 - битрейт в кб/с. Можно не указывать имя файла на выходе. В таком случае в качестве него будет использовано имя входящего файла с изменённым расширением. В таком случае так же можно указать много входных файлов через пробел. Можно указать по маске, например так:

oggenc -b 400 *.flac

Или даже указать просто имя каталога с входными файлами. Кодировщик автоматически переносит входные тэги в выходной файл. Одна беда - он не может декодировать почему-то mp3... Да и толку от конвертации mp3 в ogg обычно маловато))).

Могу предложить готовый скрипт для Наутилуса. В качестве входного объекта принимает каталог, либо некоторое количество выделенных файлов. В итоге результат помещает во вложенный каталог "ogg" . Если таковой уже имеется, то вместо этого помещает результат в каталог с именем в виде текущей даты и времени, например "2010-08-29 20.16.53".

#!/bin/bash
BITRATE='400';
if [ -d "$*" ]
then
oggenc -b $BITRATE "$*"/*;
cd "$*";
if [ ! -e "ogg" ]
then
directoryname='ogg'
else
directoryname=`date +%Y-%m-%d\ %H.%M.%S`;
fi
mkdir "$directoryname";
mv ./*.ogg ./"$directoryname"/
else
if [ ! -e "ogg" ]
then
directoryname='ogg'
else
directoryname=`date +%Y-%m-%d\ %H.%M.%S`;
fi
mkdir "$directoryname";
cp "$*" ./"$directoryname"/;
oggenc -b $BITRATE ./"$directoryname"/*;
tmpoggdir="tmp`date +%Y-%m-%d\ %H-%M-%S`";
mkdir "$tmpoggdir";
mv ./"$directoryname"/*.ogg ./"$tmpoggdir"/;
rm -f ./"$directoryname"/*.*
mv ./"$tmpoggdir"/* ./"$directoryname"/
rm -rf ./"$tmpoggdir"/
fi
echo "Перекодировано в oggenc `date +%Y/%m/%d\ %H:%M:%S`" > ./"$directoryname"/any2ogg-128abr.log


Готовый можно скачать в архиве по прямой ссылке: http://wahnbild.narod.ru/scripts/any2ogg-400abr.tar.gz

Комментариев нет:

Отправить комментарий