【发布时间】:2015-03-17 16:16:17
【问题描述】:
我正在使用以下方法从上传的视频中提取图像并将图像放入文件夹中。
private string GeneratePreviewImageMP4(string FileName, HttpPostedFile file, string ProperPath)
{
string inputfile = System.IO.Path.Combine(Server.MapPath(ProperPath), file.FileName);
string ext = System.IO.Path.GetExtension(FileName);
string thumbpath = AppDomain.CurrentDomain.BaseDirectory + "Reports\\TrainingLibrary\\Videothumbnails\\";
string thumbname = thumbpath + FileName.Replace(ext, "") + ".jpg";
string thumbargs = "-i " + inputfile + " -ss 00:00:25.435 -qscale:v 2 -vframes 1 " + thumbname;
Process thumbproc = new Process();
thumbproc.StartInfo.FileName = "C:\\FFMPEG\\Bin\\ffmpeg.exe";
thumbproc.StartInfo.Arguments = thumbargs;
thumbproc.StartInfo.UseShellExecute = false;
thumbproc.StartInfo.CreateNoWindow = false;
thumbproc.StartInfo.RedirectStandardOutput = false;
try
{
thumbproc.Start();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
thumbproc.WaitForExit();
thumbproc.Close();
return FileName.Replace(ext, ".jpg");
}
问题是,一旦图像被提取,我就会被锁定在文件夹之外。没有人对该文件夹拥有管理员权限。我们必须重新启动服务器才能恢复对该文件夹的访问。
这只是在某些时候,大多数时候效果很好,但十分之一会出现问题。
现在有人为什么会这样吗?它是否播放视频以提取图像,但不停止视频?
【问题讨论】:
-
这是您域/网络上的文件夹吗..?如果是这样,您有网络管理员吗?这可能是一个政策问题,
-
这是在我们自己的私人服务器上。我们网站所在的同一台服务器。 ffmpeg 位于 C 文件夹中。我不相信。我们拥有服务器的所有管理员权限。
-
谁管理服务器.. 我确信该服务器上有一些策略设置,并且可能有关于上传/保存到文件夹的文件数量的策略,如果那台机器认为它受到了攻击..在我看来,许可不只是改变自己..这可能是逐个用户的意思,对某些人有效,但对其他人无效..?您如何设置权限是基于登录还是组..AD、IIS_USERS 等...
-
我们使用 SessionID 作为标识。服务器在我们的服务器机房中。我只保存一个视频并保存一个图像。我将与网络管理员交谈,以确保他无法想到任何事情。
-
如果要查找文件,需要在
-i之前输入-ss参数。否则它将解码文件而不是搜索,直到时间戳达到您的值。你在浪费资源。