Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Linux Chromium でビデオのハードウェアエンコード・デコードしたい
Kenichiro MATOHARA
April 24, 2021
Technology
0
220
Linux Chromium でビデオのハードウェアエンコード・デコードしたい
Kenichiro MATOHARA
April 24, 2021
Tweet
Share
More Decks by Kenichiro MATOHARA
See All by Kenichiro MATOHARA
小さなLinux互換カーネルのTilck
matoken
0
10
機械翻訳をローカルマシンで( ArgosTranslate/LibreTranslate )
matoken
0
120
OpenAIのWhisper でオフライン文字 起こし(STT)
matoken
0
79
Wikipedia を Offlineで楽しむ
matoken
0
61
Intel CPUでもAIに画像生成してもらう
matoken
0
150
AndroidスマートフォンのTermuxでモバイル回線の速度を定期的に計測
matoken
0
77
XFSのbigtimeを少し試してみた(RHEL9 & ML8.4)
matoken
0
41
ターミナルワークスペースのZellij
matoken
0
190
XFSのbigtimeを少し試してみた
matoken
0
110
Other Decks in Technology
See All in Technology
私見「UNIXの考え方」/20230124-kameda-unix-phylosophy
opelab
0
160
ROS_Japan_UG_#49_LT
maeharakeisuke
0
210
PCL (Point Cloud Library)の基本となぜ点群処理か_2023年_第2版.pdf
cvmlexpertguide
0
140
FlexScan HD2452Wの 後継を探して
tring
0
6k
Dev Containers ことはじめ - 失敗から学ぶ開発環境運用法
streamwest1629
0
310
- Rでオブジェクト指向プログラミング- クラス設計入門の入門
kotatyamtema
1
720
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
2
140
Multi-Cloud Gatewayでデータを統治せよ!/ Data Federation with MCG
tutsunom
1
170
Kaggleシミュレーションコンペの動向
nagiss
0
240
Virtual Thread - 導入の背景と、効果的な使い方 -
skrb
3
260
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
220
グローバルチームことはじめ / Bootstrapping a global team
tasshi
1
650
Featured
See All Featured
5 minutes of I Can Smell Your CMS
philhawksworth
198
18k
The Art of Programming - Codeland 2020
erikaheidi
35
11k
Robots, Beer and Maslow
schacon
154
7.3k
Rails Girls Zürich Keynote
gr2m
87
12k
Become a Pro
speakerdeck
PRO
6
3.2k
How to Ace a Technical Interview
jacobian
270
21k
We Have a Design System, Now What?
morganepeng
37
5.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
GitHub's CSS Performance
jonrohan
1020
430k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Building Your Own Lightsaber
phodgson
96
4.9k
How to name files
jennybc
47
73k
Transcript
Linux Chromium で Linux Chromium で ビデオのハードウ ビデオのハードウ ェアエンコード・ ェアエンコード・
デコードしたい デコードしたい Kenichiro Matohara(matoken) <
[email protected]
> 1 / 20
南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) Kenichiro Matohara(matoken) https://matoken.org https://matoken.org
2 / 20
最近の発表 最近の発表 link:https://speakerdeck.com/matoken/ 3 / 20
鹿児島らぐ 鹿児島らぐ 次回04/25( ) https://kagolug.org/ https://kagolug.org/ Cross Distro Developers Campと同じ日
鹿児島Linux勉強会 2021.04(オンライン開催) - connpass 4 / 20
Linux Chromium でビデオハード Linux Chromium でビデオハード ウェアエンコード・デコードし ウェアエンコード・デコードし たい たい
5 / 20
今の Video Card 今の Video Card Intel HD 4000とNVIDIA OptimusなGF117M(うまく動いてない)
$ lspci | grep -iE 'Graphic|3D' 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controlle 01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/6 6 / 20
Intel HD 4000 Intel HD 4000 $ lspci -vvvnnn -s
00:02.0 00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Con Subsystem: Lenovo 3rd Gen Core processor Graphics Controller [17aa:2200] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- Fa Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR Latency: 0 Interrupt: pin A routed to IRQ 33 IOMMU group: 2 Region 0: Memory at f1000000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at 7000 [size=64] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: i915 Kernel modules: i915 7 / 20
VAAPIでH.264いけそう VAAPIでH.264いけそう $ vainfo libva info: VA-API version 1.10.0 libva
info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: va_openDriver() returns -1 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_8 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.10 (libva 2.10.0) vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD 8 / 20
ウェブブラウザで使えるとビデ ウェブブラウザで使えるとビデ オミーティングで軽くなるので オミーティングで軽くなるので は? は? 9 / 20
chrome://gpu/ chrome://gpu/ Video Decode: Software only. Hardware acceleration disabled 10
/ 20
chrome://flags/#enable-accelerated- chrome://flags/#enable-accelerated- video-decode video-decode ※プロファイル単位で設定が必要 11 / 20
chrome://gpu/ chrome://gpu/ Video Decode: Hardware accelerated 12 / 20
Video decodeを試す Video decodeを試す データを用意 回線細いのでDLしてから再生を試みる Youtubeの4KビデオサンプルTop10 13 / 20
※発表時はav1なのに気づいていなかった $ youtube-dl https://youtu.be/Zk9J5xnTVMA -F : 248 webm 1920x1080 1080p
2543k , webm_dash container,
[email protected]
, 24fps, video 399 mp4 1920x1080 1080p 2557k , mp4_dash container,
[email protected]
, 24fp 137 mp4 1920x1080 1080p 3594k , mp4_dash container,
[email protected]
, 24fps, 400 mp4 2560x1440 1440p 7117k , mp4_dash container,
[email protected]
, 24fp 271 webm 2560x1440 1440p 7650k , webm_dash container,
[email protected]
, 24fps, video 401 mp4 3840x2160 2160p 11997k , mp4_dash container,
[email protected]
, 24 313 webm 3840x2160 2160p 16729k , webm_dash container,
[email protected]
, 24fps, vide : $ youtube-dl https://youtu.be/Zk9J5xnTVMA -f 400 # 1440p $ youtube-dl https://youtu.be/Zk9J5xnTVMA -f 401 # 2160p 14 / 20
mpv, vlc, ffplay 4kは無理,1440pはいける Chromiumでも同じ感じ すこしCPU 負荷が下がった?(10%〜?) ※発表時はav1なのに気づいていなかった 15 /
20
まとめ まとめ Google Chrome/Chromiumで設定でGPU触れるようになっていた Electronはアプリ毎に対応が必要そう は対応してるみたい Jitsi meet実行中に chrome://webrtc-internals で見るとcodecはVP8だっ
た NVIDIA GF117M がちゃんと動くと?? Jitsi Meet Electron 今回は第3世代目なのでVP8非対応,Core i5世代目以降だとVP8 decodeが入っているので良さそう 16 / 20
発表時のツッコミ等 発表時のツッコミ等 Rastaruzationで効いてない 「GPU rasterization」もenabled にすることで有効に :) Out-of-process Rasterization: Hardware
accelerated Rasterization: Hardware accelerated on all pages 17 / 20
18 / 20
発表後H.264でやり直し 発表後H.264でやり直し AV1で確認していたのでH.264に変換して再度確認 topやChromiumのタスクマネージャで確認したところChromiumの設 定を変えても負荷は変わらない? Video Decode: Software only. の状態でもGPUを利用し
ていそう? 19 / 20
奥付 奥付 発表 2021-04-24(Sat) 発表者 利用ソフトウェア ライセンス CC BY-NC-SA 4.0
東海道らぐ 春のあひる焼きフェスティバル Kenichiro Matohara(matoken) Asciidoctor Reveal.js 20 / 20