Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

.flac to .ogg



To answer Eric's original question, flac2ogg is available. You need what it 
says it needs:

#! /usr/bin/perl

##########################################
# flac/shorten to ogg vorbis converter
# stuff needed to run: shntool, vorbis-tools, flac
# USE: "perl flac2ogg.pl"
###########################################
# copyright (c) 2004 stateq2
# flac2ogg is released under the GPL.
# http://www.gnu.org/copyleft/gpl.html
############################################
# version 0.5
###########################################
# to do:
# have vorbis files outputted in same dir style as originals
############################################
use File::Find;

print "enter the dir containing .shn/.flac files to be converted: ";
chop ($src_dir=<STDIN>);
print "\nenter the dir where you want the output(ogg's) to go: ";
chop ($out_dir=<STDIN>);
print "\nchoose a quality setting for the ogg vorbis files...\n";
print "(6 is a good choice for great quality and moderate filesize)\n\n";
print "0 ~= 64kbps | 5 ~= 160kbps | 10 ~= 400kbps\n";
print "choose(0-10): ";
chop ($ogg_qual=<STDIN>);
print "\n";

find(\&files, $src_dir);

sub files {

        $orig_file=$_;

        if (($orig_file !~ /\.flac$/i) && ($orig_file !~ /\.shn$/i)) {next};
        print "Checking file: $orig_file\n";

# if the file is .flac, convert it to .ogg
        if ($orig_file =~ /\.flac$/i) {
                $new_ogg_file=$orig_file;$new_ogg_file=~s/\.flac/\.ogg/;
                $flac_to_ogg=`oggenc -q$ogg_qual 
\"$File::Find::dir/$orig_file\" -o \"$out_dir/$new_ogg_file\"`;
                print "1. FLAC-->OGG VORBIS: $flac_to_ogg\n";
                $cmd=`$flac_to_ogg`;
                print "\n\n";
        }

# else, if the file is .shn, conver it to .wav, convert .wav to .ogg, then 
delete wav
        elsif ($orig_file =~ /\.shn$/i) {
                $new_wav_file=$orig_file;$new_wav_file=~s/\.shn/\.wav/;
                $convert_to_wav=`find \"$File::Find::dir\" -iname 
\"$orig_file\" | shntool conv -o wav -d \"$out_dir\"`;
                print "1. SHN-->WAV: $convert_to_wav\n";
                $cmd=`$convert_to_wav`;
                if ($new_wav_file !~ /\.wav$/i) {next};
                $new_ogg_file=$new_wav_file;$new_ogg_file=~s/\.wav/\.ogg/;
                $wav_to_ogg="oggenc -q$ogg_qual \"$out_dir/$new_wav_file\"";
                $remove_wav="rm -rf \"$out_dir/$new_wav_file\"";
                print "2. WAV-->OGG VORBIS: $wav_to_ogg\n";
                $cmd=`$wav_to_ogg`;
                print "DELETE WAV: $remove_wav\n";
                $cmd=`$remove_wav`;
                print "\n\n";
        }
}

print "flac2ogg is done\n"




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org