Byla vydána nová stabilní verze 3.21.0, tj. první z nové řady 3.21, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu architektury Loongson LoongArch64.
Hodnota Bitcoinu, decentralizované kryptoměny překonala 100 000 dolarů (2 390 000 korun).
Hurl byl vydán ve verzi 6.0.0. Hurl je nástroj běžící v příkazovém řádku, který spouští HTTP požadavky definované v textovém souboru.
Výsledek hlasování: Výchozím grafickým motivem Debianu 13 aneb Trixie bude Ceratopsian.
Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 5 Ultra.
Mobilní Datovka, tj. svobodná aplikace pro přístup k datovým schránkám pro zařízení s operačním systémem iOS a Android, byla vydána v nové verzi 2.2.0. Nově lze nastavit vlastní obrázky pro jednotlivé datové schránky pro jejich lepší identifikaci v seznamu schránek. Přidán byl editor vnitřních nastavení aplikace, který slouží jako přehled všech hodnot, které aplikace udržuje.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem letos věnovala 1,1 milionu dolarů na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Peníze byly rozděleny mezi Electronic Frontier Foundation (EFF), Public Knowledge, ARTICLE 19, Demand Progress, European Digital Rights (EDRi), Fight for the Future, The Markup, OpenMedia, Restore the Fourth, Signal, Surveillance Technology Oversight
… více »LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl vydán ve verzi 1.2.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Vypíchnut je import knihoven KiCadu. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Při mezinárodní operaci byla zablokována pokročilá služba pro šifrovanou komunikaci MATRIX, oznámil úřad pro evropskou justiční spolupráci Eurojust. K uzavření služby podle něj vedlo vyšetřování společného týmu, na němž se podílely francouzské a nizozemské úřady a který byl zřízen při Eurojustu. Službu podle něj využívaly kriminální živly. Tato služba MATRIX nemá nic společného s nadací Matrix a protokolem Matrix.
Ano, uznávám, pomalu, ale jistě to na mém blogu vyhnívá... hlavně kvůli nedostatku času a nápadů, co si budeme povídat :-/ No a jelikož se většina mých zápisků v poslední době čím dál tím více odchylovala od zaměření ABC Linuxu, rozhodl jsem se založit tématicky volný blog Letters from Earth, na který jsem zároveň přesunul zápisky odsud za poslední půlrok.
FuxBlog budiž tedy nadále ryze technickým blogem se zaměřením na IT. Snad na něj budu mít čas...
Jako správný hudební závislák se často potýkám s problémy úprav hudebních souborů, a jelikož hudby stále jen přibývá, je třeba řadu jednoduchých úprav hudebních souborů automatizovat. K tomu lze velmi dobře využít skriptování operací v bashi.
Jedním z formátů, ve kterých často umisťují autoři na své stránky ukázky ze svých alb, je formát Windows Media Audio, známý ve zkratce jako WMA. Ačkoliv ještě před nějakým časem byl problém tento formát na Linuxu přehrát (dodnes jej některé přehrávače nepodporují), dnes je již situace mnohem lepší a tolik vrásek jako dříve již soubor s příponou .wma nenadělá. To nic ovšem nemění na faktu, že hudbu zasaženou formátem WMA nelze nijak editovat a i kdybychom toto dělat nechtěli, jeden .wma soubor mezi tolika .mp3 vypadá docela exoticky. Kromě toho stále existují zařízení, které si s formátem WMA neporadí.
Zde se nabízí možnost využít jednoduchý skript, který nám nehezké WMA převede do mnohem sympatičtějšího formátu MP3. Jeho kód je následující:
#!/bin/sh # wma2mp3.sh # skript pro prevod WMA souboru do MP3 # vyzaduje: # mplayer - pro dekompresi wma # lame - pro kompresi do mp3 for file in *.[Ww][Mm][Aa] do mplayer "$file" -ao pcm lame -h --abr 192 audiodump.wav "`echo $file | sed 's/[Ww][Mm][Aa]/mp3/'`" unlink audiodump.wav donePodívejme se nyní, jak takovýto skript funguje. Řádky v úvodu skriptu označené mřížkou (#) jsou komentáře a jejich obsah nemá na funkci skriptu vliv. Jediným speciálním komentářem je zde
#!/bin/sh
. Tímto komentářem je zvykem uvozovat bashové skripty. Podobným komentářem je například #!/usr/bin/perl
, podle kterého lze rozeznat, že uvedený skript je spustitelný za pomoci Perlu.
Následuje smyčka for (do - done)
, známá z jiných programovacích jazyků. V tomto případě probíhá pro všechny hodnoty proměnné file
(jména souborů) z výběru uvedeného za slovem in
. Tento výběr je proveden regulárním výrazem (zapsaným v hranaté závorce), aby byly vybrány všechny WMA soubory bez ohledu na velikosti písmen v příponě souboru (tedy *.wma, stejně jako *.WMA či *.Wma). Více o regulárních výrazech dostupných v bashi viz man grep
, kde jsou popsány v závěru manuálu.
Jádro skriptu je pak vyjádřeno následujícími třemi příkazy. První z nich volá program mplayer
, který je schopen přehrávat WMA soubory. Jako výstup mu přepínačem -ao pcm
nastavuje soubor, kterým (není-li zvoleno jinak) je soubor audiodump.wav
. Ten je následně programem lame
enkódován do formátu MP3 s proměnným datovým tokem s průměrem kolem 192kbps (volba --abr 192
). Po dokončení převodu je soubor audiodump.wav
smazám příkazem unlink
.
V parametrech k příkazu lame
se nachází na místě cílového souboru následující řetězec
"`echo $file | sed 's/[Ww][Mm][Aa]/mp3/'`"
Úkolem tohoto příkazu je vzít původní jméno souboru, odstranit z něj příponu wma (Wma, WMA, a pod.) a nahradit ji cílovým mp3. Toho je dosaženo následovně:
příkaz echo $file
odešle na výstup (stdout
) hodnotu proměnné file
(jméno souboru), kterou odchytí program sed
, vyhledá všechny výskyty "wma" (velkými i malými písmeny), nahradí je textem "mp3" a pošle dál již jako parametr pro program lame
. To vše je uzavřeno v uvozovkách ( " ), aby nebylo potřeba řešit mezery v názvu souboru.
Příkazu sed
, zvláště jeho volbě 's/[Ww][Mm][Aa]/mp3/'
je zde vhodné věnovat více pozornosti, neboť je mocně využíván v dalším skriptu. Uvedená volba zajišťuje, že v přijatém řetězci je hledán výraz 1 a nahrazen je výrazem 2 (pro sed 's/vyraz1/vyraz2/'
). Výrazem 1 pak může být regulární výraz ve smyslu uvedeném v man grep
, výraz 2 pak může být i nulový (pro sed 's/vyraz1//'
) a lze tak vymazat řadu znaků.
Druhý skript je již delší a je určen pro změnu bitrate u MP3 souborů. Tato možnost se nám může hodit například v případě, že máme doma v počítači svou hudbu uloženou v nejvyšší kvalitě a chceme jí dostat do svého MP3 přehrávače v kvalitě nižší, aby se jí tam vešlo co nejvíce. Sám o sobě by tento skript byl jednoduchý, KDYBY... V tomto případě je tím kdyby ztráta informací z ID3 tagů při rekompresi MP3 souborů. Stejně jako v předchozím případě, i zde je pro rekompresi použit program lame
, který doplňuje program id3v2
, s jehož pomocí jsou přeneseny ID3 tagy upravovaných souborů.
Skript plnící uvedenou funkci pak může vypadat takto:
#!/bin/sh # mp3recompress.sh # skript pro zmenu bitrate mp3 # vyzaduje: # lame - pro rekompresi # id3v2 - pro prenos ID3 tagu mkdir recompressed for file in *.[Mm][Pp][3] do lame -h --mp3input --abr 192 "$file" ./recompressed/"$file" if [ `id3v2 -l "$file" | grep id3v2`== $null ]; then title=`id3v2 -l "$file" | grep Title | sed 's/Title : //' | sed 's/ [[:print:]]*//'` artist=`id3v2 -l "$file" | grep Title | sed 's/[[:print:]]*Artist: //' | sed 's/ [[:print:]]*//'` album=`id3v2 -l "$file" | grep Album | sed 's/Album : //' | sed 's/ [[:print:]]*//'` year=`id3v2 -l "$file" | grep Album | sed 's/[[:print:]]*Year: //' | sed 's/,[[:print:]]*//'` genre=`id3v2 -l "$file" | grep Album | sed 's/[[:print:]]*(//' | sed 's/)//'` else title=`id3v2 -l "$file" | grep TIT2 | sed 's/[[:print:]]*: //'` artist=`id3v2 -l "$file" | grep TPE1 | sed 's/[[:print:]]*: //'` album=`id3v2 -l "$file" | grep TALB | sed 's/[[:print:]]*: //'` year=`id3v2 -l "$file" | grep TYER | sed 's/[[:print:]]*: //'` genre=`id3v2 -l "$file" | grep TCON | sed 's/[[:print:]]*(//' | sed 's/)//'` fi id3v2 -t "$title" -a "$artist" -A "$album" -y "$year" -g $genre ./recompressed/"$file" doneNa první pohled v tomto skriptu nejvíce udeří do očí rozsáhlé využití příkazu
id3v2
. Pomocí tohoto příkazu lze z konzole prohlížet a editovat ID3 tagy v MP3 souborech. Podívejme se nejprve na jeho výstup v případě souboru, který je opatřen pouze ID3v1 tagem (příkaz id3v2 -l soubor.mp3
): pushkin@pushkin:~/Audio/Albums/Edguy/Edguy - 2006 - Rocket Ride> id3v2 -l "01 - Sacrifice.mp3" id3v1 tag info for 01 - Sacrifice.mp3: Title : Sacrifice Artist: Edguy Album : Rocket Ride Year: 2006, Genre: Heavy Metal (137) Comment: Track: 0A nyní výstup v případě, že v souboru je přítomen pouze ID3v2 tag:
pushkin@pushkin:~/Audio/Albums/Edguy/Edguy - 2006 - Rocket Ride> id3v2 -l "01 - Sacrifice.mp3" id3v2 tag info for 01 - Sacrifice.mp3: TIT2 (Title/songname/content description): Sacrifice TPE1 (Lead performer(s)/Soloist(s)): Edguy TALB (Album/Movie/Show title): Rocket Ride TYER (Year): 2006 TCON (Content type): Heavy Metal (137)Jsou-li pak přítomny oba tagy, je výstup součtem obou uvedených. Odsud plynou dva základní kameny úrazu uvedené utility, které nepříjemně natahují výsledný skript:
if - else
.
Co ale skript dělá od svého spuštění. V prvním kroku je za pomoci příkazu mkdir
vytvořen adresář recompressed
, do kterého jsou ukládány výstupní soubory. Následuje známý cyklus for
pro proměnnou file
, která je tentokráte vybírána za pomoci regulárního výrazu ze všech mp3 (Mp3, MP3, mP3) souborů v adresáři, kde je skript spuštěn. Následuje samotná konverze souboru MP3 do MP3 s průměrným datovým tokem 192kbps. Zde je vstupem MP3 soubor (--mp3input)
) a výstupní soubor je umístěn do adresáře recompressed
(./recompressed/"$file"
). Do tohoto souboru jsou na konci skriptu zapsány informace vytažené z originálního souboru utilitou id3v2
.
Nyní k tomu, jakým způsobem jsou informace z originálního souboru zpracovány. Nejprve se zkontroluje výstup programu id3v2
pro originální soubor, zda je v něm obsažena zmínka o ID3v2 tagu. To je provedeno příkazem:
id3v2 -l "$file" | grep id3v2
Zde je použit příkaz grep
, který v případě nalezení řetězce id3v2 vypíše celý řádek, ve kterém je zmíněn. Pokud přítomen je, je výstup nenulový, pokud ne, je výstup nulový (==$null
) a předpokládá se, že v souboru je ID3v1 tag, a tedy proběhne první větev podmínky if
, která je psána pro ID3v1 tagy.
Zde jsou jednotlivě čteny hodnoty do proměnných odpovídajících jednotlivým položkám v ID3 tagu, například pro jméno skladby jsou provedeny následující úkony:
nejprve je příkazem id3v2 -l
vypsán ID3 tag souboru,
z něhož je příkazem grep Title
vybrán pouze řádek obsahující název skladby.
Z tohoto řádku je následně příkazem sed 's/Title : //'
odstraněn popisek uvozující název skladby
a nakonec je odstraněno vše za názvem skladby příkazem sed 's/ [[:print:]]*//'
.
Konec názvu stopy je zde pak rozeznán podle dvou za sebou jdoucích mezer. To vše dohromady pak tvoří řádek
title=`id3v2 -l "$file" | grep Title | sed 's/Title : //' | sed 's/ [[:print:]]*//'`
Oproti předchozím použitím programu sed
je zde využito možnosti použít regulárních výrazů. Prostřední sekvence v parametru sed
(" [[:print:]]*
") pak sed
u říká následující:
Vyhledej všechny tisknutelné znaky (regulární výraz "[[:print:]]
") v jakémkoliv počtu ("*
"), které následují za dvěma mezerami (" ").
Tyto znaky jsou pak vymazány.
Kdyby se za hvězdičkou v tomto příkazu vyskytoval nějaký další znak, budou vymazány pouze znaky nacházející se před tímto znakem včetně. Toho je využito u vyhledávání jména interpreta
artist=`id3v2 -l "$file" | grep Title | sed 's/[[:print:]]*Artist: //' | sed 's/ [[:print:]]*//'`
Zde jsou příkazem sed
vymazány všechny znaky před řetězcem uvozujícím jméno interpreta (sed 's/[[:print:]]*Artist: //'
). Uvedených schopností sed
u je pak ve skriptu využito několikrát v různých obměnách.
A na závěr zmínka o velmi užitečné konzolové utilitě pro bezeztrátovou změnu hlasitosti MP3 souborů. Kromě výše uvedených činností je ještě velmi časté skládání vlastních výběrů do MP3 přehrávače. Tyto výběry, pokud zabírají širší časové období (například jsou tvořeny skladbami z intervalu několika desetiletí), trpí jedním vážným nedostatkem - zvláště starší hudební CD byly nahrávány s nižší hlasitostí, než jsou současné standardy, a ve výběru mají tedy nižší hlasitost nežli ostatní skladby. K odstranění této závady lze využít právě mp3gain
. Nejprve srovnejme hlasitost všech hudebních souborů ve složce:
mp3gain -r *.mp3
Zde je během průběhu možné sledovat, že jednotlivé skladby mají mírně odlišnou hlasitost. mp3gain
skladbám hlasitost spíše ubírá, proto je nutné je po prvním srovnání ještě dodatečně zesílit:
mp3gain -g +5 *.mp3
Nyní již mají všechny skladby ve složce stejnou hlasitost. Kromě uvedených stojí ještě za zmínku přepínač -a
určený pro úpravu hlasitosti celého alba.
Tiskni Sdílej:
dvd ( mp3 ), v aute ( mp3 a ogg ), v mobile ( mp3 )aha, tady to vzniklo. ani jedno z těch zařízení pro mne není mp3/mp4 přehrávač. pro mě je označení přístroje současně definicí jeho hlavní fce, takže mp3/mp4 přehrávač jsou u mě zařízení jako sandisk sansa, ipod, zune atd. to, cos vyjmenoval ty je: stolní dvd(/divx) přehrávač, autorádio a mobilní telefon.
Ono je otazka, jestli u 'autoradia' neni uz dnes hlavni funkce prehravani digitalni ulozene hudby (mp3) spis nez prehravani radia.
To byl vtip? Možná tak pro mladýho kluka v Golfu-II o zdvojnásobené hodnotě auta za pomoci audiosystému
Mi "starý dědci" máme v rádiu dopravní informace, zprávy a hlavně "tupláky".
- proč bys měl mít potřebu něčí skladby editovat?Důvodů může být několik, už třeba kvůli následné změně hlasitosti, případně když si chci nějakou pasáž skladby vytřihnout (třeba jako vyzvánění, ukázku, v případě více spojených stop dohromady apod.). Prostě si se zvukem rád hraju a WMA pro to není úplně optimální formát Jinak díky za připomínky. Čtenáře se balamutit nesnažím, jen jsem psal ze své osobní zkušenosti, která plyne z toho, že můj Creative MuVo s přehledem zvládá jak WMA, tak MP3, jakýsi výrobek, který vlastní přítelkyně WMA nezvládne a všechny WMA jí musím převádět na MP3. Tu poznámku s MP3 přehrávači odstraním. Samostatnou záležitostí je kvalita formátu MP3, to samo osobně je trochu základ na flame, takže to nechme být Prostě konstatujme že jde o formát oblíbený a hodně využívaný.
Moje zkušenosti s WMA jsou podobné, stolní DVD (carefour či co?) je nepřehraje, empétrojka přítulky (tesco či co?) přehraje pouze některé (proč?), jinak v počítači je mi formát celkem jedno...
Nesouhlasím. Převádět např. 320 kbps wma na 192 kbps mp3 mi přijde zcela kosher.
Není uplně jasné, že mp3 192 kbps vytvořené z původního zdroje je lepší než se zdroje s dosti vyšším bitrate. Osobně se domnívám, že tyto dvě mp3 shodného bitrate jsou kvalitativně nerozlišitelná. A proč to dělat? Např. proto, že můj přehrávač má jen 256 MB a neumí wma.
Podle mě je spíš zabedněný hlupák ten, který pronáší podobné obecné soudy... Sám wma do mp3 občas převádím, mám pro to tyto dva důvody:
a) Editace v Audacity. Jsem muzikant, občas potřebuju nějakou hudbu přepsat do not (na odposlech některých pasáží se hodí ekvalizace, změna výšky, změna tempa a různé další úpravy). Takže jak vidíš, přčestože ty potřebu skladby editovat nemáš, mnozí ji mají.
b) Poslech. Používám spokojeně mpd, které wma nepodporuje (pokud vím, podporuje pouze mp3, ogg, FLAC, AAC, mod, a wav).
Editace v Audacity. Jsem muzikant
Žasnu. To opravdu při editaci hudby používáte ztrátový formát? Čekal bych převod do PCM wavu nebo něčeho nativního pro ten editor a nakonci editace případný převod do něčeho úspornějšího.
Z pokračování toho co jsi začal citovat není cítit, že všechny úpravy na konci zahodím? Potřebuji je jen dočasně, pro odposlech...
Na vstupu bych samosebou chtěl mít co nejkvalitnější materiál, ale holt je potřeba vystačit si s tím, co je zrovna k dispozici.
- wma je bezproblémově přehratelné
Není. Alespoň u mne ne. Můj telefon, Palm, ani discman si s WMA neporadí. Qmmp mi při přidávání WMA do playlistu někdy spadne.
- proč bys měl mít potřebu něčí skladby editovat?
Hahahahaha!
- proč převádíš do kvalitativně horšího formátu mp3?
Je přehratelný všude a v případě toho "všude" se o něco nižší kvalita příliš neprojeví.
wma je bezproblémově přehratelnéJak kde a jak kdy... Mezi X přehrávači (míněno tím věci typu iPod, iRiver), které žijí okolo mě je těch, co umí wma tak max 50%... A lidí, kteří si ode mě hudbu berou je dost na to, aby se mi vyplatilo si to převést
proč bys měl mít potřebu něčí skladby editovat?Vedle možnosti, že je to vaše práce (Olympus diktafony nahrávají do wma), se vám, obzvlášť pokud děláte nějakou práci s dětmi/mládeží, přihodí ta věc, že potřebujete udělat nějakou znělku, naskládat/prolnout některé písničky do jedné apod...
Nebylo by lepsi pouzit na takovou manipulaci gstreamer? Po pochopeni zakladni filosofie to ma hromadu ficur, ktere lze ovladat konzistentne. Driv jsem taky bojoval s kombinacemi mplayer/ffmpeg/lame atd, ale gstreamer mi prijde po vsech strankach modernejsi. Viz man gst-launch-0.10
Takovy primer (vzhledem k architekture gstreameru) mi evokuje "Ja mam DOS prikazovy radek, ja zadny shell nepotrebuju".
bezvadnej clanek, uzitecnej, diky
Jen tak pro info k tem rozdilum v hlasitosti, zvysovanim hlasitosti tech starych skladeb tomu moc nepomuzete:
Dovolil bych si vyjádřit nesouhlas s tvrzením, že méně hlasité nahrávky jsou jaksi "vadné". Je tomu právě naopak. Zjevně by si autor článku měl doplnit informace např. zde:
kua... pozdě!
je ti doufam jasne, ze ty skripty se ti rozbijou na spouste nestandardnich znaku v nazvech?
id3v2
.
ffmpeg -i $file $file.mp3
Popř. celý alias na kompletní převod složky
alias wma2mp3='mkdir wma;for file in `find -type f`;do ffmpeg -i $file $file.mp3;mv $file wma/;done'
$(echo ... | sed ...)a začne je používat místo efektivnější a navíc v tomto případě správnější shellový substituce, tak je to spíš na škodu. Pak lidi napadne napsat věci jako jsem tady zahlíd, třeba
for z in $(find -type f) ...
Ja to tak pisem vzdy, prave preto, ze som to proste niekde odkukal a funguje to. Ako je to spravne?for z in $(find -type f) ...
for z in 'find -type f'?
find -type f | while read z ...a když chceš pro každej soubor pustit jen jeden příkaz, tak (např.)
find -name '*.mp3' -type f -exec lame --decode "{}" \;
Nejdříve musím pochvílit tento článek. Moc se mi líbí a děkuji za něj.
Na druhé straně WMA dnes podporuje kdeco, snad skoro všechno na co sáhnu. Je to možná i tím, že licenční politika WMA je jasná - zaplatíte MS a je to, u MP3 nikdo pořádně neví na čem je. Ale převádět jeden formát ve ztrátové kompresi do jiného formátu ve ztrátové kompresi musí znamenat dosti tvrdou ztrátu kvality, a musí to v zásadě být i slyšet.
Díky moc!