本章主要記錄如何移植 nanogui 以及在 buildroot 下快樂編譯 ffmpeg:
- nanogui 是一個輕量級的圖形開發庫,底層使用 wayland 以及 opengles 進行加速渲染
- ffmpeg 是視頻處理不可或缺的一個開源中間組件,使用 buildroot 編譯起來簡直爽歪歪(之前我手工編譯過ffmpeg那是一個麻煩)
主要參考資料:[The Buildroot User Manual.pdf](The Buildroot User Manual.pdf)
1. nanogui 編譯
在編譯 nanogui 這里,修改相關的選項配置,采用 wayland以及openglES2作為底層加速。記得最重要的一點,我采用 nanogui倉庫的 glfw版本,一直出現問題,通過導出 WAYLAND_DEBUG=1
,發現提示如下錯誤run nanogui example1 on YY3568, but crashed:
xdg_surface@31: error 3: xdg_surface must not have a buffer at creation
后來采用上游的最新版本的 glfw 重新編譯 nanogui,就可以正常運行 nanogui 的 example 了。這里展示下截圖:
這部分我修改的代碼,在我fork 的 nanogui 倉庫的 yy2568分支,后續主要軟件開發也會在這個倉庫完成。
2. buildroot 編譯ffmpeg
在這個過程中,學習到了如何重新構建或者編譯單獨的 package,而不用重新構建整個buildroot,大概有幾種方法,最簡單的方法是刪除掉 output目錄對應build目錄下的包,比如想重新編譯 sdl2.那么需要刪除掉對應的 sdl2
還有其它的兩種方法,分別如下所示:
具體如何單獨編譯單獨的包,需要修改 SDK 的編譯腳本,主要修改的是文件device/rockchip/common/mk-buildroot.sh
,如下所示:
diff --git a/device/rockchip/common/mk-buildroot.sh b/device/rockchip/common/mk-buildroot.sh
index 95b96b6..f59cc83 100755
--- a/device/rockchip/common/mk-buildroot.sh
+++ b/device/rockchip/common/mk-buildroot.sh
@@ -26,6 +26,8 @@ fi
source $TOP_DIR/buildroot/build/envsetup.sh $RK_CFG_BUILDROOT
# 執行使用 brmake 腳本進行構建
+#$TOP_DIR/buildroot/utils/brmake sdl2-reconfigure &&
+# $TOP_DIR/buildroot/utils/brmake ffmpeg-rebuild
$TOP_DIR/buildroot/utils/brmake
if [ $? -ne 0 ]; then
為什么我需要重新編譯 sdl2 呢,是因為開始的配置沒有開啟 BR2_PACKAGE_SDL2_WAYLAND
和BR2_PACKAGE_SDL2_OPENGLES
導致使用ffplay遠程海康視頻時啟動會出如下錯誤:
[2023-08-11 13:10:28.080] Could not initialize SDL - No available video device
[2023-08-11 13:10:28.080] (Did you set the DISPLAY variable?)
重新編譯后就可以正確讀取到海康視頻碼流了。我的 buildroot對應的配置文件rockchip_rk3568_defconfig
放在附件附件:rockchip_rk3568_defconfig.zip中了。放一張 YY3568 包裝盒視頻截圖:
審核編輯 黃宇
-
開發板
+關注
關注
25文章
4959瀏覽量
97213 -
編譯
+關注
關注
0文章
654瀏覽量
32813 -
ffmpeg
+關注
關注
0文章
46瀏覽量
7381 -
RK3568
+關注
關注
4文章
501瀏覽量
4946
發布評論請先 登錄
相關推薦
評論