我被賦予了每天晚上對一堆GoToMeeting視頻文件進行轉碼的任務。一旦視頻已被轉碼,它將被上傳到網站。然而,在我進入該項目之前,我想弄清楚這是否可能。運行外部程序時的C#同步命令
我現在的示例腳本是一個簡單的批處理文件,在那裏我可以拖放多個文件到批處理文件。它會轉碼第一個文件,顯示一個輸出,然後繼續到第二個文件進行轉碼。這是我期待的預期行爲。
@echo off
C:\g2mtranscoder.exe source=%~1
echo %~1 has completed.
C:\g2mtranscoder.exe source=%~2
echo %~2 has completed.
C:\g2mtranscoder.exe source=%~3
echo %~3 has completed.
C:\g2mtranscoder.exe source=%~4
echo %~4 has completed.
pause
我的問題是,如果在C#(將是一個Windows服務,最終),那會是那樣簡單調用外部程序g2mtranscoder.exe
做轉碼,然後把我的上傳腳本之後的權利?顯然,我不想上傳一個當前正在轉碼的視頻,也不希望視頻先上傳,而沒有先轉碼。
我subquestion將是把這個在一個循環(對於目錄中的每個文件)造成任何問題,如果該目錄的內容是永遠只被代碼轉換懸而未決的視頻?如果在循環中,它是否會嘗試循環並異步啓動目錄中的所有文件的代碼轉換,還是會更同步?我希望避免循環異步發生,因爲它可能使計算機過載,從而導致音頻/視頻計時出現僞影或同步問題。最重要的是,轉碼過程中的視頻或未轉碼的視頻無法上傳。
這個任何編碼的建議將是巨大的,但我真的尋找更多的C#如何與代碼執行與具有堪稱執行的C#代碼的中間外部程序的理解。
我更多的Ruby/Rails和Linux的人,並沒有對C#太多經驗。我知道有足夠的危險,但只是想確保我想要做的事情是可行的。