2012-09-11 61 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不应该需要知道它的运行作为用户。

相关问题