[英]How to access framebuffer with FFMPEG?
我正在编写一个需要捕获屏幕的应用程序。 我一直在寻找解决方案,互联网说FFMPEG
可以做到。 但是我找不到在CODE中执行此操作的方法。 FFMPEG
文档似乎非常差。
有人可以告诉我如何使用FFMPEG
访问帧缓冲区原始数据吗?
FFmpeg支持通过stdin输入原始帧:
使用arg -f rawvideo
ffmpeg将期望帧来自标准输入
ffmpeg -r 60 -f rawvideo -pix_fmt uyvy422 -s 1280x720 -i - -threads 0 -preset fast -y -pix_fmt yuv420p output.mp4
您可以检查此链接 ,它具有有用的信息。
在Qt中,您将使用带有-f rawvideo
ffmpeg运行QProcess并使用write()方法写入标准输入。
这大致是如何完成它:
QProcess* process;
process->start("ffmpeg.exe", args, QProcess::Unbuffered | QProcess::ReadWrite);
process->waitForStarted();
...
process->setProcessChannelMode(QProcess::ForwardedChannels);
videoFrame->GetBytes(&buffer);
process->write(buffer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.