[英]How can I simulate OpenFile in FFmpeg?
大多数gif捕获软件都会捕获屏幕,然后将它们一帧一帧地保存在磁盘上,然后将它们读入内存并将它们组合为gif,从而使整个过程非常缓慢。
我想到了用DirectX捕获屏幕的方法(因为它可以直接操作屏幕d3d设备,所以我们也可以更快地捕获DirectX窗口)API来获取位图,然后将其保存到内存(例如缓冲区)中,然后将内存位置传递给ffmpeg来生成视频,因此我们不需要将磁盘存储作为中间缓冲区,因此它可以再快十倍,因为磁盘现在在PC上的速度最慢。
Directx捕获屏幕部分已经存在。但是我发现ffmpeg使用OpenFile读取图片文件,因此在这里我们可以模拟OpenFile吗? 如果答案是肯定的,我们怎么办?
您可以打开一个命名管道并将其用作源。
示例: ffmpeg -f rawvideo -vcodec ravideo -s $width$x$height$ -r $framerate -pix_fmt $pixelFormat$ -i "\\\\.\\pipe\\$pipeName$" Output.gif
您必须确定要馈送FFmpeg的帧的格式,因此必须确定-s
和-pix_fmt
参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.