Portál AbcLinuxu, 17. července 2025 22:48
příkaz1 | příkaz2
, kde znak "|" předává výstup prvního příkazu ke zpracování druhému příkazu. Viz také BASH - II.
Co se však ripování a následného kódování týče, určitě by to znamenalo výrazné zvýšení rychlosti? Vždyť samotný proces stáhnutí stopy z CD je docela rychlý, ne?
Nejjednodušší je použít nástroj, který už někdo připravil pro stejný účel před tebou. Třeba rip nebo rip-utils.
cdparanoia 1 - | oggenc - >skladba01.oggcdparanoia vypise data na standardni vystup (ktery je zvykem oznacovat minusem), svislitko rika shellu, ze ma standardni vystup programu vlevo presmerovat na standardni vstup programu vpravo a oggenc si ted standardni vstup precte (zase minus, ale je zrejme, ze jde o vstup), prekoduje a vypise na standardni vystup, ktery bash presmeruje do souboru skladba01.ogg. Vada na krase je, ze oba programy pri sve cinnosti jeste vypisuji na terminal, takze by bylo dobre spustit kazdy v jinem terminalu a pouzit "pojmenovanou rouru" (named pipe):
mkfifo pajpa cdparanoia 1 pajpaa v jinem terminalu
oggenc pajpa -o skladba01.oggJestli se chcete dozvedet neco vic o rourach a spol., tak si prectete jakoukoliv knizku o Unixu/Linuxu. Navic "roury" byly i v shellu MS-DOSU (ale emulovane pres tmp soubor, tudiz efektivita veskera zadna), takze informaci je urcite dostatek. A samozrejme
man bash
;-)
Nenapada me, proc by to nemelo fungovat, cdparanoia nemusi ripovat v kuse (a snad na to nepotrebuje zadnou spolupraci cd mechaniky), stejne tak oggenc muze cekat na vstup. Nemluvil ten clovek o vypalovani?
#!/bin/env python import os def feed(): (stdin, stdout) = os.popen2('cdda2wav -t10 -D /dev/cdrom - 2>/dev/null', 'r') return stdout def eat(stream): stdin = os.popen("oggenc - >track01.ogg", 'w') stdin.write(stream.read()) data = feed() eat(data)ale i takhle proces čeká až zkončí ten první. Díkes.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.