Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建视频vom渲染的OpenGL帧_Opengl_Video_Ffmpeg_Render_Libavcodec - Fatal编程技术网

创建视频vom渲染的OpenGL帧

创建视频vom渲染的OpenGL帧,opengl,video,ffmpeg,render,libavcodec,Opengl,Video,Ffmpeg,Render,Libavcodec,我正在寻找一种方法,从我用OpenGL渲染的一行帧中创建视频,并使用glGetTexImage函数将其作为int数组传输到ram。是否可以直接在ram~10秒视频中实现这一点,或者我必须将每个帧保存到硬盘,然后对视频进行编码 我在另一个SO问题中发现了这个示例,但这仍然是最好的方法吗?如果您想要跨平台的方法,您可能必须使用ffmpeg/libavcodec,但在Windows上,您可以非常简单地使用资源编写AVI。如果您想要跨平台的方法,您可能必须使用ffmpeg/libavcodec,但在Wi

我正在寻找一种方法,从我用OpenGL渲染的一行帧中创建视频,并使用glGetTexImage函数将其作为int数组传输到ram。是否可以直接在ram~10秒视频中实现这一点,或者我必须将每个帧保存到硬盘,然后对视频进行编码


我在另一个SO问题中发现了这个示例,但这仍然是最好的方法吗?

如果您想要跨平台的方法,您可能必须使用ffmpeg/libavcodec,但在Windows上,您可以非常简单地使用资源编写AVI。

如果您想要跨平台的方法,您可能必须使用ffmpeg/libavcodec,但在Windows上,您可以非常简单地使用资源编写AVI。

今天,我得到一个提示,可以使用这个示例来了解如何实现h264。当您想要对opengl渲染的帧进行编码时,问题是它们在RGBA中,并且大多数编解码器需要YUV。对于转换,您可以使用swscale ffmpeg-在这里可以找到如何使用它的示例


正如ananthonline所述,帧的直接编码非常占用cpu,但您也可以使用ffmpeg作为RAWDIVEO格式(支持rgb24像素格式)编写帧,并使用ffmpeg的cmd命令将其脱机转换

今天我得到了一个提示,可以使用这个示例来了解如何实现h264。当您想要对opengl渲染的帧进行编码时,问题是它们在RGBA中,并且大多数编解码器需要YUV。对于转换,您可以使用swscale ffmpeg-在这里可以找到如何使用它的示例


正如ananthonline所述,帧的直接编码非常占用cpu,但您也可以使用ffmpeg作为RAWDIVEO格式(支持rgb24像素格式)编写帧,并使用ffmpeg的cmd命令将其脱机转换

这个链接听起来很有意思,但是我忘记了对H264编码的请求,所以我认为FFMPEG是最好的方式来实现这一点吗?我不相信你可以直接做H.264,除非你使用DirectShow /MediaFoundation——所以你的替代品将呈现为AVI,然后通过调用命令行工具或直接捕获来执行离线转换。通过与libavcodec的接口连接到H.264。请记住,H.264的编码是CPU密集型的,除非您有强大的CPU和/或灯光渲染代码,否则可能会导致渲染出现故障。该链接听起来很有希望,但我忘记了h264编码的要求,所以我认为ffmpeg是实现这一点的最佳方法,或者?我不相信您可以直接执行H.264,除非您使用的是DirectShow/Media基金会-所以你的选择是渲染为AVI,然后执行离线转换,通过调用命令行工具或直接捕获到H.264通过接口与LIVAVCODEC。请记住,编码到H.264是CPU密集型的,除非您有强大的CPU和/或灯光渲染代码,否则可能会导致渲染出现故障。恭喜您解决了这个问题!如果您能够,请确保将您的答案标记为“已接受”,以便其他人能够从您的解决方案中学习。干杯~祝贺你成功!如果您能够,请确保将您的答案标记为“已接受”,以便其他人能够从您的解决方案中学习。干杯~