Raspberry Pi + Qt/QML + QtWebEngine + YouTube 1080p - da się
20.03.2017 13:33
Cześć wszystkim.
Jeśli ktoś z Was interesuje się Raspberry Pi i programowaniem w Qt QML itp. to mam dla Was dobrą wiadomość.
Jednym z ciekawszych problemów jest odtwarzanie materiałów z YouTube'a, w szczególności tych o lepszej jakości (720p, 1080p). QtWebEngine jest zbudowane o Chromium. Strony wczytują się zazwyczaj poprawnie.
Odtwarzanie video np. z YouTube'a to jednak problem dla procesora, który dekoduje strumień software'owo i obraz wyraźnie "czka" Domyślnie YouTube serwuje nam strumienie WebM. W czym rzecz ?
Można zmusić YouTube'a, aby strumieniował h264 (wymaga to wstrzyknięcia pewnego skryptu js na stronę). Z kolei domyślnie Chromium, na którym oparty jest QtWebEngine też dekoduje software'owo strumienie h264.
Jest jednak sposób, aby zmusić Chromium do skorzystania z dekodowania sprzętowego h264, w które wyposażone jest Raspberry Pi. Wymaga to jednak modyfikacji kodu Chromium, jednak efekty są conajmniej zadowalające i przy odtwarzaniu video tego typu można osiągnąć pewną płynność. Zużycie procesora wyraźnie spada, są czasem problemy (szczególnie przy 1080p), jednak to wynika już z mechanizmu renderowania obrazu do kontrolki.
Oto efekt: