本章主要记录如何移植 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文章
4933浏览量
97157 -
编译
+关注
关注
0文章
652浏览量
32799 -
ffmpeg
+关注
关注
0文章
46浏览量
7376 -
RK3568
+关注
关注
4文章
495浏览量
4919
发布评论请先 登录
相关推荐
评论