首页 > 解决方案 > 暂停ffmpeg:恢复后的“慢动作”

问题描述

我正在尝试在编码期间暂停/恢复 ffmpeg 进程。操作系统是 Windows。

我暂停 ffmpeg.exe 并在一段时间后恢复它。问题是,在重播创建的电影期间,从暂停的那一刻起,它看起来就像在“慢动作”播放了一段时间。一段时间后,重播速度赶上实际帧速率。

“慢动作时间”似乎类似于暂停时间,但它不是1:1的关系。

我使用 Win32 process/thead API 来暂停和恢复 ffmpeg 进程。但是当使用 Windows 资源监视器或使用键盘暂停键暂停/恢复时,它的行为完全相同。

有趣的是,当您在 ffmpeg 输入中输入“c”键并等待一段时间而不是输入命令时,也会出现同样的问题。看起来进程在 I/O 功能处阻塞,然后出现帧时间戳问题。

我既不是 ffmpeg 也不是多媒体专家,但在我看来,某种时间戳的问题以及 ffmpeg 暂停和恢复之间的差距。

是否有一些可以修复它的 ffmpeg 命令或过滤器?还是在录制过程中暂停/恢复它的更好方法?

标签: ffmpeg

解决方案


@Gyan:准备示例命令行以响应您的评论,并将其简化为最简单的可能选项集,我发现了一个问题:

我使用 DirectShow 设备作为输入,并为输入帧速率指定“-r”。这是不正确的,可以在这里找到,例如:https ://trac.ffmpeg.org/wiki/DirectShow#Specifyinginputframerate 。所以,我用 -framerate 替换了 -r ,现在可以了。暂停/恢复按预期工作。

感谢您的提示,很抱歉在 RTFM 之前打扰了人们


推荐阅读