v4l2loopback -- test_yuv例程测试及源码分析

相关源码位置

https://gitee.com/ldl17/v4l2-learn/tree/master/v4l2loopback/examples/test_yuv

test_yuv这个例程主要目的是读取本地yuv数据给v4l2loopback,然后应用程序去读取摄像头数据

test_yuv源码拷贝与test,test里面只是写一帧,test_yuv里面则是根据设置的帧率延时读取数据而已。

	while(fread(buffer, 1, framesize, in_fp) == framesize) {
		write(fdwr, buffer, framesize);
		//delay 30ms -> 30fps
		usleep(FPS*1000);
		frame_cnt ++; 
	}

关键代码在这里。

其实这个例程的思路是来源于v4l2loopback上的例程 yuv4mpeg_to_v4l2.c

https://gitee.com/ldl17/v4l2loopback/blob/develop/examples/yuv4mpeg_to_v4l2.c

因为我们是在嵌入式开发板上进行研究,所以也没有mplay这些应用。

test_yuv这个例程中还有一部分功能是解析Y4M格式的视频文件,其中y4m2nv12.c主要就是将y4m格式转换成nv12或者nv21,加这个转换的目的仅仅是为了学习y4m格式。

最后的测试中,会用v4l2_test读取video到数据,并保存。

OrangPi 5的配置涉及到多个层面,包括但不限于操作系统级别的配置、硬件接口设置以及驱动程序的配置。对于OV13855摄像头模块的视频输出帧率配置,通常需要在软件层面上进行设置,比如通过修改摄像头驱动的配置文件或者使用命令行工具调整。以下是一些基本的步骤,但请注意,具体步骤可能会根据你所使用的操作系统和固件有所不同: 1. 确认驱动支持:首先需要确认你的系统已经安装了支持OV13855摄像头的驱动,并且驱动已经正确加载。 2. 修改配置文件:在某些系统中,摄像头驱动的配置参数会保存在一个配置文件中,例如在Linux系统中,这些配置可能位于`/etc/v4l2loopback.conf`或者`/etc/modprobe.d/videodevice.conf`这样的文件里。你需要查找这个配置文件,并按照OV13855的技术手册设置合适的帧率参数。 3. 使用命令行工具:有些情况下,你可以通过命令行工具如`v4l2-ctl`来动态调整视频输出设置。例如,你可以使用类似以下的命令来设置帧率: ```bash v4l2-ctl --set-ctrl pixel_rate=118800000 ``` 这里的`pixel_rate`参数值需要根据OV13855的具体规格来设置,以便达到期望的帧率。 4. 实时测试:在设置好参数后,你需要实时测试摄像头输出以确认帧率是否已经被正确设置。可以使用视频播放软件或者`ffmpeg`这类工具来查看当前的帧率。 5. 硬件调整:除了软件配置外,还需要确认摄像头的硬件连接和接口支持你所设定的帧率。检查硬件接口的带宽是否能够满足高帧率数据传输的要求。 请记住,实际操作中需要根据你的硬件环境和软件环境的具体情况来进行调整,上述步骤仅提供一个大致的方向。如果系统中已经包含了特定的管理界面或者工具,那么可能有更为简便的图形化操作方法来调整这些参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dianlong_lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值