完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
飞凌嵌入式OKMX8MP-C 开发板默认将三种显示接口LVDS/MIPI/HDMI全部打开,而我要对HDMI输出编程的话需要将MIPI显示关闭,关闭方式是进入uboot菜单的Display选项进行操作: 在串口终端启动uboot时狂按空格键,即可进入uboot菜单: uboot菜单中的Display select选项就是设置输出接口的,可以分别对这三种接口进行设置,默认情况下三个输出接口都打开,而如果要进行FrameBuffer编程的话,我经过实际测试,需要将LVDS和HDMI选项都打开,HDMI接口才能正常输出/dev/fb0外设的映射图像: 如果将LVDS接口关闭的话,HDMI接口输出不正常,/dev/fb0也不会生成,也就无法对FrameBuffer进行编程: 在飞凌厂商提供的文档中,已经写明了HDMI接口输出的分辨率最大为1280*800*32,这个是由HDMI输出芯片决定的,比起瑞芯微主流主控的2K/4K差了不是一点半点(RK3399/RK3568),毕竟IMX8的定位是工业控制而不是多媒体应用,图形输出性能较差也是无可厚非的,对/dev/fb0外设进行ioctl,输出的分辨率也是1280*800,32位色彩: 使用命令
可搭建x11vnc服务器,将FrameBuffer画面输出至vnc软件客户端,也就可以在不使用HDMI输出设备的FrameBuffer分辨率只有1280*800,意味着,V4L2相机生成的流画面,分辨率高于或等于这个数无法生成显示,甚至在实测中,低于这个数一点点也无法生成(1000*750),会提示段错误终止进程,因此我经过反复调试,最终将V4L2生成的流分辨率设置为900*675,无法对相机物尽其用(相机最大分辨率为1080P),但这是板子的Framebuffer最大支持的输出分辨率,无法再设置更大了。
这次的V4L2推流,我不采用之前已经熟练掌握的V4L2生成YUYV流,而是直接生成MJPEG流,生成此流有2个好处,一是生成MJPEG流无需经过YUYV转RGB的步骤,帧生成时间更短,相比起之前生成YUYV流的方式,流畅度有非常明显的提升;二是生成MJPEG流可直接保存为JPEG文件,在确保IO读取锁无冲突的前提下,可供外部程序进行访问。要使用V4L2驱动库生成MJPEG流,初始化步骤要写对:
检查写入参数是否正确:
使用mmap()进行物理内存地址到用户内存地址的映射,即使用一个用户定义缓存来读取物理内存中的摄像头缓存数据:
开启捕捉:
捕捉并生成JPEG文件,循环执行的函数:
主循环运行:
运行效果: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
[技术] 【飞凌嵌入式OK3576-C开发板体验】llama2.c部署
6159 浏览 0 评论
6871 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】ssh连接与文件传输
6839 浏览 0 评论
8195 浏览 0 评论
【飞凌嵌入式OK527N-C开发板体验】6.制作h264播放器
7613 浏览 0 评论
6765浏览 2评论
3223浏览 2评论
11099浏览 1评论
5187浏览 1评论
83715浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 08:23 , Processed in 0.568179 second(s), Total 60, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号