Hromadná úprava wav souborů při zachování názvů

Problémy s příkazy v příkazovém řádku nebo obecně s terminálem
Odpovědět
Zpráva
Autor
caine
Příspěvky: 46
Registrován: 27 srp 2014, 18:37

Hromadná úprava wav souborů při zachování názvů

#1 Příspěvek od caine » 01 led 2018, 22:47

Dobrý den, prosím o radu:
Potřebuji hromadně ořezat ticho na začátku a na konci velkého množství .wav souborů. Vygooglil jsem, že by to šlo v terminálu např. pomocí programu SoX. U jednoho souboru jsem to úspěšně vyzkoušel příkazem:

Kód: Vybrat vše

sox in.wav out.wav silence 1 0.1 -73d reverse silence 1 0.1 -73d reverse
A nyní potřebuji takhle upravit všechny zvukové soubory v adresáři najednou, aniž bych musel zadávat název každého zvlášť. Ale zároveň bych rád, aby původní názvy zůstaly zachovány, případně byl jen přidán nějaký znak na konci. Myslím, že už to tu někdo někdy někde popisoval při jiné hromadné úpravě, ale ne a ne to najít. Děkuju.
Naposledy upravil(a) caine dne 04 led 2018, 11:12, celkem upraveno 1 x.

caine
Příspěvky: 46
Registrován: 27 srp 2014, 18:37

Re: Hromadná úprava wav souborů při zachování názvů

#2 Příspěvek od caine » 04 led 2018, 11:11

Tak jsem nakonec sebral odvahu a zeptal se v poradně terminálových čar a kouzel v Abc Linuxu... i když tam už je to opravdu pro věčného (š)mudlu, jakým i po létech s linuxem jsem... "vyšší dívčí" :-) Z mnoha odpovědí, které mi vzápětí přišly jsem vybral alespoň dvě - ty, co jsem jakž takž dokázal... když ne pochopit, tak alespoň použít.
Úplné vysvětlení, jak ony "zaklínadla" vlastně fungují, co přesně způsobují tajemné závorky, znaky a šifry mistra L. (Linuse ;-) ) v nich, to by asi bylo na celý článek. Jenže od někoho, kdo se v příkazové řádce vyzná! Já si alespoň pro sebe do srozumitelštiny okomentoval a pro příští použití zapsal to, co mi nakonec... se správným doplněním tajenky... přineslo kýžený výsledek:
Hromadnou úpravu cca 200 .wav souborů naráz ;-)
A protože v Audacity by taková, byť triviální operace trvala po kouskách několik hodin, a hlavně protože už jsem tady na Mintích stránkách hodně bral, rád bych se tu i jednou podělil:

HROMADNÁ ÚPRAVA SOUBORŮ
Pro příklad uvádím hromadné ořezání ticha na začátku a na konci mnoha hudebních samplů pomocí terminálového programu SoX

1. způsob: (poradil včera pan NN z portálu Abc Linuxu)
komentář: příkaz maže po provedení akce všechny původní soubory! Proto je nutné vytvořit si nejprve jejich zálohu!!! Používá v zadání absolutní = plnou cestu k souboru, takže není třeba se nejprve v terminálu přenést příkazem "cd" do adresáře s upravovanými hudebními záznamy)

Kód: Vybrat vše

for F in $(find /full/path/*.wav); do
  sox $F /tmp/out.wav silence 1 0.1 -73d reverse silence 1 0.1 -73d reverse
  mv /tmp/out.wav $F
done
/full/path/ = plná (absolutní) cesta k souborům

2. způsob: (poradil včera pan R z portálu Abc Linuxu... abych se tu nechlubil cizím peřím... resp. vzděláním)
komentář: příkaz nemaže původní soubory ve složce, ale přidá ke každému upravovanému souboru na konec ještě jednou příponu .wav, kterou lze v případě potřeby hromadně odstranit např. programem pyRenamer, o kterém se tu už psalo. Před zadáním příkazu je ovšem nejprve nutné přesunout se v terminálu příkazem "cd" do složky se soubory .wav určenými k úpravě!):

Kód: Vybrat vše

find . -name \*.wav -exec sox \{\} \{\}.wav silence 1 0.1 -73d reverse silence 1 0.1 -73d reverse \;
Principiálně by se stejným způsobem daly asi hromadně upravovat (třeba zmenšovat) i fotografie... při zachování původního názvu. Jen místo programu SoX využít v terminálu třeba Imagemagic. To jsem se zatím ale neodvážil vyzkoušet.

Odpovědět