gpt4 book ai didi

c# - 如何在 C# 中停止 ffmpeg 视频录制?

转载 作者:行者123 更新时间:2023-12-04 23:09:08 30 4
gpt4 key购买 nike

我在应用程序中使用 FFmpeg,它可以完美地启动和录制视频
但是当我想停止它要求按“q”时,我收到了 System.EntryPointNotFoundException 错误消息。

如何从应用程序向处于运行状态的进程发送消息“q”

    int key_q = 81; 

[DllImport("user32.dll", EntryPoint = "postmessage")]
private static extern bool postmessage(IntPtr hwnd, uint msg, int wparam, int lparam);



private void button_stop_Click(object sender, EventArgs e)
{
string process = "ffmpeg";

Process[] pro = Process.GetProcessesByName("ffmpeg");

pro[0].Refresh();

IntPtr h = pro[0].MainWindowHandle;



postmessage(h, 0x100, key_q, 0);


}

最佳答案

如果您最初创建了进程,则可以保留其标准输入的句柄并将其发送“q”(可能还需要在之后发送“\n”)。

如果没有,那么您可以使用第三方 .exe(或内部等效程序)向其进程 ID 发送 ctrl+c/ctrl+break。

FFmpeg 没有窗口句柄,因为它是一个控制台应用程序,因此您无法使用 PostMessage 等发送击键。仅通过控制台信号(即 ctrl+c/break)

关于c# - 如何在 C# 中停止 ffmpeg 视频录制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com