Ale*_*x I 4 c video encoding opengl-es raspberry-pi
我想要一种方法从Raspberry Pi中的相机界面捕获视频,通过编写为OpenGL着色器的过滤器运行它,然后将其发送到硬件编码器.
这篇博文讲述了在使用raspistill时将OpenGL着色器滤镜应用到相机的输出上.这是相应的源代码.然而,在这种情况下的输出不会进入视频编码器,并且这不会在视频上运行,仅在静止图像上运行.另外(不完全确定)我认为这与预览相关,请参阅以下内容:raspitex_state A pointer to the GL preview state和state->ops.redraw = sobel_redraw.
该博客还谈到了"快速路径",有人可以解释在这种情况下的含义吗?
小智 5
纹理转换适用于任何MMAL不透明缓冲区,即相机预览,仍然(高达2000x2000分辨率)视频.但是,示例代码仅为静态预览执行GL管道.我认为有人在RPI论坛上发布了一个补丁,以使其与RaspiVid一起使用,因此您可以使用它.
Fastpath基本上意味着不将缓冲区数据复制到ARM内存并进行软件转换.因此,对于GL渲染,它意味着只需将句柄传递给GL,因此GPU驱动程序可以直接执行此操作.
目前,驱动程序中没有支持/快速路径用于将OpenGL渲染缓冲区馈送到视频编码器中.相反,缓慢且可能不切实际的路径是调用glReadPixels,将缓冲区转换为YUV并将转换后的缓冲区传递给编码器.
快速路径肯定是可能的,我已经做了一些工作将其移植到RPI驱动程序,但还需要一些其他框架,直到新的一年我才有机会看到它.
| 归档时间: |
|
| 查看次数: |
2521 次 |
| 最近记录: |