De Linux MP3-HOWTO
Door Phil Kerr, phil@plus24.com
Vertaler: Reggy Ekkebus, reggy@zeelandnet.nl
v1.40, April 2000
Dit document beschrijft de hardware, software en procedures benodigd
om MP3 sound files te encoderen, afspelen en streamen onder Linux.
______________________________________________________________________
Inhoudsopgave
1. Introductie.
2. Copyright van dit document.
3. Waar kun je dit document halen?
3.1 Vertalingen
4. Erkentenis.
5. Disclaimer.
6. Hardware Vereisten & Performance onderwerpen.
7. Software Vereisten.
7.1 Rippers & WAV Recorders
7.2 Encoders
7.3 Spelers
7.4 Streaming Servers
7.5 Mixen
7.6 Misc
8. Je systeem instellen.
8.1 Instellen voor Analoge Geluids opname
8.2 Je CD-rom instellen voor het opnemen van audio
8.3 Extra setup
9. Audio encoden.
10. Encoderen van CD-ROM.
10.1 Command Line encoderen
10.1.1 RipEnc
10.2 GUI gebaseerde encoders
10.3 Encoder snelheid
11. MP3's streamen.
11.1 Icecast
11.1.1 Shout
11.1.2 LiveIce
11.2 Fluid
11.3 Bandbreedte afwegingen
11.4 Copyright onderwerpen
12. MP3's luisteren
12.1 Spelen van een File
12.2 MP3 spelen van streams
12.3 Mixen
12.3.1 eMixer
13. Feedback.
______________________________________________________________________
1. Introductie.
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
2. Copyright van dit document.
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.
3. Waar kun je dit document halen?
De meest recente officiële versie van dit document kan verkregen
worden van het Linux Documentation Project
.
De homepage voor deze HOWTO is:
3.1. Vertalingen
Deze HOWTO is vertaald in de volgende talen:
Onthoud dat de vertalingen van dit document verouderd kunnen zijn, het
vertalen vergt tijd.
Koreaans
Door Lee,So-min
Frans
Door Arnaud
Gomes-do-Vale
Hongaars
Door Andras Timar
Italiaans
Door Mariani
Dario
Spaans
Door Arielo
larocka@yahoo.com
Japans
By Saito Kan
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.
4. Erkentenis.
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.
5. Disclaimer.
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.
6. Hardware Vereisten & Performance onderwerpen.
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:
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.
7. Software Vereisten.
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).
7.1. Rippers & WAV Recorders
Om te grabben van analoog audio line-in: Wavrec
Waverec is gedistributeerd als deel van wavplay, welke te downloaden
is van:-
Om Cd audio data te converteren naar Wav, soms bekends als Cd ripping:
CDDA2WAV
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.
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.
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.
7.2. Encoders
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 ).
7.3. Spelers
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 :)
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.
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.
7.4. Streaming Servers
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.
(oude site)
(nieuwe site)
7.5. Mixen
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:
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.
7.6. Misc
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.
Sox is een erg handig sound conversie tooltje welke is aan tebevelen
en je hebt het nodig als je wav norm wilt gebruiken.
Je hebt misschien ook een mixer programma nodig; Xmixer werk goed en
is meegeleverd met de meeste distributies.
8. Je systeem instellen.
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.
8.1. Instellen voor Analoge Geluids opname
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.
8.2. Je CD-rom instellen voor het opnemen van audio
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.
8.3. Extra setup
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.
9. Audio encoden.
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
10. Encoderen van CD-ROM.
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.
10.1. Command Line encoderen
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");
______________________________________________________________________
of
______________________________________________________________________
$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] [outfile]
and/or 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 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 van het liedje (max 30 karakters)
--ta artiest die het liedje zingt (max 30 karakters)
--tl album waar het van komt (max 30 karakters)
--ty jaar waarin het liedje/album is gemaakt (max 4 karakters)
--tc 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
______________________________________________________________________
10.1.1. RipEnc
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
, RipEnc comes with ABSOLUTELY NO WARRANTY
There is currently NO encoding process running in the background
Your encode.log file is 982607 bytes long.
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
?
______________________________________________________________________
10.2. GUI gebaseerde encoders
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.
10.3. Encoder snelheid
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.
11. MP3's streamen.
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.
11.1. Icecast
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.
11.1.1. Shout
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 [options] [[-b - Gebruik deze directory voor alle shout files
-C - Gebruik file als configuratie file
-D - Draai dit voor elk liedje (system())
-P - Gebruik als paswoord password
-S - Geef alle instellingen weer en exit
-V - Gebruik verbose uitvoer
-X - Gebruik gespecificeerde beschrijving
-a - schakel automatisch bitrate (transfer) correctie
-b - Start met het gespicifeerde bitrate
-d - Schakel de dj in.
-e - Verbind op poort met server.
-f - Sla files over die niet de goed bitrate hebben
-g - 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 - Gebruik het gespecificeerde mount punt
-n - Gebruik de gespecificeerde naam
-o - Schakel bitrate autodetectie uit
-p - Gebruik deze file als een playlist
-r - Shuffle playlist (random play)
-s - (Geheim) Zend geen meta data naar directory server
-u - 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
______________________________________________________________________
11.1.2. LiveIce
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:
[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 laatste regel is een signaal meter, als het input signaal te hoog
is krijg je een *clip* waarschuwing. Als je de gain van de input
source zachter zet.
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 :)
11.2. Fluid
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
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.
11.3. Bandbreedte afwegingen
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 :)
11.4. Copyright onderwerpen
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.
12. MP3's luisteren
Hopelijk heb je nu enkele MP3 files om te beluisteren, en je hebt de
keuze om van stream of file te spelen.
12.1. Spelen van een File
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
______________________________________________________________________
12.2. MP3 spelen van streams
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
______________________________________________________________________
12.3. Mixen
12.3.1. eMixer
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 )
______________________________________________________________________
13. Feedback.
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!!