phil@plus24.com
Dit document beschrijft de hardware, software en procedures benodigd om MP3 sound files te encoderen, afspelen en streamen onder Linux.
Het houdt in:
MP3's encoderen van een live of externe bron.
MP3's encoderen van audio cd's.
MP3's streamen over het netwerk.
MP3's beluisteren.
MP3's mixen
Deze HOWTO is auteerusrechtelijk beschermd. Copyright 2000 Phil Kerr.
Tenzij anders verklaard, berust het copyright van Linux Howto documenten bij de eigenlijke auteur. Linux Howto documenten mogen worden gereproduceerd en gedistributeerd in het geheel of gedeeltelijk, in elk medium fysiek of elektronisch zolang de copyright-vermelding op elke kopie blijft staan. Commercieële redistributie is toegestaan en wordt aangemoedigd; hoewel de auteur hier wel van op de hoogte gebracht wil worden.
Alle vertalingen, afgeleide werken of verzamelde werken waarbij een Linux Howto is betrokken moeten uitgebracht worden onder dit copyright. Dat houdt in dat je geen afgeleid werk van een Howto mag maken en daar enkele restricties op zetten. Uitzonderingen op deze regels kunnen gemaakt worden onder bepaalde voorwaarden; neem contact op met de Linux Howto co-ordinator op het adres hieronder gegeven.
In het kort, we moedigen verspreiding van deze informatie aan door zoveel mogelijk kanalen. Hoewel, we wel willen dat het copyright op elk document blijft, en we willen op de hoogte gebracht worden van elke herdistributie van de HOWTO's.
Als je vragen hebt, neem dan contact op met Tim Bynum, De Linux HOWTO co-ordinator, op linux-howto@metalab.unc.edu via email.
De meest recente officiële versie van dit document kan verkregen worden van het Linux Documentation Project http://http://www.linuxdoc.org/.
De homepage voor deze HOWTO is: http://www.mp3-howto.com
Deze HOWTO is vertaald in de volgende talen:
Onthoud dat de vertalingen van dit document verouderd kunnen zijn, het vertalen vergt tijd.
Koreaans
http://kldp.org/HOWTO/MP3-HOWTO Door Lee,So-min <animator@nownuri.net>
Frans
http://www.freenix.org/unix/linux/HOWTO/MP3-HOWTO.html Door Arnaud Gomes-do-Vale <arnaud@carrosse.frmug.org>
Hongaars
http://free.netlap.hu/howto/MP3-HOGYAN.html Door Andras Timar <atimar@itp.hu>
Italiaans
ftp://ftp.pluto.linux.it/pub/pluto/ildp/HOWTO/MP3-HOWTO Door Mariani Dario <darkpand@uni.net>
Spaans
http://www.insflug.org/documentos/MP3-Como Door Arielo larocka@yahoo.com
Japans
http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO.html By Saito Kan <can-s@geocities.co.jp>
Veel dank aan de vertalers hierboven. Als je deze HOWTO kunt vertalen, stuur de auteur dan een mailtje. Geef ook de URL waar de vertaling staat.
Bij het schrijven van deze HOWTO heb ik veel gehad aan de Sound-HOWTO door Jeff Tranter, en de Sound-Playing-HOWTO door Yoo C. Chung.
Ook dank aan de andere HOWTO auteurs waar ik het werk van gebruikt heb:
Linux System Administrators Guide door Lars Wirzenius.
Linux Network Administrators Guide door Olaf Kirch.
Multi Disk System Tuning HOWTO door Stein Gjoen.
En ook veel dank aan de mensen die mij feedback, commentaar of fout rapporten hebben gestuurd.
Speciale dank aan al mijn collega's van het WebSentric AG, speciaal Mark S. Fischer & Peter Conrad voor hun commentaar, feedback en hulp.
Gebruik de informatie in dit document op eigen risico.
Ik weiger elke soort van aansprakelijkheid voor dit document.
Gebruik de concepten, voorbeelden en andere inhoud in dit document op eigen risico
Alle copyrights zijn eigendom van hun eigenaren, niet als het speciaal is aangegeven
Het gebruik van een term in dit document moet niet gezien worden als een bestaand handels of service merk.
Namen van particuliere producten of merken moeten niet gezien worden als bekrachtiging.
Je wordt ten sterkste aangeraden om een backup te maken van je systeem voor de echte installatie op verschillende tijden.
Digitaal audio verwerken is een bron intensieve taak die zwaar steunt op de processor en I/O capaciteiten van je systeem. Ik raad een minimum van een Pentium Soort computer aan.
Als je gaat encoderen van een analoge audio bron via de line-in of microfoon, geeft een PCI geluidskaart het beste resultaat. De I/O uitvoering tussen een ISA en PCI kaart zijn aanmerkelijk, 132 MBytes/sec voor PCI (getal genomen uit de PCI-HOWTO). Natuurlijk, hoe beter de kwaliteit van de geluidskaart in termen van z'n signal-to-noise ratio, hoe beter het geencodeerde MP3tje. Ik gebruik de Soundblaster PCI128 en ben net overgestapt op een Soundblaster Live Value; beide kaarten geven goede audio performance, maar Live heeft aanmerkelijk betere S/N rations, goed genoeg voor semi-pro audio werk. Onthoudt: de oude date verwerkings grondstelling:- vuilnis in - vuilnis uit!
Creative heeft een Beta driver voor de Soundblaster Live! die hier gedownload kan worden van:
http://developer.soundblaster.com/linux/
Als je analoge audio opneemt naar je Hard disk, meestal direct to disk of d2d opnemen, is de performance van de disk en zijn interface kritiek. Als je een IDE gebaseerd systeem gebruikt, mode 4 of UDMA is dat goed genoeg. Als de overdrachts snelheid hoog genoeg is, gaat de overdracht zonder veel problemen.
De ideale oplossing zou een SCSI gebaseerd systeem zijn, omdat de drives en interface een veel snellere doorstroom hebben, van 5 mbits/sec voor SCSI 1 tot 80 mbits/sec voor utra/wide SCSI. Ide tot iets van 8.3 MB/s tot 33 MB/s voor Ultra-ATA maar deze snelheden zijn pieken, meestal zijn de transfers langzamer. Als je er een kan vinden of betalen, een AV SCSI drive, neem er dan een. AV drives hebben de lees/schrijf head geoptimaliseerd voor continu data overdracht; andere SCSI en IDE drives kunnen normaal geen continu datastroom aan als de schrijf hoofden warm worden!
Natuurlijk een drive met cache geeft nog konsekwenter resultaat dan een die dat niet heeft, cache werkt als een buffer als de kop oplicht of de stroom het even niet aan kan.
Als je drive niet van deze specificaties is, zal de opname lijden onder de uitval en lichte storingen, waar de drive gefaald heeft om het signaal op te nemen. Als je aan-uit evenementen opneemt, zoals live uitvoeringen, investeer dan in een goed SCSI systeem.
Een andere oorzaak van d2d uitval is een zwaar beladen systeem. Achtergrond taken kunnen tijdelijke storingen veroorzaken. Het is aan te raden zo min mogelijk achtergrond taken te draaien, vooral netwerk gebaseerde taken. Voor meer informatie over setup scripts en over het instellen van netwerk services zie de SAG en NAG gidsen.
Virtueel geheugen veroozaakt ook lichte storingen, dus draai met zoveel mogelijk intern geheugen, Ik raad op z'n minst 32 MB aan, maar nog meer is beter.
Voor de mensen die het meest uit hun systeem willen halen, kan de kernel optimaliseren geen kwaad.
Zolang de hardware specificatie hierboven je een bescheiden systeem geven om audio data te encoderen, weiger niet oudere te gebruiken.
Het kan een goede uitdaging voor sys-admin zijn om een laag gespecifeerd systeem een goed resultaat te geven, en het einde kan zijn een gelukkigere Linux box.
Een andere belangrijk onderwerp is de audio bekabeling. Goedkope, slechte kwaliteits kabels en verbinders resulteren in een slechte opname kwaliteit. Als je geluidskaart de optie biedt voor een hoofdtelefoon, soms aangegeven als RCA, connectors, gebruik ze dan. Goud geplateerde contacten helpen ook de audio kwaliteit behouden; houd ook audio kabels uit de buurt van data kabels: er is kans van storing.
Maar vergeet niet, een fortuin spenderen aan de beste audio bekabeling is verspilling als de rest van je systeem niet geoptimaliseerd is.
Voor het opnemen van Mp3's van CD-ROM, zal de tijd dat het duurt bepaald worden door type en snelheid om de ruwe data eraf te lezen. Een single speed drive is veel te traag zelfs voor de geduldigste.
Je cd-rom moet aangesloten zijn op je geluidskaart als je wilt horen wat je opneemt, door de interne connector of door de hoofdtelefoon aan te sluiten op de cd-rom. Je kan geen Mp3 luisteren door de hoofdtelefoon connector van de cd-rom!
Voor gedetailleerde instructies over het instellen van je geluidskaart, lees je de Sound-HOWTO.
Audio converteren naar MP3's is normaal een 2 stappen proces, eerst de audio opnemen als Wav en dan de Wav converteren naar een MP3. Sommige tools doen beiden in een keer voor je.
Het formaat waarvan je audio wilt encoderen, CD of direct audio, geeft aan met welke tool je Wav's moet maken.
Als je wilt encoderen van audio input heb je een tool nodig dat opneemt vanaf de geluidskaart input en die dit omzet in Wav formaat. Hieronder staan een aantal handige programmaatje's. (Het meeste commentaar is van de web site van het programma).
Om te grabben van analoog audio line-in: Wavrec
Waverec is gedistributeerd als deel van wavplay, welke te downloaden is van:-
ftp://sunsite.unc.edu/pub/Linux/apps/sound/players/
Om Cd audio data te converteren naar Wav, soms bekends als Cd ripping:
CDDA2WAV
http://metalab.unc.edu/pub/Linux/apps/sound/cdrom/
Cdparanoia
Cdparanoia is een Compact Disc Digital Audio extraction tool, vaak bekend op het net als een 'ripper'. De applicatie is gebouwd op de Paranoia bibliotheek, die het echte werk doet (de Paranoia bron code is opgenomen in de Cdparanoia source distributie). Net als de originele cdda2wav, leest Cdparanoia package audio van de Cd direct als data, zonder een analoge stap ertussen en schrijft de data naar een file of pipe in Wav, Aifc of raw 16 bit linear PCM. In tegenstelling to cdda2wav is het veel trager maar het geeft een beter resultaat zelfs als er krassen en moeilijke stukjes op de cd zitten.
http://www.xiph.org/paranoia/index.html
RipperX
RipperX is een GTK programma om Cd audio te rippen en mp3s te encoderen. Het heeft plug-ins voor Cdparanoia, BladeEnc, Lame MP3 encoder, XingMp3enc, lame en de Iso v2 encoder. Het heeft ook support voor Cddb en id3 tags.
http://www.digitallabyrinth.com/linux/ripperX/
Grip
Grip is een GTK gebaseerde CD spelen en CD-ripper/MP3-encoder. Het heeft de rip mogelijkheden van cdparanoia ingebouwd, maar het kan ook een externe ripper gebruiken (zoals cdda2wav). Het heeft ook een geautomatiseerd frontend voor MP3 encoders, het laat je een cd pakken om deze gelijk in MP3s om te zetten. Het CDDB protocol wordt ook ondersteund om track informatie van disc database server te ontvangen. Grip werk met DigitalDJ om een "gecomputeriseerde" versie van je muziek collectie aan te bieden.
Om Wav om te zetten in Mp3 heb je een encoder nodig:
Blade's MP3 Encoder
BladeEnc is een gratis Mp3 encoder. Het is gebaseerd op de zelfde ISO compressie routines als mpeg3enc, dus je kan ruwweg de zelfde, of betere kwaliteit verwachten. Het hoofd verschil is het optreden en de snelheid. BladeEnc heeft geen mooi, gebruikers vriendelijk interface net als mpegEnc, maar het is meer dan 3 keer sneller en het werkt met populaire front-end graphical user interfaces.
Lame
In de grote historie van Gnu namen, staat Lame voor Lame Ain't an Mp3 Encoder. Lame is geen mp3 encoder. Het is een Gpl'd patch van de dist10 ISO demonstratie source. Lame is totaal ongeschikt voor het maken van mp3 stream. Het is ongeschikt voor het compileren van zichzelf. Je moet de ISO source hebben om deze software te laten werken. De ISO demonstratie source is ook gratis verkrijgbaar, maar enkel commercieel gebruik heeft een licentie agreement nodig van Fhg (Fraunhofer Gesellschaft, Duitsland).
Gogo
Gogo is een zeer snelle MP3 encoder voor x86-CPU, die gebaseerd is op LAME versie 3.29beta en geoptimaliseerd door PEN@MarineCat, Keiichi SAKAI, URURI, kei en shigeo. (Je moet NASM downloaden om de source te compileren, die te vinden is op http://www.web-sites.co.uk/nasm/).
http://homepage1.nifty.com/herumi/gogo_e.html
Om MP3's af te spelen moet je natuurlijk een speler hebben:
Xmms (Formeel bekend als X11Amp)
Deze speler heeft de meeste eigenschappen die Winamp (Windows 95/98/NT) ook heeft, maar het heeft ook eigenschappen die alleen in Linux beschikbaar zijn.
Xaudio
Xaudio is een zeer snelle en zeer robuuste Multi-platform oplossing voor Digitaal Audio afspelen, vooral gericht op MPEG (MP1, MP2 en MP3) decoderen.
AlsaPlayer
Alsaplayer is een nieuw type van PCM speler. Het is zwaar multi-threaded en probeert de ALSA bibliotheek te gebruiken om een beetje te draaien. Het heeft zeer interessante eigenschappen uniek voor Linux/Unix spelers. Het doel is om een volledig pluggable framework voor playback te maken voor alle soorten media met de focus op PCM audio data. Full speed (pitch) control, positief *en* negatief! Eerst Linux- alleen GPL player dat doet het!! MP3's en CD's doen verschillende snelheden :)
http://www.alsa-project.org/~andy/
mpg123
Wat is mpg123? Het is een snelle, gratis en portable MPEG audio speler voor Unix. Het bied ondersteuning voor MPEG 1.0/2.0 layers 1, 2 en 3 (de beroemde "mp3" files) en het is getest op een paar zeer verschillende platformen, onder andere Linux, FreeBSD, NetBSD, SunOS, Solaris, IRIX, HP-UX en andere. Om Cd kwaliteit mp3's af te spelen, is een Pentium (of snelle 486), SPARCstation10, DEC Alpha of zo'n soort CPU nodig. Mono en/of gereduceerde kwaliteit afspelen (22 kHz of 11 kHz) is zelfs mogelijk op langzamere 486 CPUs.
http://dorifer.heim3.tu-clausthal.de/~olli/mpg123/
Freeamp
FreeAmp is een uitbreidbare, cross-platform audio speler. Het is een geoptimaliseerde versie van de GPLed Xing MPEG decoder welke het een van de snelste en beste geluids spelers verkrijgbaar maakt. FreeAmp heeft een aantal van de belangrijkste eigenschappen, gebruikers kommen in een makkelijke en vriendelijk interface.
Streaming servers stellen je in staat om MP3's te 'rond te sturen' over het netwerk, dit kan je intranet zijn of het internet.
Icecast
Welkom! Icecast is een Mpeg Layer III Audio broadcasting system het the linuxpower.org team. Icecast komt gebundeld met iceplay en icedir. iceplay is een playlist streamer die je in staat stelt geencodeerde files te zenden naar je icecast server.
Fluid
Fluid Streaming Server is een programma voor het streamen van media over netwerken, nu gebruikt het het mp3 formaat.
http://www.subside.com/fluid/ (oude site) http://fluid.sourceforge.net/ (nieuwe site)
LiveIce
LiveIce is de source client voor Icecast wat een mpeg stream encodeerd voor broadcast. Niet als clienten als Shout en IceDJ staat dit het uitzenden van live audio toe, anders dan voorgeencodeerde mp3's.
Live is gebundeld met Icecast, nieuwere versies samen met documentatie kan gevonden worden op de website hieronder:
http://star.arm.ac.uk/~spm/software/liveice.html
eMixer
eMixer is een makkelijk te gebruiken front-end voor mpg123 dat je in staat stelt twee mp3 streams samen te mixen. De mogelijk heid twee mp3's te mixen maakt eMixer een soort cross-fader, dit geeft de gebruiker DJ mogelijkheden voor de computer. eMixer is er goed voor in een "real time" party omgeving. eMixer is gebaseerd op de originele mix code waar liveice met werkt.
Volume normalisatie
Wavnorm
Als je live audio hebt ge-encodeerd, of je hebt van oudere cd's geencode, kun je variaties vinden in het algemene geluids niveau.
Om het geencode volume niveau van MP3's te veranderen moet je ze normaliseren met wavnorm.
http://www.zog.net.au/computers/wavnorm/
Sox is een erg handig sound conversie tooltje welke is aan tebevelen en je hebt het nodig als je wav norm wilt gebruiken.
ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/
Je hebt misschien ook een mixer programma nodig; Xmixer werk goed en is meegeleverd met de meeste distributies.
Deze sectie zal de basis instellingen van je linux systeem beschrijven die je nodig hebt om audio analoog of van Cd-rom op te nemen.
Ik baseer deze sectie op mijn Intel gebaseerd Linux systeem welke Redhat draait, maar het zou distributie neutraal moeten zijn. Ik heb kort op de Sparc platform versie gewerkt. (als je succes hebt gehad met andere hardware dan in deze HOWTO geef het dan door).
Natuurlijk een logische noodzakelijkheid is een werkende geluidskaart. Op dit punt is het een goed idee om de Linux Sound HOWTO, door Jeff Tranter te lezen. En daarna kun je de Linux Sound Playing HOWTO, door Yoo C. Chung lezen. Beide van de hierboven vermelde howto's vertellen de details van het aan de praat kijgen van een sound systeem onder Linux veel beter dan ik dat kan doen.
Stel eerst je audio in. Er zijn heel veel wegen om je audio te routeren voordat het in je Linux box komt, enkele algemene zijn:
Line out naar geluidskaart Line in. De meeste audio apparaten hebben een Line out. Line level is een standaard die aan geeft welke voltage het audio apparaat zend. Als ik me goed herinner is dat 500mV voor huishoudelijke en Semi-Pro apparaten, en 750mV voor Pro audio apparaten. Ik denk dat de standaard voor de meeste geluids kaarten op 500mV staat, maar sommige van de nieuwere Pro audio kan op de hogere standaard staan. Het zou niet veel verschil moeten maken, tenzij je op de hogere kanalen gaat openen.
De line level output wordt normaal gebruikt om HIFI uitrusting aan te sluiten op een amplifier, zodat dingen als een cassettedeck, Radio tuner, CD speler, Dat machines en Mini-Disc spelers zonder problemen kunnen worden aangesloten. Draai-tafels kunnen een groter probleem zijn, zie hieronder voor meer informatie.
Je kan ook audio van Video's opnemen. De meeste Video's hebben een Line out voor geluid, of je kan een line out hebben voor een Scart kabel als je video er een heeft.
Amplifier Tape out naar geluidskaart Line in, geluidskaart Line out naar Amplifier Tape in. Deze configuratie vervangt essentieel het traditionele cassettedeck verbonden aan je HIFI amplifier met je Linux systeem. De geluidskaart Line out naar de Tape in staat het nagaan van het opneem niveau toe.
Microfoon naar geluidskaart Microfoon in. De voltages gegenereerd door microfoons is veel kleiner dan de voltages gebruikt bij een Line level device. Als je een Microfoon in je Geluidskaart Line in plugt, heb je kans dat je helemaal niets opneemt.
WAARSCHUWING: een line device in je geluidskaart microfoon in pluggen kan schade aan je geluidskaart veroorzaken!!
Draaitafel in microfoon in.
Veel dank aan Mark Tranchant voor het volgende.
De ruwe uitvoer van een record deck cartridge is op een erg laag niveau. Hoewel, je het niet direct in je microfoon in kunt pluggen en dan een goed resultaat verwachten. De output heeft equalizatie nodig, als opnamen zijn gedaan met weinig bass en veel treble om de fysica van de bewegende naald te verbeteren. Deze equalizatie wordt nauwkeurig beschreven en verwezen als RIAA equalizatie. Je *moet* de uitvoer door een microfoon pre-amp draaien, en dan in de line in.
Keyboards en synths moeten worden aangesloten op de Geluidskaart in, met gitars verboden aan de Line in via DI (Direct Injection, gebruikt om het signaal te converteren naar Line niveau) box.
Voordat je alles in je geluidskaart plugt, weet dan zeker dat het volume niveau geminimaliseerd is, of als je een microfoon gebruikt dat hij uit of weg van de speakers is.
Je Linux systeem instellen voor het opnemen van audio data van CD-ROM is redelijk gemakkelijk.
Als je een track kan horen spelen van je CD-ROM door je speakers of amplifier, verbonden met je geluidskaart, dan is er een goede kans dat je het er van kan opnemen.
Login als normaal op je systeem, dan kun je door het gebruik van een mixer programma het opname niveau regelen tot deze luid genoeg is, om je een bescheiden opname niveau te geven, maar niet te luid en vervormd. Ik doet dit normaal met het oor, na een tijdje weet je welk niveau het beste is voor jouw kit.
Ik raad aan om alle onnodige services uit te zetten of switchen naar het 1ste runlevel, vooral bij het encoden van een audio bron. Dit is om zeker te weten dat het minimale aantal diensten draait en dus systeem obstakels minimaliseerd zijn tijdens het opnemen.
Ik heb een aparte SCSI disk geinstalleerd, exclusief om de audio naar op te nemen, die ik aangeef als /mp3. Dit heb ik speciaal gedaan voor de performance winst bij het gebruik van een SCSI drive. Ook, opnemen op een speciale drive, waar je bijna zeker van weet dat de kop niet ineens naar een ander deel van de drive gaat als je er audio data naartoe schrijft, dat is een goed idee :)
Voor de details van het instellen van een Linux systeem met meerdere schijven, kun je de Multi-Disk-HOWTO, door Stein Gjoen lezen.
Eerst, weet zeker dat je genoeg ruimte hebt op je schrijf. Op CD kwaliteit, 44.1 Khz 16 Bit stereo, is 1 minuut bijna 10 Mb (5 MB per kanaal).
Ik neem normaal op met DAT kwaliteit op, wat 48 Khz 16 Bit stereo is.
Als ik wavrec gebruik, gebruik ik het volgende commando:
/usr/local/bin/wavrec -t 60 -s 48000 -S /mp3/temp.wav
Het eerste deel is het volledige path naar wavrec. De '-t 60' specificeert de lengte van tijd om op te nemen, in seconden.
De derde optie, -s 48000 geeft de sample rate aan in samples/sec. (48000 is het geval bij DAT, 44100 is CD)
De laatste optie is het path naar de output file.
Om het volledige aantal opties te zien, draai waverec -help, of kijk in z'n man page.
Dit produceert een WAV file. Daarna moet je deze encoden naar MP3.
Gebruik Bladeenc met het volgende commando:
/usr/local/bin/bladeenc [bron file] [uitvoer file] -br 256000
De -br optie stelt de bit rate in, in dit geval heb ik de bit rate op maximaal gezet 256k bits/s. Het path naar bladeenc kan ook anders zijn op je systeem dan degene die ik heb gebruikt.
Om het volledige aantal opties te zien, draai dan 'bladeenc -help', eigenlijk is dit een verkeerde optie, maar laat de lijst van opties wel zien.
Dezelfde encoding maar dan met Lame (net als met Gogo omdat het erop gebaseerd is), geeft het volgende commando:
/usr/local/bin/lame [bron file] [uitvoer file] -b 256
Op dezelfde manier als encoden van audio, is encoderen van CD een 2 stappen proces. Eerst de audio data van de cd afhalen en converteren naar een wav file. En dan de wav file naar MP3 converteren.
Er zijn 2 types encoders, console gebaseerd en X gebaseerd. Beiden doen het zelfde, maar de X gebaseerde zijn makkelijker te gebruiken (en zien er leuker uit).
Weer, voordat je begint met encoderen, kijk of je genoeg harde schrijf ruimte hebt op je systeem.
Ik heb een zeer simpel Perl script geschreven dat tracks van een Cd zal rippen en encoderen.
#!/usr/bin/perl
if ($ARGV[0] ne "") {
$count = 1;
do {
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
$track = "$ARGV[1]/track".$count.".mp3";
$enc = system("bladeenc /mp3/cdda.wav $track -br 256000");
$count++;
}
until $count > $ARGV[0];
exit;
}
else {
print "Usage cdriper [no of tracks] [destination directory]\n\n";
}
Onthoud: Het script hierboven is erg basic en heeft niks moderns, zoals
error checking. Verbeter als je wilt. :)
De belangrijkste regels zijn:
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
Deze regel roept de CD ripper, cdparanoia aan. Cdparanoia converteert ruwe CD audio data in het Wav formaat.
Ik gebruik Cdparanoia, maar als je CDDA2Wav wilt gebruiken zou het commando zo moeten zijn:
$cdcap = system("cdda2wav", $count, "/mp3/cdda.wav");
De opvallenste opties zijn $count, welke het nummer van de track om te rippen is, en dan het path voor de uitgevoerde Wav file. In mijn voorbeeld gaat dit door een tmp directory op mijn MP3 SCSI disk.
De Wav file wordt geconverteerd naar MP3 door het gebruik van BladeEnc.
Ik heb het Perl script geschreven om te voorkomen dat je elke track apart moet encoderen en rippen, en zodat je de batch mode van Cdparanoia niet nodig hebt. Dit vermindert het aantal benodigde vrije Mb's, omdat Cdparanoia een hele Cd in een keer ript, en dit neemt tot 600 MB.
Als je Lame of Gogo wilt gebruiken, verander de encoder regel dan naar:
$enc = system("lame /mp3/cdda.wav $track -b 256");
$enc = system("gogo /mp3/cdda.wav $track -b 256");
Hier is een dump van de verkrijgbare opties voor elke encoder.
BladeEnc
BladeEnc 0.91 (c) Tord Jansson Homepage: http://bladeenc.mp3.no =============================================================================== BladeEnc is free software, distributed under the Lesser General Public License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more details. Usage: bladeenc [global switches] input1 [output1 [switches]] input2 ... General switches: -[kbit], -br [kbit] MP3 bitrate instellen. Standaard is 128 (64 voor mono uitvoer). -crc checksum data in MP3 file steken. -delete, -del Sampel verwijderen na succesvol encoderen. -private, -p Stel de private flag in de uitvoer file in. -copyright, -c Stel de copyright flag in de uitvoer file in. -copy Verwijdert de originele flags in de output file. -mono, -dm Produceer een mono Mp3 door de stereo kanalen te combineren. -leftmono, -lm Produceer een mono Mp3 van het linker stereo kanaal. -rightmono, -rm Produceer een mono Mp3 van het rechter stereo kanaal -swap Swap het linker en rechter stereo kanaal. -rawfreq=[freq] Specificeer de frequentie van Raw samples. Standaard is 44100. -rawbits=[bits] Specificeer de bits per kanaal voor Raw samples. Standaard is 16 -rawmono Specificeer dat de Raw samples mono zijn en niet stereo. -rawstereo Specificeer dat de Raw samples stereo zijn. (standaard). -rawsigned Specificeer dat de Raw samples gesigneerd zijn. (standaard). -rawunsigned Specificeer dat de Raw samples niet gesigneerd zijn. -rawbyteorder=[order]Specificeer byteorder van Raw samples, LITTLE of BIG. -rawchannels=[1/2] Specificeer het aantal kanalen voor Raw samples. doet hetzelfde als -rawmono en respectivelijk -rawstereo. Globale instellingen: -quit, -q Quit zonder te wachten op een toetsdruk als het klaar is. -outdir=[dir] Sla Mp3's op in gespecificeerde directory. -quiet Het scherm uitvoer uit. -nocfg Haal geen instellingen ui configuratie file. -prio=[prio] Zet de taak prioriteit voor BladeEnc. Goede instellingen zijn HIGHEST, HIGHER, NORMAL, LOWER, LOWEST(standaard) en IDLE -refresh=[rate] Refresh rate voor de progress indicator. 1=snelst, 2=normaal. -progress=[0-8] Welke programma indicator gebruiken. 0=Uit, 1=Standaard. Input/output files kunnen worden verplaatst met STDIN en STDOUT.
Lame
LAME version 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model version 0.74. USAGE : lame [options] <infile> [outfile] <infile> and/or <outfile> can be "-", which means stdin/stdout. OPTIONS : -m mode (s)tereo, (j)oint, (f)orce of (m)ono (standaard j) force = force ms_stereo op alle frames. Snelst en gebruikt speciale Mid en Side masking schaal -b <bitrate> stel de bitrate in, default 128kbps (voor VBR, dit stelt de toegestaan minimale bitrate in) -s sfreq sampling frequency van input file(kHz) - standaard 44.1 --resample sfreq sampling frequency van output file(kHz)- standaard=input sfreq --mp3input input file is een MP3 file --voice expirimentele geluids mode. -v gebruik variabele bitrate (VBR) -V n qualiteits instelling voor VBR. standaard n=4 0=hoogste qualiteit,grotere files. 9=kleinere files -t schakel Xing VBR informatie tag uit --nohist schakel VBR histogram weergave uit -h gebruik (misschien) betere kwalatiet improvements -f snele mode (lage kwaliteit) -k schakel sfb=21 cutoff uit -d sta toe dat kanalen verschillende blocktypes hebben --athonly gebruik alleen de ATH voor masking -r input is raw pcm -x forceer byte-swapping van input -a downmix van stereo naar mono file voor mono encoderen -e emp de-emphasis n/5/c (verouderd) -p fout protectie. Voegt 16bit checksum toe aan elk frame (de checksum is goed berekend) -c markeer als copyright -o markeer als niet-origineel -S print geen vooruitgangs rapport, VBR histogrammen Een van deze opties meegeven zal een ID3 tag toevoegen --tt <titel> titel van het liedje (max 30 karakters) --ta <artiest> artiest die het liedje zingt (max 30 karakters) --tl <album> album waar het van komt (max 30 karakters) --ty <jaar> jaar waarin het liedje/album is gemaakt (max 4 karakters) --tc <commentaar>toegevoegde informatie (max 30 karakters) MPEG1 samplerates(kHz): 32 44.1 48 bitrates(kbs): 32 48 56 64 80 96 112 128 160 192 224 256 320 MPEG2 samplerates(kHz): 16 22.05 24 bitrates(kbs): 8 16 24 32 40 48 56 64 80 96 112 128 144 160
Gogo
GOGO-no-coda ver. 2.24 (Feb 12 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei This is based on LAME3.29beta and distributed under the LGPL usage gogo inputPCM [outputPCM] [options] inputPCM is input wav file if input.wav is `stdin' then stdin-mode outputPCM is output mp3 file (omissible) options -b kbps bitrate [kpbs] -br bps bitrate [ bps] -silent geef geen vooruitgangs rapport weer -off {3dn,mmx,kni(sse),e3dn} -v {0,..,9} VBR [0:hoge kwaliteit 9:hoge compresie] Je moet dit combineren met de -b optie alleen voor RAW-PCM input -offset bytes overslaan header grootte -8bit 8bit-PCM [dflt 16bit-PCM] -mono mono-PCM [dflt stereo-PCM] -bswap hoge, lage byte swapping voor 16bitPCM -s kHz freq van PCM [dflt 44.1kHz] -nopsy schakel psycho-acoustics uit -m {s,m,j} output formaat s:stereo, m:mono, j:j-stereo -d kHz verander sampling-rate van output MP3 -emh {n,c,5} de-emphasis -lpf {on,off} 16kHz filter [dflt use als <= 128kbps; niet gebruiken als >= 160kbps] -test benchmark mode -delete verwijder input file, na encoden
RipEnc doet de zelfde taak als de code bovenaan, maar het is geschreven in shell en is makkelijker te gebruiken :)
Hier is hoe het eruit ziet.
RipEnc version 0.7, Copyright (C) 1999 Michael J. Parmeley <mjparme@asde.com>, RipEnc comes with ABSOLUTELY NO WARRANTY There is currently NO encoding process running in the background Your encode.log file is 982607 bytes long. <Enter 'd' for details, 'v' to view the encode log, or 'del' to delete the encode log> 1) Verander de werk directory..................[/megajukebox/tmp] 2) kies encoder................................[lame] 3) Kies ripper.................................[cdparanoia] 4) Kies id3 tool...............................[none] 5) Zet CDDB benaming aan of handmatig..........[handmatig] 6) Setup XMCD_LIBDIR variabel voor CDA.........[/var/X11R6/lib/xmcd] 7) Hoe de naam van een liedje eruitziet........[artist-name_of_song.mp3] 8) Rip de hele CD?.............................[no] 9) Zet de kleine schijf optie aan..............[no] 10) Kies je Cd-Rom device......................[/dev/cdrom] 11) Stel de Bitrate in voor de encoded MP3's...[256] 12) Laat de file's zien in je werk directory 13) Start 14) About ?
GUI gebaseerde encoders hebben dezelfde functionaliteiten als console gebaseerde encoders, maar het is allemaal in een mooi en makkelijk te gebruiken interface gestopt. Grip en RipperX zijn hetzelfde in werking, ze bieden je beiden aan om enkele of alle tracks van een Cd te rippen en converteren. Ze hebben ook CDDB support wat je in staat stelt om de informatie van een album en zijn nummers te ontvangen van een server en bespaart je dat je informatie met de hand moet invoeren.
In de encodeer secties heb ik 3 verschillende encoders vermeld: bladeenc, lame en gogo. Het grote verschil zit in hun snelheid van encoderen (hoewel ze verschillende opties hebben die we eerder hebben laten zien).
Een klein voorbeeld. Ik heb een track van een Cd geript en deze geencodeerd met verschillende encoders. Alle encoders draaiden op hetzelfde systeem en produceerden allemaal stereo mp3's.
[dj@megajukebox]$ ls -l cdda.wav -rw-rw-r-- 1 dj dj 59823164 Feb 10 00:56 cdda.wav [dj@megajukebox]$ bladeenc cdda.wav -br 256 BladeEnc 0.91 (c) Tord Jansson Homepage: http://bladeenc.mp3.no =============================================================================== BladeEnc is free software, distributed under the Lesser General Public License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more details. Files to encode: 1 Encoding: ../test.wav Input: 44.1 kHz, 16 bit, stereo. Output: 128 kBit, stereo. Completed. Encoding time: 00:05:58 (0.78X) All operations completed. Total encoding time: 00:05:58 -------------------------------------------------------------------------------- [dj@megajukebox]$ lame cdda.wav -b 256 LAME version 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model version 0.74. Encoding ../test.wav to ../test.wav.mp3 Encoding as 44.1 kHz 128 kbps j-stereo MPEG1 LayerIII file Frame | CPU/estimated | time/estimated | play/CPU | ETA 10756/ 10756(100%)| 0:02:28/ 0:02:28| 0:02:29/ 0:02:29| 1.9074| 0:00:00 -------------------------------------------------------------------------------- [dj@megajukebox]$ gogo cdda.wav -m s -b 256 GOGO-no-coda ver. 2.24 (Feb 12 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei MPEG 1, layer 3 stereo inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=256kbps inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=128kbps input file `../test.wav' output file `../test.mp3' { 10751/ 10755} 100.0% ( 2.94x) re:[00:00:00.03] to:[00:01:35.42] End of encoding time= 95.430sec
Het ziet ernaar uit dat Gogo een meer geoptimaliseerd algoritme voor encoderen heeft dan Lame.
Een streaming server stelt je in staat om MP3 files over een Tcp gebaseerd netwerk te transporteren. dit kan het internet zijn of je lokale netwerk / intranet.
De connectie principes zijn bijna gelijk aan die van een web server, files worden gestreamd als een client (de MP3 speler) verbinding maakt met de server.
Een streaming server instellen is erg simpel. Ik fokus eerst op Icecast en dan Fluid.
Na het downloaden en untarren, zou een goede kijk in de doc/ directorie geen kwaad kunnen, de HTML handleiding is erg handig en omvattend.
Als je de bron code hebt gedownload, volg dan de instructies voor het compileren die relevant zijn voor je systeem.
Icecast zal niet goed werken als je de servernaam in de configuratie file, icecast.conf, welke in de etc directory staat niet goed instelt. Het moet de naam zijn die je IP adres kan ophelderen. Als je het volgende zie als Icecast opstart heb je problemen:
-> [05/Jan/2000:17:21:04] WARNING: Resolving the server name [your.server.name] does not work!
Edit de icecast.conf welke zich bevindt in de etc directory en zoek de regel die het woord "server_name" bevat en voer je server naam in. Als je onzeker bent kun je je hostname uitvissen met het hostname commando, of door een kijkje in /etc/hosts.
Als je de nodige veranderingen hebt gemaakt moet je of de conf file naar de bin directory kopieëren of icecast starten met de -c optie en de locatie aangeven, zoals dit:
./icecast -c ../etc/icecast.conf
Als alles goed is geconfigureerd, zie je iets wat lijkt op:
[dj@megajukebox bin]$ ./icecast -c ../etc/icecast.conf -d /home/dj/mp3/icecast/ Icecast Version 1.3.0 Starting... Icecast comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of Icecast under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. [05/Jan/2000:18:36:30] Icecast Version 1.3.0 Starting.. [05/Jan/2000:18:36:30] Using stdin as icecast operator console [05/Jan/2000:18:36:30] Tailing file to icecast operator console [05/Jan/2000:18:36:30] Server started... [05/Jan/2000:18:36:30] Listening on port 8000... [05/Jan/2000:18:36:30] Using [megajukebox] as servername... [05/Jan/2000:18:36:30] Max values: 1000 clients, 1000 clients per source, 10 sources, 5 admins -> [05/Jan/2000:18:36:30] [Bandwidth: 0.000000MB/s] [Sources: 0] [Clients: 0] [Admins: 1] [Uptime: 0 seconds]
De -d optie zet de directory voor log files en templates.
Hieronder is de lijst van command-line opties:
-c [filename] Geef een configuratie file door. Onthoud, dat elk command-line optie die je meegeeft de waarden in de configuratie file 'vervangt', dus alles in de icecast.conf wat niet is overschreven door de nieuwe file wordt gebruikt voor de server. -P [port] Dit is de poort gebruikt voor alle client, source en admin connecties. Standaard staat het op 8000. -m [max clients] Staat dit aantal client connecties toe. Als dit is berijk worden alle client connecties geweigerd met 'HTTP/1.0 504 Server Full'. -p [encoder password] Dit stelt het paswoord dat de encoder moet gebruiken om naar de server te streamen. Onthoud dat als je de server met crypt() hebt gecompileerd dat hier ook een versleutelde string moet staan. -b Dit zend de icecast server in de achtergrond (een deamon process). Om de admin commando's nu te gebruiken moet je connectie maken met de server als een admin, met een soort van telnet client. -d [directory] Zorg dat icecast alle logfiles die hij maakt en alle templates waar hij naar zoek in deze directorie.
Zo, de server is gestart, maar nu moeten we een MP3 bron er aan verbinden.
Shout voorziet Icecast van een statische playlist van MP3's om te streamen.
Je maakt een playlist van de MP3 files die je wilt streamen met het volgende commando:
find [MP3 directory] -name *.mp3 -print > playlist
Het is heel makkelijk om het shout service te starten, geef het volgende commando:
[dj@megajukebox bin]# ./shout megajukebox -P hackme -p playlist
De -P optie is het paswoord dat nodig is om een mount-punt toe tevoegen aan Icecast, dit is normaal ingestelt als hackme..... Ik raad je sterk aan dit te veranderen voordat een ander het doet :) De -p optie specificeert de lokatie van de playlist file.
Hieronder is een lijst van alle command line opties:
[dj@megajukebox bin]# ./shout Usage: shout <host> [options] [[-b <bitrate] file.mp3]... Options: -B <directory> - Gebruik deze directory voor alle shout files -C <file> - Gebruik file als configuratie file -D <dj_file> - Draai dit voor elk liedje (system()) -P <password> - Gebruik als paswoord password -S - Geef alle instellingen weer en exit -V - Gebruik verbose uitvoer -X <desc> - Gebruik gespecificeerde beschrijving -a - schakel automatisch bitrate (transfer) correctie -b <bitrate> - Start met het gespicifeerde bitrate -d - Schakel de dj in. -e <port> - Verbind op poort met server. -f - Sla files over die niet de goed bitrate hebben -g <genre> - Gebruik een specifiek genre -h - Laat deze tekst zien -i - Gebruik oude icy headers -k - Vermink de interne playlist niet -l - Ga voor altijd door (loop) -m <mount> - Gebruik het gespecificeerde mount punt -n <name> - Gebruik de gespecificeerde naam -o - Schakel bitrate autodetectie uit -p <playlist> - Gebruik deze file als een playlist -r - Shuffle playlist (random play) -s - (Geheim) Zend geen meta data naar directory server -u <url> - Gebruik de gespecificeerde url -v - Laat versie zien -x - Update de cue file niet (spaart cpu) -z - Ga in de achtergrond (Daemon mode) -t - Schakel titel streaming in
LiveIce kan in 2 modes werken, het kan een playlist doorgeven aan Icecast of kan live audio van de geluidskaart doorgeven.
Na het untarren en lezen van de README betreffende het compileren van het pakket, zorg dan dat mpg123 is geinstalleerd en dat LiveIce het kan gebruiken als LiveIce het nodig heeft.
Er zijn twee manieren om LiveIce te configureren. De config file editten met vi/emacs/of wat dan ook of doormiddel van een TK gebaseerde configuratie tool, wat een mooie manier van editten is :)
De best plaats voor beschrijvingen over de internals van liveice.conf kan worden gevonden op de LiveIce homepage waar Scott alle opties beschrijft.
Dit is een kopie van mijn config file met LiveIce ingesteld in de mixer mode (streamen van een lijst MP3's)
NOTITIE: Ik heb commentaar toegevoegd aan de file, dus als je kopie en paste doet zorg dan dat er geen tekst op de volgende regel verschijnt anders werkt LiveIce niet :)
# liveice configuratie file # Automatisch gegenereerd SERVER megajukebox # Je server naam * MOET DE NAAM ZIJN HOE DE SERVER IS GENOEMD * PORT 8000 # De poort waar Icecast op draait. NAME Megajukebox # Informatie met betrekking to de server naam die wordt gezonden # naar de MP3 spelers en de directory servers. # Voorbeelden 'Sarah FM' of 'ThisTown: Loud and Heavy Jazz -Internet Radio 24/7' GENRE Live # Informatie over het genre. Bijvoorbeeld 'Talk' of 'Dance' DESCRIPTION # Informatie over het station. Voorbeeld 'The best for reggae in the North' URL http://megajukebox:8000 # De URL en poort van de serverThe URL and port of the server. PUBLIC 0 # Zet hier 1 als wilt dat Icecast je station lijst en details moet doorgeven. # laat het anders op 0 staan XAUDIOCAST_LOGIN # Kan ICY_LOGIN zijn of X_AUDIOCAST_LOGIN. X_AUDIOCAST is beter. MOUNTPOINT /techno # Stelt de naam van het mountpunt van de stream in voor Icecast. # Wordt alleen gebruikt als X_AUDIOCAST is gebruikt. De default is icy_0 PASSWORD hackme # Het admin paswoord van Icecast. SAMPLE_RATE 44100 # De sample rate van de stream STEREO # kan MONO of STEREO zijn NO_SOUNDCARD # Zie hieronder HALF_DUPLEX # Stelt de soundkaar duplex mode in. Kan HALF_DUPLEX of FULL_DUPLEX zijn USE_GOGO # Stelt de encoder in die moet worden gebruik. Kijk in de README voor een lijst BITRATE 128000 # Stelt de bit rate van de stream in (zie hieronder) VBR_QUALITY 1 # Stelt de variabele bit rate kwaliteit in. MIXER # Zie hieronder PLAYLIST /megajukebox/playlist # Lokatie van de playlist (zie details op het find commando later # in dit hoofdstuk) TRACK_LOGFILE track.log # Filenaam en lokatie om de lijst van MP3's te dumpen die gestreamt worden Als je de config file hebt start je LiveIce op deze manier: <code> [dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 1 opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 44100Hz Stereo Output Format: 256000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /techno Name: megajukebox - this and that radio - broadcasting 24/7 Genre: Techno Url: http://megajukebox Description: a load of digital noise -> but i know you like it :) Press '+' to Finish adding /megajukebox/demotunes/track_1.mp3 adding /megajukebox/demotunes/track_2.mp3 adding /megajukebox/demotunes/track_3.mp3 adding /megajukebox/demotunes/track_4.mp3 /megajukebox/demotunes/track_4.mp3 Adding New Channel 1 Adding New Channel 2 Channel 1 selecting /megajukebox/demotunes/track_1.mp3 Channel 2 selecting /megajukebox/demotunes/track_1.mp3 Playing track_1.mp3 searching for Id3v2 searching for Id3v1 copying the data fixing the nulls adding the url closing input file Using log track.log
The last line is a peak meter.
Dit zijn de toetsenbord controls voor de mixer mode:
Actie Kanaal 1 toets Kanaal 2 toets ~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ Selecteer volgende track op kanaal 1 a Selecteer vorige track op kanaal q z Start/Stop kanaal 2 s Reset kanaal w x Verhoog volume op kanaal 3 d Verlaag volume op kanaal e c Verhoog snelheid op kanaal 4 f Verlaag snelheid op kanaal r v Sticky mode Aan/Random/Uit 5 g Preview kanaal t b Random Track u m
De bovenstaande liveice.cfg is voor mixermode. Om LiveIce in audio mode te gebruiken verander dan de regel met MIXER naar NOMIXER en maak NO_SOUNDCARD, SOUNDCARD en herstart LiveIce.
De correctie opties vergeten instellen kan lijden to enkele interesante waarschuwingen ;)
946:Error: Line In mode *en* geen soundkaart??????? Eeejit!
Als je alles goed hebt ingesteld en een externe bron hebt ingeplugd, moet je kunnen streame =:)
[dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 0 Initialising Soundcard 16Bit 22050Hz Stereo Full Duplex opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 22050Hz Stereo Output Format: 32000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /daves_band_live_at_the_club Name: megajukebox - Dave and the Dynamite - Live at the Roxy Genre: Live/Rock Url: http://megajukebox Description: megajukebox::Louder than a frog in a trashcan..... and sical Press '+' to Finish Lvl: L: 8704 R: 11776
De slim goed geoogedenn onder jullie heeft misschien gezien dat in liveice.cfg de eerste regel commentaar laten zien dat de file automatisch is gegenereerd. Als je de TK gebaseerde GUI liveiceconfigure.tk gebruikt en je hebt handmatige veranderingen gemaakt ben je die kwijt. Gebruik de GUI of leer vi/emacs :)
Na het untarren van de bundel cd naar de directory, lees dan de README :)
Fluid heeft drie basis modes van operatie, verzenden, ontvangen en doorsturen. Ik focus alleen op verzenden.
De configuratie files die te maken hebben met transmit staan in config/MP3TX.cfg. Om de server met het volgende te testen zouden de standaard settings ok moet zijn:
java Fluid TX
Natuurlijk moet je een vorm Java eerst geinstalleerd hebben. Je kan de Blackdown port van JDK gebruiken verkrijgbaar op http://www.blackdown.org of als je Redhat gebruikt, Kaffe.
Fluid komt met een paar voorbeeld MP3 files, Dus als er iets werkt zou je iets als dit moeten zien (Ik heb de server in dit voorbeeld met Kaffe gestart, je kan het ook starten met java):
[dj@megajukebox Fluid-Beta2J]$ kaffe Fluid tx ------- Fluid Streaming Server Beta 2 ------- This program is ShareWare(tm) and it will not be crippled in any way because of it. However if you do like the program and will use it commercial purposes, we ask of you to contact us at the address below for pricing info: Eldean AB E-mail: Sjoangsvagen 7 fluid@subside.com S-192 72 Sollentuna SWEDEN Fluid is Copyright Subside (C) 1998 written by Lars Samuelsson http://www.subside.com --------------------------------------------- * Transmission mode * Reading config from: config/MP3TX.cfg Reading playlist: playlist.m3u Server started on port: 2711 Accepting administrator login on port: 2710 P| Dr. Nick - Hello Everybody
Als je zo ver komt, ziet het er naar uit dat het werkt, maar ik weet zeker dat je meer wilt streamen dan alleen de demo files!
Je moet een playlist van MP3's die je wilt streamen compileren. Dit is een statische lijst, gebruikers kunnen geen aanvragen maken. Deze playlist is playlist.m3u en staat standaard in de root directory.
Om een playlist van alle MP3's in een bepaalde directory (of disk) te compileren gebruik dan dit commando:
find [MP3 directory] -name *.mp3 -print > playlist.m3u
Standaard gebruikt de server poort 2711, dit is waar je luisteraars verbinding mee maken, als je dit wilt veranderen kan dat in de configuratie file.
De server kan op afstand worden beheerd door te telnetten naar de admin poort, standaard poort 2710:
[dj@megajukebox Fluid-Beta2J]$ telnet localhost 2710 Trying 127.0.0.1..megajukebox Connected to localhost.localdomain. Escape character is '^]'. jaguar You are connected to the -Fluid- Streaming Server Type "help" for a command reference help The following commands are available: help conn curr exit curr Information about the currently broadcasted song: Title: Beer Talk Artist: Homer Simpson Album: The Simpsons Year: 1996 Comment: Borrowed this as an example Genre: Comedy
Het woord "jaguar" is het admin password, dit is standaard. Er is geen prompt voor het password dus wacht er niet op! Ik raad je aan dit te veranderen of je nodigt een hacker uit! Het kan veranderd worden in de configuratie file, welke er zo uitziet:
[dj@megajukebox config]$ cat MP3TX.cfg 2711 2710 5 4096 32 1000 jaguar playlist.m3u current.txt # --- De regels zijn --- # 1. POORT nummer (welke de server gaat gebruiken) # 2. POORT nummer (voor het onderhouden van de server) # 3. Maximaal aantal connecties (voor de server) # 4 Packetgrootte bij het lezen/zenden (in bytes) # 5. Bitrate van de mp3s in kbit/s (alle mp3s moeten dezelfde bitrate hebben) # 6. Tijd tussen liedjes (in milliseconden) # 7. Paswoord voor op afstand beheren # 8. Playlist naam (lijst in .m3u formaat) # 9. Naam van de file om de song info naar toe te schrijven (van ID3-tag)
De opmerking op de playlist is dat deze in m3u formaat is wat betekent dat het in het zelfde formaat is als het find commando eerder.
Audio streamen kan ontzettend veel bandbreedte innemen als de bit-rate van de MP3 server te hoog staat.
Overweeg dit scenario. Een T1 link heeft een capaciteit van ongeveer 1.55 Mb/Sec. Als je je MP3' streamt op 128K/Bps stereo, zal elke speler 256K/Bps gebruiken, dus er kunnen maar 6 gebruikers verbinding maken met je MP3 server op elk tijdstip zonder problemen. En 256K/Bps, kunnen veel gebruikers niet door hun modem krijgen!
Dus je moet een beslising maken niet alleen in te stellen op wat de server kan, maar op wat een client kan. 24K/Bps geeft een redelijke kwaliteits signaal waar 56K modem gebruikers naar kunnen connecten, en dezelfde T1 line kan nu 32 connecties aan.
Als je server op een Intranet draait, telt bandbreedte nog steeds mee vooral als je een 10M/Sec netwerk hebt.
Maar laat a.u.b je ISP of sys admin weten dat je gaat streamen anders zorg je voor opschudding. Sommige ISP's laten je betalen voor bandbreedte als je een limiet overschreidt en sys admins willen weten waarom hun netwerk zo traag is :)
Ik denk dat het logisch is dat platenmaatschappijen het niet leuk vinden als je hun materiaal zonder hun toestemming of betaling gaat streamen! Dus wat kun je streamen?
Dit is een gebied waar je je bewust moet zijn van legaliteit, omdat jij degene bent die schuldig is.
Hieronder staan twee links, een van de Electronic Frontier Foundation, welke advocaten zijn welke de beperkingen van de omliggende technologie vrijer willen maken. De andere link is naar de Recording Industry Association of America, welke artiesten beschermt tegen piraterij.
Ik raad je sterk aan beide sites te bezoeken en andere waar je fysiek op gebaseerd bent.
http://www.riaa.com/weblic/weblic.htm
Hopelijk heb je nu enkele MP3 files om te beluisteren, en je hebt de keuze om van stream of file te spelen.
Spelen van een file is bij alle spelers erg simpel. Het enige verschil is dat sommige command-line gebaseerd zijn en ander X gebaseerd.
Om een MP3 te spelen van een file moet je de mp3 file doorgeven als een parameter, zoals dit:
[dj@megajukebox]$ mpg123 /mp3_files/SampleFile.mp3 of [dj@megajukebox]$ xaudio /mp3_files/SampleFile.mp3
Als je een serie files wilt spelen, geef ze dan een lijst:
[dj@megajukebox]$ alsaplayer /mp3_files/SampleFile1.mp3 /mp3_files/SampleFile2.mp3
Om tracks in een directory te spelen, gebruik dan een wildcard om alle files te selecteren:
[dj@megajukebox]$ xmms /mp3_files/*.mp3
Mp3's spelen van een MP3 stream is ook best simpel, gewoon de file met de streams url en poort nummer:
mpg123 http://localhost:8000 of freeamp http://megajukebox:2711
eMixer geeft je de mogelijkheid MP3's te mixen net als bij een menpaneel van een DJ.
Niewere versies ondersteunen 2 geluids kaarten zodat je je mix uit kan voeren op de ene kaar en de volgende track beluisteren op de andere geluids kaart.
Als normaal als je hebt geuntart, kijk je in de readme file hoe je het pakketje moet compileren.
Je moet een playlist met MP3 files maken, doe dit met het find commando dat in de Streaming sectie staat.
Je moet zorgen de mpg123 is geinstalleerd voordat je eMixer kunt gebruiken.
Hier zijn de controle toetsen (uit de readme file)
KEYBOARD CONTROLS "up, down" door de playlist scrollen "page up, page down" door de playlist scrollen met bladzijden per keer "enter" start/stop track "tab" verander kanaal "}","]" Volume en snelheid controle/scherm "space" herstart de actieve track "left, right" fader controls "insert" verhoog volume/snelheid in kanaal een "home" verlaag volume/snelheid in kanaal een "delete" verlaat volume/snelheid in kanaal twee "end" increase volume/snelheid in kanaal twee "< , / , >" links, center & rechts posities van fader " + , = " (NEW) wissel tussen faders " q " start/stop kanaal een " w " start/stop kanaal twee " p " Verwissel de playmodes - single, loop, continous, random " a " stop alle kanalen " f " file menu " u " util menu " h " help menu " ~, ` " annuleer menu " s " zet sim play aan (SIM Play start de zelfde track in beide kanalen tegelijk )
Nieuwe hardware en software wordt altijd gereleased. Als je nieuwe versie van hardware en / of software in deze gebruikt, of als je iets kan toevoegen, zend dan je informatie voor toevoeging naar phil@plus24.com en ik zet het in de volgende release.
Omdat ik alle vragen beantwoord, onthoud dan dat ik niet altijd kan terug mailen omdat ik ook moet werken.
Happy MP3'ing!!