【风火轮YY3568开发板免费体验】第二章:YY3568 ffmpeg 编译以及 nanogui 移植

描述

本章主要记录如何移植 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_WAYLANDBR2_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 包装盒视频截图:
编译

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
李毅刚 2023-10-14
0 回复 举报
nanogui是怎么编译的呢 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分