WebRTC/Chromium在2020年的更新
正文字數:1892 ?閱讀時長:3分鐘
這些改變將使chromium和許多其他chromium/應用程序更容易使用!
作者 /?Jgrulich
原文鏈接 / https://jgrulich.cz/2020/12/18/webrtc-chromium-updates-in-2020/?utm_source=rss&utm_medium=rss&utm_campaign=webrtc-chromium-updates-in-2020
在2019年,我第一次嘗試對有關WebRTC的內容進行貢獻。這全部的內容都是支持dg-desktop-portal和PipeWire在Linux Wayland上關于屏幕共享的資訊。在那個時候,我們所面臨的情況是非常簡單的,我們只有PipeWire 0.2,并且所有門戶網站后端僅支持屏幕共享(不支持窗口共享)。盡管這相對容易,但是它并不理想,因為每個屏幕共享請求都涉及兩個門戶對話框,以獲取web頁面本身的屏幕內容。對我而言,這是一個巨大的成功,因為我為這樣一個被許多人使用、所有現代瀏覽器都在使用的大型項目做出了相當重要的貢獻。
在2020年初,也就是每個人都想從記憶中抹除這段回憶的一年,我們獲得了PipeWire 0.3(API略有不同),后來又有了xdg-desktop-portal-gtk和xdg-desktop-portal-kde(在今年晚些時候)人們終于能夠共享應用程序窗口。WebRTC缺少對所有這些功能的支持,因為在那時這些功能不可用。我想立即解決所有問題,提供對窗口共享的支持,并擺脫門戶網站的“dialog hell”,而門戶網站后端的新窗口共享功能則更加糟糕。
大概的情況就是上圖這樣。每次發出請求共享一個屏幕時,你都會從Chromium中獲得預覽的對話框。該對話框由三頁組成。一頁是用于屏幕共享,以發出一個門戶請求,第二頁是用于窗口共享,這是另一個門戶請求,最后一頁是允許共享已打開的web頁面。您必須確認兩個門戶對話框,然后確認Chromium對話框,最后你還會得到一個額外的門戶對話框來獲取web頁面本身的內容。
我有一個解決方案。我用一個ID進行了所有的門戶調用,并在Chromium預覽對話框的兩個頁面之間以及對網頁本身的請求中用Chromium共享了這個ID(門戶調用)。使用此解決方案,我們只有一個門戶對話框。這是一個完美的解決方案(至少看起來是這樣)。我從今年年初開始研究這個問題,我們與Chromium UX團隊的人員之間互通了很多電子郵件,因為我還想在預覽對話框中嘗試進行一些小的UI更改。不幸的是,由于為了保持與所有平臺的一致性,這些請求都被拒絕了。但是這也沒什么大不了的,我提交了我的更改以供審查,并保持UI的原樣不變,只是在Chromium和WebRTC中添加了所有必要的部分,以使其能夠正常工作。
我想說,雖然看起來從那以后事情進展順利,但事實恰恰相反。雖然我花了一段時間才將所有內容都看完,但這也并不奇怪,很多人在家的工作條件都不太理想。無論如何,幾個月過去了,我最終多次重寫了我的修改,甚至還沒來得及算上我花在這上面的時間。這一切都讓我沉迷于這種改變,我一直在思考如何做得更好,并且我常常在晚上解決一些問題,而不是花時間陪伴家人。把時間浪費在我心愛的Playstation上會更好。這對我的心理健康產生了非常負面的影響,我意識到這種情況必須停止,于是我干脆放棄了,因為我不能再這樣下去了,我需要休息一下。我放棄了兩個更改(WebRTC和Chromium),并決定只選擇我能夠完成的更改。我可能把我的改變做得太過雄心勃勃,太過復雜,或者可能只是Chromium還沒有準備好接受這種改變,因為有些調整是針對我的用例的。我也不希望上游開發者能給我更多的幫助,因為關于Wayland, portals和PipeWire以及如何將它們整合在一起還有許多需要理解的內容。
無論如何,我有了一個新的開始,在放棄改變后沒有壓力的情況下,我選擇了最重要的變更并將其分別提交。現在讓我感到驚訝的是,事情進展得如此順利,而這些變更的上傳速度如此之快。這些更改很簡單,易于理解且易于審核。我沒有完全放棄解決“dialog hell”的問題,我還有一些其他的想法,但是下次我將嘗試一步一步地提交它們,并在不占用我過多空閑時間的前提下。
在即將于2021年發布的Chromium中,你期待有什么變化?
支持PipeWire 0.3
你現在可以用PipeWire 0.2和PipeWire 0.3來構建Chromium/WebRTC。有一個新的“rtc_pipewire_version”選項可以傳遞給構建配置。
窗口共享支持
這個可能是不需要描述的。如果你不想共享整個屏幕,你可以共享應用程序窗口。
支持DmaBuf和MemFd緩沖區類型
這應該可以讓你的屏幕內容更快地從Wayland排版器通過管道傳輸到瀏覽器。
更少的門戶對話框
如果回頭看一下我上面發布的屏幕截圖,你會發現有兩個門戶對話框只為Chromium預覽對話框打開。我至少嘗試將其簡化為一個門戶對話框。這是通過刪除用于窗口共享的頁面來完成的,因為屏幕共享請求將同時處理屏幕和窗口。
我想您可以期待Chromium 89的上述更改,并且希望您至少能欣賞其中的一些改進,即使我沒有提供我想要的一切。此外,感謝我們的Firefox團隊的MartinStránsky,您可以期望所有這些更改也將成為Firefox的一部分。
新年快樂,祝你在新的一年里更加美好。
二〇二〇年對大部分人來說都不是特別順遂,我們曾經在新年伊始吐槽希望重啟二〇二〇,如今卻已經站在了年尾。
再見2020,你好2021。
LiveVideoStackCon 2021 ShangHai
這個世界沒有準備好這一說
機會和技術不會主動敲開你的門
LiveVideoStackCon 2021?上海站
北京時間:2021年4月16日-4月17日
點擊【閱讀原文】了解大會詳情
總結
以上是生活随笔為你收集整理的WebRTC/Chromium在2020年的更新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google发布Objectron数据集
- 下一篇: TikTok 英国业务亏损、苹果从中国应