如何使用FFMPEG捕获浏览器的选项卡内容

问题描述:

我正在开发一个项目,我需要记录要在不同浏览器的选项卡中播放的HTML5动画。如何使用FFMPEG捕获浏览器的选项卡内容

所以我一直在读了一下,显然它可以使用FFMPEG,也许使用gdigrab设备来完成: https://www.ffmpeg.org/ffmpeg-devices.html#gdigrab

在哪里,你甚至可以从一个特定的窗口抓取(像记录的calc.exe使用标题=计算器

我想用这个逻辑来捕获每个多个浏览器标签的内容。 (或至少一个)但我不知道Firefox/Chrome标签“标题”,或者他们甚至可以作为窗口工作。

我还需要录制音频,所以我需要将计算机的输出设备与选项卡中的视频混合使用。

如果有人有关于如何做到这一点的更多信息,我将不胜感激。

感谢,

+0

你必须使用Windows?你必须使用Firefox吗?之后你将如何处理输出? – Brad

+0

嗨Mulvya,不,现在我正在探索什么是最好的选择,并认为我会开始我更熟悉。截至目前,我停止使用FFMPEG,并且我使用名为RecordRTC的Javascript库来记录和保存视频blob输出到服务器,并使用DesktopCapture API制作Google Chrome扩展,我认为这是一种更简单的方法。需要做的是以某种方式创建一个脚本,以便接受一个URL作为输入参数,然后在新选项卡(无头)中打开该URL,记录其内容,最后关闭它并将视频输出保存到服务器。 – Riki

标签是浏览器的应用程序逻辑中,所以我不认为你可以针对标签。如果您将选项卡作为单独的窗口分开,则可以将其捕获。您需要在任务管理器中显示的字符串。这是窗口标题。

首先运行tasklist /v /fi "imagename eq firefox.exe" /fo list | findstr Window

这将产生一组由firefox.exe

控制所有单独的窗口假设的线,你想抓住这个当前页面时,FINDSTR输出将

Window Title: firefox - How to use FFMPEG to capture a browser's tab content - Stack Overflow - Mozilla Firefox 

然后运行

ffmpeg -f gdigrab -i title="firefox - How to use FFMPEG to capture a browser's tab content - Stack Overflow - Mozilla Firefox" -pix_fmt yuv420p tabgrab.mp4 

您可以在录制时移动窗口,但如果调整大小,录制将在该点结束。如果该窗口中有其他选项卡,并切换到它们,它们将被捕获。因此,最好将所需的选项卡分隔到自己的窗口中。

对于音频,您需要使用directshow输入设备。请参阅文档和关于如何列出它们的示例。

+0

谢谢!完美地找到窗口的正确名称。但我仍然有不得不一一录制“一个一个”的问题。 (如果使用不同的浏览器窗口,则为2乘2)当你说标签在浏览器的应用程序逻辑中时,你是对的,所以我最好的办法是找到一个Firefox扩展或API,让我可以与FFMPEG集成。即使如此,我也必须处理重叠的音频源,但非常感谢您的帮助! – Riki

+0

只要浏览器具有不同的窗口标题并将其路由到不同的输出文件,您可以根据自己的喜好指定任意数量的窗口输入。您的捕捉性能将受到影响,具体取决于您的CPU/RAM等 – Mulvya