node.js - ffmpeg - 如何检测视频裁剪是否完成?

标签 node.js reactjs ffmpeg electron

提前致谢。
我正在尝试裁剪 .mp4使用 ffmpeg 的视频二进制(在 electron-react-app 的上下文中)。
(二进制文件在 child process 中运行,使用 execFile() 并输出到临时文件夹,该文件夹随后被删除)ffmpeg根据计算机(mac 与 Windows)的不同,完成创建裁剪视频文件(1 秒到 18 秒)所需的时间差异很大。
我需要阅读裁剪的视频文件。
我在 Main 中设置了一个事件监听器electron的进程


if (!monitorCroppedFile) {
        console.log(`${croppedFilePath} doesn't exist`);
      } else {
        console.log(`${croppedFilePath} exists !`)
        ...readFile...;
一次monitorCroppedFile = true我使用 fs.readfile() 阅读它.
问题是 ffmpeg最初创建裁剪的文件路径,但有时需要很长时间才能完成裁剪过程。
这导致读取的文件通常为空白(因为在检测到裁剪文件的文件路径时触发读取)。
我试过使用 -preset ultrafastffmpeg争论,但这只会稍微改善 Windows 上的情况。
Mac 上不会出现此问题。
任何人都可以提出一个可能的解决方案吗?有没有办法检测裁剪何时完全完成?
非常感谢。

最佳答案

添加 -progress FILE到你的命令FILE应该是一个文件名。 ffmpeg 会将处理状态记录到该文件。搜索线progress=end在里面。一旦找到它,您就可以读取该文件。

关于node.js - ffmpeg - 如何检测视频裁剪是否完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69384857/

相关文章:

javascript - 使用 Redux 替换 reducer 中的整个状态

curl - 将 MJPEG 流式传输到文件,但仅保留最后 x 分钟

javascript - NodeJS nexe fusebox 失败

node.js - Sequelize 查询给出 TypeError : undefined is not a function

node.js - 管道 super 代理响应到快速响应

node.js - 是否可以检测元素是否存在,然后提示用户输入?

javascript - react 路由器不呈现的嵌套详细信息路由

javascript - Jest |测试 moment 函数是否被调用以及返回输出是否正确

android - 如何使用ffmpeg播放mp3

Python:使用 FFMPEG 使用一系列图像创建视频