【问题标题】:How can I simulate OpenFile in FFmpeg?如何在 FFmpeg 中模拟 OpenFile?
【发布时间】:2019-07-15 07:45:42
【问题描述】:

大部分gif抓图软件都是截屏,然后一帧一帧的图片文件保存在磁盘上,再读入内存合并成gif,整个过程很慢。

我有了一个用DirectX截屏的想法(所以我们也可以更快地截取directx窗口,因为它直接操作屏幕d3d设备)API获取位图,然后将它们保存到内存(例如缓冲区),然后传递将内存位置转移到 ffmpeg 以生成视频,因此我们不需要磁盘存储作为中间缓冲区,因此它可能会快十倍,因为磁盘现在是 pc 上最慢的部分。

directx截屏部分已经有了。但是我发现ffmpeg使用OpenFile读取图片文件,所以这里可以模拟OpenFile吗? 如果答案是肯定的,我们该怎么做?

【问题讨论】:

    标签: c ffmpeg buffer hook


    【解决方案1】:

    您可以打开命名管道并将其用作源。

    一个例子: ffmpeg -f rawvideo -vcodec ravideo -s $width$x$height$ -r $framerate -pix_fmt $pixelFormat$ -i "\\.\pipe\$pipeName$" Output.gif

    您必须修复要输入 FFmpeg 的帧的格式,因此需要使用 -s-pix_fmt 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 2012-03-13
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多