Fedora 34 se povedla, dokonce přes počáteční odpor jaksi předem jsem si zvykl na Gnome 40 a koukám, ono to není tak špatné. Jediný skutečný problém je, že od přechodu na PipeWire nefunguje zvuk v MS Teams. Je to známý problém a chyba bude dost možná na straně Teams, ale i tak, kdyby někdo měl nějaký trik, jak to zatím řešit, předem děkuji (tedy kromě evidentní možnosti zůstat u Fedory 33 dokud se to nevyřeší).
Ono to v prohlížeči funguje - ale jen naoko. S Firefoxem vás to pošle do háje rovnou a v chromiu to funguje jen pokud si nainstalujete "openh264" plugin od Cisca (na kterém není open vůbec nic). Pravda, nezkoušel jsem konqueror, ale to snad ani není potřeba. Prostě pokud máte čistě open source webový prohlížeč, můžete v MS Teams zapomenout na video. Vinu nesou společně Microsoft (který se rozhodl ignorovat vp8/vp9 a podporovat výhradně H.264) a Google (který se rozhodl, že ffmpeg sice bude používat na přehrávání videa, ale pro encoding WebRTC bude podporovat jen openh264).
na kterém není open vůbec nic
Jakto? Je to normálně pod BSD licencí, má to veřejný git repozitář, do kterého přijímají příspěvky (my jsme do něj přispěli dost podstatně tím, že jsme doimplementovali podporu pro High Profile, aby kromě video konferencí zvládl také přehrávat klasická videa v H.264).
Co se týče kódu, tak je to naprosto otevřené. Ano, pokud to chcete legálně distribuovat v zemích jako USA, tak binárku musíte stahovat ze serverů Cisca. Takové je to licenční ujednání Cisca s drželi patentů. Nevím, v čem by to mělo být méně otevřené než třeba x264. Obojí si můžete sestavit a distribuovat, jak chcete, na vlastní riziko bez licence na patenty.
Ve Fedoře musí být jakýkoliv software (s výjimkou nějakých firmwarů) sestavený v naší infrastruktuře, takže se to dělá tak, že openh264 se sestaví a podepíše u nás a potom se to nahraje na servery Cisca, odkud se to distribuuje k uživatelům, aby se splnily podmínky patentové licence.
Teoreticky... v praxi to bohužel tak růžové není. Např. tady čtu: "Fedora’s Chromium package does not support h264, mp3, or aac because of legal concerns." a ve zdrojácích chromia vidím
rtc_use_h264 =
proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang)
S ffmpeg by ten problém byl snadno řešitelný, ale v Googlu bohužel rozhodli, že H.264 pro WebRTC budou podporovat jen s openh264 a ještě jen se staticky nalinkovaným.
Pokusím se to vysvětlit:
Jedna věc je samotná implementace kodeku. Máme tu x264 a openh264. Oba ty kodeky jsou pod open-source licencí, mají otevřené zdrojáky a otevřený vývoj. Pokud neřešíte patenty, můžete oba použít zcela volně.
Druhá věc je patentové právo. Abyste ty kodeky mohl jako binárky legálně distribuovat zákazníkům, musíte mít licenci na patenty na H.264. To vám ani jeden projekt nedává. U openh264 se ale můžete dohodnout s Ciscem, že tu binárku budete distribuovat přes ně, protože oni mají patentové ujednání, které jim to umožňuje. To není nějaké omezení openh264 oproti ffmpeg/x264, ale věc navíc, kterou ffmpeg/x264 prostě nenabízí.
A to je ten hlavní důvod, proč řada projektů preferuje openh264, protože je to kryje z pohledu patentového práva. A přesně z toho důvodu používáme ve Firefoxu nejen na WebRTC, ale nyní i na přehrávání videa openh264 a máme to i jako plugin do GStreameru, protože to můžeme právně bezpečně dát uživatelům out-of-the-box.
Nevím, jak si vykládat tu poznámku o Chromiu. H.264, MP3 i AAC jsou všechno kodeky, které jsou ve Fedoře podporované by default. Problém bude asi v tom, že Chromium natvrdo závisí na ffmpeg, který je pro Fedoru ve formě "buď všechno nebo nic", člověk si tam nemůže jednoduše vybrat jako rozinky ty kodeky, které jsou pro něj bezpečné. Vím, že openSUSE má vybrakovaný ffmpeg, aby tam byly jen kodeky, které nejsou patentově chráněné. My jsme to taky zvažovali a nakonec od toho upustili, ty kodeky poskytujeme jinou formou, ale nás zajímá Firefox jako výchozí prohlížeč a GStreamer.
Taky mi není jasné, co je tak jednoduše řešitelné s ffmpeg, ale není s openh264, protože to, co řeší openh264, právě ffmpeg vůbec neřeší. Ano, můžete zcela legálně distribuovat x264, ale pak to musíte udělat jako Google, který si platí licence k patentům za použití v Chromu. Jenže Google vás pod svá křídla nevezme, Cisco s openh264 ano.
Taky mi není jasné, co je tak jednoduše řešitelné s ffmpeg, ale není s openh264, protože to, co řeší openh264, právě ffmpeg vůbec neřeší.
Já to vidím spíš naopak. S ffmpeg mám možnost (tak, jak to dělá openSUSE) dát do distribuce "právně bezpečný" build, proti kterému se dynamicky linkují aplikace, takže uživatel si ffmpeg může snadno nahradit plnohodnotnou verzí, ať už z Packmana nebo vlastnoručně přeloženou. Díky tomu mi H.264 ve Firefoxu funguje i bez openh264 - ale MS Teams se s Firefoxem bohužel nebaví.
Na druhé straně si sice můžu přeložit openh264 jako dynamickou knihovnu - a nebo třeba stáhnout tu od Cisca, ale zatím jsem nepřišel na způsob, jak donutit distribuční chromium, aby ji použilo. Ať jsem zkoumal, jak jsem zkoumal, vypadá to, že chromium prostě natvrdo počítá s tím, že se do něj staticky nalinkuje to, co mají zkopírované ve zdrojácích pod third_party/openh264. A to je problém, protože v distribuci tahle věc musí být vypnutá, takže jsem odkázán na to, že si buď někde stáhnu hotový build od někoho, kdo za mne zaplatil výpalné, nebo si pokaždé sám přeložím celé chromium (teď jsem to zkoušel, 102 minut na Ryzenu 5900X s buildrootem v tmpfs, při frekvenci updatů chromia nic lákavého - a do OBS to téměř jistě offloadovat nesmím).
Perlička na závěr: teď jsem s tím vlastnoručním buildem zkusil nějaké webové testy a vypadá to, že H.264 ve WebRTC stejně nefunguje. :-(
Jediný skutečný problém je, že od přechodu na PipeWire nefunguje zvuk v MS Teams
Říkal jsem si, že to u sebe vyzkouším. Nainstaluju aplikaci MS Teams, bude to rychlé, účet u Microsoftu přece mám. Jenže aplikace mě k nějaké dodatečné registraci přesměruje na web, tam po několika krocích zjistím, že Firefox není podporovaný prohlížeč. Otevírám tedy Chrome, registraci dokončím a mám před sebou webové rozhraní Teams. Otevírám aplikaci, přihlásím se a dostanu hlášku "V aplikaci Teams ještě nejste zařazeni, ale můžete vytvořit účet pro vaši organizaci".
Vzdávám se. Na toto nemám nervy. Je divné, že si Teams s PipeWire nerozumí. Pokud to používá správně používá API pro PulseAudio... Jinak doporučuji vyzkoušet nejnovější verzi. Třeba s verzí 3.26-3 mi zmizely veškeré drobné problémy s Bluetooth a už je venku 3.26-4, která zase přináší řadu fixů.
Ja mám od update na F34 poprehadzované vstupy a výstupy. Napríklad na svojom default výstupe (usb soundbar pod monitorom) som musel zmeniť výstup z Analog na Digital - aj keď som na železe nič nemenil a výstup je stále reálne analógový.
No a konkrétne v Teams mi nikdy nefungovalo zdieľanie obrazovky. Zobraziť powerpoint to vie, obrazovku vyzdieľať nie.