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

ffpmeg - how to detect if video crop is completed?

提前致谢。

我正在尝试使用 ffmpeg 二进制文件(在 electron-react-app 的上下文中)裁剪 .mp4 视频。

(二进制文件是 运行 在 child process 中使用 execFile() 并输出到临时文件夹,稍后删除)

ffmpeg 完成裁剪视频文件创建所需的时间(1 秒到 18 秒)因计算机而异(mac vs Windows)。

我需要阅读裁剪后的视频文件。

我在 electron

Main 进程中设置了事件侦听器

if (!monitorCroppedFile) {
        console.log(`${croppedFilePath} doesn't exist`);
      } else {
        console.log(`${croppedFilePath} exists !`)
        ...readFile...;

曾经 monitorCroppedFile = true 我用 fs.readfile() 读过它。

问题是 ffmpeg 最初创建裁剪文件路径,但有时需要很长时间才能完成裁剪过程。

这导致读取的文件经常是空白的(因为读取是在检测到裁剪文件的文件路径时触发的)。

我试过在 ffmpeg 参数中使用 -preset ultrafast 但这只会稍微改善 Windows 的情况。

Mac 上不会出现此问题。

任何人都可以提出一个可能的解决方案吗?有没有办法检测作物何时完全完成?

非常感谢。

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