【问题标题】:Pausing ffmpeg: "slow motion" after resume暂停ffmpeg:恢复后的“慢动作”
【发布时间】:2019-07-09 13:12:06
【问题描述】:

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

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

“慢动作时间”看起来和暂停时间很像,但并不是1:1的关系。

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

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

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

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

【问题讨论】:

  • 你的 ffmpeg 命令是什么?

标签: ffmpeg


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-04-11
    • 2013-10-04
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2015-04-18
    • 2023-03-14
    相关资源
    最近更新 更多