Mikrokontroléry RP2350A a RP2350B jsou již volně v prodeji. Představeny byly v srpnu loňského roku společně s Raspberry Pi Pico 2.
GIMP 3.0 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
Od 6. do 19. dubna proběhne volba vedoucího projektu Debian (DPL, Wikipedie) na další funkční období. Kandidují Gianfranco Costamagna, Julian Andres Klode, Andreas Tille a Sruthi Chandran.
Korespondenční seminář z programování (KSP) pražského Matfyzu pořádá i letos jarní soustředění pro začátečníky. Zváni jsou všichni středoškoláci a starší základoškoláci, kteří se chtějí naučit programovat, lépe uvažovat o informatických úlohách a poznat nové podobně smýšlející kamarády. Úplným začátečníkům bude určen kurz základů programování a kurz základních algoritmických dovedností, pokročilejším nabídneme různorodé
… více »Joe Brockmeier z Linux Weekly News vyzkoušel různé forky webového prohlížeče Mozilla Firefox: především GNU IceCat, Floorp, LibreWolf a Zen. V článku shrnuje, v čem se liší od výchozí konfigurace Firefoxu, co mají za vlastní funkcionalitu, jak a kým jsou udržované atd.
Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Když začne člověk trochu googlovat a zjišťovat, co a jak co podporuje, tak se dobere nemilého zjištění.
WebM/VP8 (libvpx)
Shrnuto a podtrženo, Opera, Firefox a Chrome tlačí webm, proti nim stojí Internet Explorer 9 a Safari, kteří tlačí h.264. A aby tomu nebylo málo, tak si navzájem píšou pluginy, aby ten svůj nej formát přehrála i konkurence. O Theoru nemá cenu v současné situaci přemýšlet.
Kdo si chce odzkoušet kompatibilitu, tak může nahlédnout třeba sem: HTML5 tests – video.
Nyní si ukážeme, jak převést (jedním průchodem) video do vhodného formátu tak, aby jej bylo možné přehrávat na webu. Jedná se čistě jen o ukázky, rozhodně zde nebudeme zkoumat a ladit parametry pro jednotlivé formáty tak, aby z toho vypadlo to nejlepší, a už vůbec nejsou určeny pro oči video-odborníka, který pozná i jeden pixel na špatném místě . Začneme tedy postupně:
WebM
avconv -i video.avi -acodec libvorbis -ac 2 -ab 128k -ar 44100 -vcodec libvpx -b 345k -bt 1000k -threads 0 -vf "scale=480:-1" output.webm
OGG
avconv -i video.avi -acodec libvorbis -ac 2 -ab 128k -ar 44100 -vcodec libtheora -b 345k -bt 1000k -threads 0 -vf "scale=480:-1" output.ogg
H.264
avconv -i video.avi -acodec libfaac -ac 2 -ab 128k -ar 44100 -vcodec libx264 -level 21 -refs 2 -b 345k -bt 1000k -threads 0 -crf 28 -vf "scale=480:-1" output.mp4 avconv -i video.avi -acodec libfaac -ac 2 -ab 128k -ar 44100 -vcodec libx264 -level 21 -refs 2 -b 345k -bt 1000k -threads 0 -crf 28 -vf "scale=480:-1" output.flv
Vysvětlivky zmíněných parametrů (více vizte v man page libav a x264)
-acodec = použitý kodek pro audio
-ac = počet kanálů
-ab = bitrate audia (bits/s)
-ar 44100 = vzorkovací frekvence audia (Hz)
-vcodec = použitý kodek pro video
-b = bit rate videa
-bt = bit rate tolerance (musí být větší jak „-b“)
-vf „scale=480:-1“ = video filtr pro zmenšení obrazu při zachování poměru stran „scale=480:-1“ = „480xAutomatická hodnota“, lze použít i naopak : „scale=-1:480“, nefunguje pro zvětšení videa
-threads = využití počtu threadů / jader, hodnota je „počet_jader -1“
-crf = (Constant Rate Factor) 18-28, čím menší, tím lepší kvalita a větší velikost, dobrý parametr pro hraní si v jednom průchodu.
Přehrávání je velmi jednoduché, stačí nám jen takovýto malý HTML dokument:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="html5,video,webm,h.264,ogg"> <meta name="description" content="Priklad pouziti html5 tagu video u webm,h.264,ogg"> <meta name="author" content="Max Devaine"> <title>HTML5 video tag</title> </head> <body> <video width="480" height="360" controls="controls"> <source src="output.webm" type="video/webm"; codecs="vp8, vorbis"> Váš prohlížeč nepodporuje html5 video tag. </video> <video width="480" height="360" controls="controls"> <source src="output.ogg" type="video/ogg" codecs="theora, vorbis"> Váš prohlížeč nepodporuje html5 video tag. </video> <video width="480" height="360" controls="controls"> <source src="output.mp4" type="video/mp4"; codecs="avc1.42E01E, mp4a.40.2"> Váš prohlížeč nepodporuje html5 video tag. </video> </body> </html>
Taktéž není problém použít multiple source, tzn., že budeme mít jedno přehrávací okénko a pokud nebude fungovat první zdroj, spustí se druhý atd.
<video width="480" height="360" controls="controls"> <source src="output.mp4" type="video/mp4"; codecs="avc1.42E01E, mp4a.40.2"> <source src="output.wemb" type="video/webm"; codecs="vp8, vorbis"> <source src="output.ogg" type="video/ogg"; codecs="theora, vorbis"> Váš prohlížeč nepodporuje html5 video tag. </video>Pro více vizte w3schools: HTML5 Video.
Pokud jste nahlédli na w3schools: HTML5 Video + DOM, tak víte, že ovládací panel videa je značně omezen. Ve skutečnosti základní ovládací panel neumí moc funkcí. Některé z nich:
src="output.webm" type="video/webm" poster=uvodni_orazek.png" preload="true" autoplay="autoplay" width="480" height="320" volume="muted" loop="loop"
Je vidět, že zásadně chybí fullscreen a jiné věci. Z těchto důvodů vznikly přehrávače v JavaScriptu, který toto všechno ošetřují a přidávají různé funkce. Těchto přehrávačů se vyrojilo celkem dosti, například:
videojs
jplayer
sublimevideo
mediaelementjs
A vůbec nějaké to srovnání, co je na trhu: HTML5_Player_Comparison
Jak vidíte, není to vůbec jednoduché. Podpora v prohlížečích není ani v jednom případě kompletní. Nejblíže je webm, ale bez pluginu pro Safari to není ono. Mnozí si řeknou, že použití multiple-source řeší situaci. Stačí použít první source pro h.264/mp4 a druhý source pro webm. Toto je ovšem řešení pro malé weby, kde duplicitní video nečiní velký problém. Ovšem u větších webů to problém je, jelikož si nemohou dovolit plítvat místem natolik, že budou mít jedno video ve více formátech. Bohužel, nesmíme ještě zapomenout na archivní záležitosti, jež se honosí jmény jako IE6, IE7, IE8 apod. Tyto prohlížeče stále používá nemálo lidí a nepodporují vůbec nic. Google se to snaží částečně napravit již zmíněným rozšířením "Google Chrome Frame", které se snaží udělat ze starších verzí IE něco lepšího, co i zvládá lépe test ACID3.
Když jsem navrhoval menší řešení pro jeden server, tak jsem doporučil použít jeden z nejlepších OSS přehrávačů – Flowplayer. Ano, tento přehrávač je Flash, ale pokud chcete mít maximální dostupnost a minimální náklady na storage, tak je toto zatím jediné řešení. S tímto pak souvisí použitý formát, ano, je jím H.264 v kontejneru flv. S tím si Flowplayer poradí a není problém s přehráváním. Flowplayer umí taktéž přehrát mp4 kontejner s H.264 za pomocí implementace HTML5 video tagu v prohlížeči, takže jen v Chrome, Safari, IE9.
Příklad převodu videa do H.264 + flv jsme si uvedli výše. Kdo má k dispozici jen *.mp4, tak jej nemusí překodovávat a může jen změnit kontejner, nějak takto:
avconv -i input.mp4 -vcodec copy -acodec copy output.flv
Upozorňuji, že u standardně nastaveného Flashe nejde příklad s videem níže lokálně přehrát, tzn. prostě otevřít HTML soubor v prohlížeči (file:///home/max/clanky/ffmpeg/test-html5.html). Pokud se o to budete pokoušet, tak zůstanete viset u načítání videa a nepustí vás to dál. Na takovéto pokusy je nejlepší spustit si u sebe na pc vhodně nastavený web server, abyste dokázali obstojně nasimulovat chování na internetu.
<html> <head> <title>Příklad nastavení základu pro flowplayer</title> <script src="flowplayer-3.2.6.min.js"></script> </head> <body> <div> <a href="output.flv" style="display:block;width:480px;height:320px;" id="player"> </a> <script language="JavaScript"> flowplayer("player", "flowplayer-3.2.7.swf", { clip: { autoPlay: false, autoBuffering: false, scaling: 'flip', //video bude držet poměr stran live: false, cachebusting: false }, plugins: { // disable autoloading of the controlbar plugin controls: { url: 'flowplayer.controls-3.2.5.swf', tooltips: { buttons: true, fullscreen: 'Enter fullscreen mode' }, play: true, pause: 'Continue playing', scrubber: true } }, // disable the "overlay play button" (for some reason this does not work in this forum) // play: null, // prevent pausing //onBeforePause: function() { //return false; //}, // make the video loop onBeforeFinish: function() { return false; } } ); </script> <div> </body> </html>
Více informací najdete v dobře popsané dokumentaci Flowplayer Configuration.
Proč všechno toto podstupovat? Řešit formáty, řešit přehrávače, řešit vhodné nastavení, když ve skutečnosti stačí jen málo, odevzdat video na youtube a na svoje stránky si umístit jen přehrávač, který načítá zmíněné video? Stačí jen nahlédnout do dokumentace YouTube APIs and Tools. Člověk poté brzo zjistí, co a jak, že stačí jen malý kod do stránek, jen si vybrat ze třech možností (API Overview Guide). My si zkusíme první možnost:
<object width="425" height="355"> <param name="movie" value="http://www.youtube.com/v/__fALdvvcM0?version=3&autohide=1&showinfo=0"></param> <param name="allowScriptAccess" value="always"></param> <embed src="http://www.youtube.com/v/__fALdvvcM0?version=3&autohide=1&showinfo=0" type="application/x-shockwave-flash" allowscriptaccess="always" width="425" height="355"></embed> </object>
Stačí tedy zkopírovat jednoduchý kód do stránek, upravit si ID videa (tučně zvýrazněná část, v našem případě „__fALdvvcM0“) a k němu popř. doplnit nějaké parametry, které zaručí chování přehrávače dle vašich představ. Parametry jsou krásně popsány na YouTube Embedded Player Parameters
Jak již bylo zmíněno v minulém článku, youtube v současné době používá tři formáty videa :
MPEG-4 AVC, H.264 + AAC + MP4 kontejner
MPEG-4 AVC, H.264 + AAC + flv kontejner
VP8 + Vorbis + webm kontejner
Možnosti přehrávání pomocí exprimentální podpory HTML 5 je popsáno na stránce Přehrávač videí YouTube HTML5.
Kdo si chce vyzkoušet přehrát nějaké webm video na YouTube, tak může třeba toto demo: WebM Demo with Leonardo Dicaprio
Kdo by se rád podíval blíže na formáty videí na youtube, tak si může stáhnout rozšíření do Chrome: Download YouTube Videos as MP4/FLV/WebM, které přidá tlačítko „Download“ pod video.
Video lze poslat na YouTube v těchto formátech: Formáty podporované službou YouTube
Prvním problémem může být použítí filtru pro automatický resize videa -vf "scale=480:-1"
. Mohou v nemálo případech nastat problémy typu :
ffmpeg -i video.avi -acodec libfaac -ab 128k -vcodec libx264 -level 21 -refs 2 -b 345k -bt 345k -threads 0 -crf 25 -vf "scale=640:-1" output.flv Crash report : [libx264 @ 0x98aca0] Default settings detected, using medium profile [libx264 @ 0x98aca0] height not divisible by 2 (640x357)
Filtr se snaží nastavit rozlišení výsledného videa na nepodporované.
Jednoduše řečeno, šířka a výška by měly být dělitelné dvěma. Když se snaží nastavit rozlišení 640:-1, tak je to u videa v příkladu :
w:640
h:357
To je samozřejmě špatně.
Člověk občas narazí na video, které má špatné meta tagy. Jedná se třeba o video v rozlišení:
w:640
h:480
A v meta tagu je vidět:
w:480
h:640
V takovém případě bude video v MPlayeru a i jiných přehrávačích přehráno správně (nehledě na to, co meta tagy říkají), ale ve webovém prohlížeči ne, ten se bude řídit meta tagy. Aspoň se tak většina chovala v době testování.
Dozvěděli jsme se, že máme několik možností pro umístění videa na své stránky:
Občas to zní hrozivě, zmínka o Flashi určitě vyvolala u nemálo lidí záchvat, ale situace se zlepšuje, můžeme jen doufat, že se plugin pro Safari dopíše co nejdříve a Chrome se zbaví podpory H.264, což by ještě více mohlo podpořit přechod webmasterů na webm. Na druhou stranu YouTube bez Flashe, to je asi hra na ještě hodně dlouhou dobu. Co myslíte vy?
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
avconv -i video.avi -acodec libvorbis -ac 2 -ab 128k -ar 44100 -vcodec libvpx -b 345k -bt 1000k -threads 0 -vf "scale=480:-1" output.webmJedna ze změn v avconvu je, že už se nepoužívá
-b/-ab
na video/audio bitrate, ale máme jedinou volbu -b
, která nastavuje bitrate obecně. Abychom určili, na jakém streamu ho chceme nastavit, použijeme specifikátor, např. -b:v/-b:a
je ekvivalent starých -b/-ab
. Výhoda tohoto zápisu je v tom, že se dá zobecnit na libovolný počet streamů. Např. -b:a:153
nastaví bitrate pouze na 154. audio streamu. To předtím možné nebylo.
Pro příkaz výše to znamená to, že volba -ab
sice zatím stále funguje (ale dlouho nebude) a opravdu nastaví bitrate pro všechny audio streamy, ale volba -b
ji přepíše.
avconv -i video.avi -acodec libfaac -ac 2 -ab 128k -ar 44100 -vcodec libx264 -level 21 -refs 2 -b 345k -bt 1000k -threads 0 -crf 28 -vf "scale=480:-1" output.mp4CRF je ratecontrol metoda, která se snaži vybrat bitrate tak, aby dosáhla určité požadované "kvality". To znamená, že nemá smysl zároveň nastavovat
-b
. Konkrétně se stane to, že -b
se ignoruje.