[英]How to stop ffmpeg video recording in c#?
我在應用程序中使用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);
}
如果最初創建了該進程,則可以保留其stdin的句柄並將其發送為“ q”(可能還需要在其后發送一個“ \\ n”)。
如果沒有,則可以通過第三方.exe(或內部等效文件)將ctrl + c / ctrl + break發送給它的進程ID。
FFmpeg沒有窗口句柄,因為它是一個控制台應用程序,因此您無法使用PostMessage等發送鍵擊。 僅通過控制台信號(即ctrl + c / break)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.