Byla vydána nová verze 10.0 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky ownCloud Infinite Scale a Uptime-Kuma.
Byla vydána nová verze 3.0.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Microsoft poskytl FBI uživatelské šifrovací klíče svého nástroje BitLocker, nutné pro odemčení dat uložených na discích třech počítačů zabavených v rámci federálního vyšetřování. Tento krok je prvním známým případem, kdy Microsoft poskytl klíče BitLockeru orgánům činným v trestním řízení. BitLocker je nástroj pro šifrování celého disku, který je ve Windows defaultně zapnutý. Tato technologie by správně měla bránit komukoli kromě
… více »Spotify prostřednictvím svého FOSS fondu rozdělilo 70 000 eur mezi tři open source projekty: FFmpeg obdržel 30 000 eur, Mock Service Worker (MSW) obdržel 15 000 eur a Xiph.Org Foundation obdržela 25 000 eur.
Nazdar! je open source počítačová hra běžící také na Linuxu. Zdrojové kódy jsou k dispozici na GitHubu. Autorem je Michal Škoula.
Po více než třech letech od vydání verze 1.4.0 byla vydána nová verze 1.5.0 správce balíčků GNU Guix a na něm postavené stejnojmenné distribuci GNU Guix. S init systémem a správcem služeb GNU Shepherd. S experimentální podporou jádra GNU Hurd. Na vývoji se podílelo 744 vývojářů. Přibylo 12 525 nových balíčků. Jejich aktuální počet je 30 011. Aktualizována byla také dokumentace.
Na adrese gravit.huan.cz se objevila prezentace minimalistického redakčního systému GravIT. CMS je napsaný ve FastAPI a charakterizuje se především rychlým načítáním a jednoduchým ukládáním obsahu do textových souborů se syntaxí Markdown a YAML místo klasické databáze. GravIT cílí na uživatele, kteří preferují CMS s nízkými nároky, snadným verzováním (např. přes Git) a možností jednoduchého rozšiřování pomocí modulů. Redakční
… více »Tým Qwen (Alibaba Cloud) uvolnil jako open-source své modely Qwen3‑TTS pro převádění textu na řeč. Sada obsahuje modely VoiceDesign (tvorba hlasu dle popisu), CustomVoice (stylizace) a Base (klonování hlasu). Modely podporují syntézu deseti různých jazyků (čeština a slovenština chybí). Stránka projektu na GitHubu, natrénované modely jsou dostupné na Hugging Face. Distribuováno pod licencí Apache‑2.0.
Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.
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.