2012-09-11 91 views
0

我如何提供用戶名和密碼給ffmpeg使其能夠將數據寫入FTP服務器中的某個文件夾? 該文件夾受密碼保護,如果可能我不想刪除該密碼。所以,我可以簡單地將密碼傳遞給ffmpeg嗎?或者還有其他解決方案嗎? FFMPEG過程如何提供登錄用戶名和密碼到ffmpeg?

例如從視頻文件

string thumbpath, thumbname, videofile; 
videofile = "Video Source path"; 
thumbpath = "thumbnail path"; 
thumbname = thumbpath + "20120910160600.mjpeg"; 

string thumbargs = "-i \"" + videofile + "\" -vframes 1 -s 60*30 -ss 00:00:00 -f image2 \"" + thumbname + "\""; 

Process process = new Process(); 

process.StartInfo.FileName = Server.MapPath("~\\ffmpeg\\bin\\ffmpeg.exe"); 
process.StartInfo.Arguments = thumbargs; 

process.StartInfo.UseShellExecute = false; 
process.StartInfo.RedirectStandardOutput = true; 
process.StartInfo.RedirectStandardInput = false; 
process.StartInfo.RedirectStandardError = true; 
process.StartInfo.CreateNoWindow = false; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 

新學, 請指引我創建縮略圖....

+0

ftp服務器是否與Web應用程序在同一臺計算機上運行? 如果是這樣,您將不得不在「thumbpath」上設置文件夾權限,以便ASP.NET進程對該文件夾具有寫入權限。或者,您必須使用模擬才能以對該文件夾具有寫入權限的用戶身份運行ffmpeg進程。 – PHeiberg

+0

你可以告訴我更多關於冒充嗎?我發現我需要在web.config中添加一些東西。但是,我是否需要在ffmpeg中添加一些內容以使ffmpeg進程能夠使用該模擬設置?或者只是修改web.config就夠了。 – Lynx

+0

看到我發佈的答案 – PHeiberg

回答

1

前提是你必須設置文件夾的權限可能性(S )您正在進行ffmpeg寫入,您可以設置ASP.NET進程正在運行的帳戶以具有寫入權限。您可以通過配置應用程序池或using impersonation來控制ASP.NET運行的帳戶。這是最簡單的方法。

應用級別的模擬是通過把這個在web.config中完成的:

<identity impersonate="true" userName="accountname" password="password" /> 

這將導致Web應用程序爲用戶提供運行所有的時間。

如果你想加強安全,你可以只用寫權限的用戶下運行ffmpeg的運行過程。您可以使用代碼級別模擬來實現此目的(如上面的模擬鏈接中所述)。

不管使用哪種方法的ffmpeg不應該需要知道它的運行作爲用戶。

相關問題