簡體   English   中英

如何在C#中停止ffmpeg視頻錄制?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM