如何在C++代码中暂停FFmpeg?

6

我正在编写一个VisualC++程序,其中有代码调用ffmpeg.exe来转换视频文件。我想知道是否可能从C++代码中暂停/恢复ffmpeg转换线程?

LR。

5个回答

3

使用ffmpeg无法控制转换过程。

但是,如果您切换到mencoder,就可以进行控制。


"切换你的mencoder"? 你是指使用其他工具替代ffmpeg吗?那么,你能更具体地解释一下吗? - Wesley

3
您只需要暂停和恢复ffmpeg子进程本身即可。
主要问题是:没有SuspendProcess API函数。而且没有记录或安全的方法来做这件事。
唯一简单的方法是通过SuspendThread/ResumeThread来实现。
有关如何执行此操作,请参见codeproject上的此文章

2
这是一个类似于基于Unix的命令:
mike@krusty:~$ pidof ffmpeg
 22730
 mike@krusty:~$ sudo kill -STOP 22730
 [sudo] password for mike:
 mike@krusty:~$ sudo kill -CONT 22730

太好了!已经测试,它能工作!只要遵循这两点:#1)在“暂停”期间,输入和输出文件都保持不变。#2)此“暂停”命令必须从不同的终端窗口触发,而不是ffmpeg进程本身的终端窗口。 - Faron

1
不行。这是一个命令行工具,一旦它启动了,你就不能暂停它。

如果我们像使用avcodec一样使用ffmpeg-lib,我们能暂停它吗? - Wesley

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接