在asp.net razor(C#)中使用ffmpeg
我知道互联网上到处都是这样的问题,但我相信我的情况不同,我有一个ASP.NET网页(Razor C#)和一个完整的视频共享网站,但我仍然不明白,如何在上传页面上使用ffmpeg将视频转换为mp4和webm,而不是将原始视频保存并添加到数据库中,我希望添加转换后的版本。这是我的上传页面代码:在asp.net razor(C#)中使用ffmpeg,c#,asp.net,.net,video,ffmpeg,C#,Asp.net,.net,Video,Ffmpeg,我知道互联网上到处都是这样的问题,但我相信我的情况不同,我有一个ASP.NET网页(Razor C#)和一个完整的视频共享网站,但我仍然不明白,如何在上传页面上使用ffmpeg将视频转换为mp4和webm,而不是将原始视频保存并添加到数据库中,我希望添加转换后的版本。这是我的上传页面代码: @{ WebSecurity.RequireAuthenticatedUser(); var db = Database.Open("PhotoGallery"); var fileName = ""
@{
WebSecurity.RequireAuthenticatedUser();
var db = Database.Open("PhotoGallery");
var fileName = "";
var uploader = WebSecurity.CurrentUserId;
var date = DateTime.Now.Date;
var extention = "";
if(IsPost){
var numFiles = Request.Files.Count;
if(numFiles <= 0){
ModelState.AddError("fileUpload", "Please specify at least one photo to upload.");
}
else{
var fileSavePath = "";
var uploadedFile = Request.Files[0];
fileName = Path.GetFileNameWithoutExtension(uploadedFile.FileName).Trim();
extention = Path.GetExtension(uploadedFile.FileName).Trim();
string ndom = Path.GetRandomFileName();
var none = ndom.Remove(ndom.Length - 4);
fileSavePath = Server.MapPath("~/Images/userpics/" +
none + extention);
uploadedFile.SaveAs(fileSavePath);
var insertCommand = "INSERT INTO Videos (FileTitle, UploadDate, UserId, ext, Name) Values(@0, @1, @2, @3, @4)";
db.Execute(insertCommand, fileName, date, uploader, extention, none + extention);
Response.Redirect(Href("~/Photo/View", db.GetLastInsertId()));
}
}
}
<h1>Upload Video</h1>
<form method="post" enctype="multipart/form-data">
@Html.ValidationSummary("Unable to upload:")
<fieldset class="no-legend">
<legend>Upload Photo</legend>
@FileUpload.GetHtml(addText: "Add more files", uploadText: "Upload", includeFormTag: false)
<p class="form-actions">
<input type="submit" value="Upload" title="Upload photo" />
</p>
</fieldset>
</form>
<p class="message info">
The maximum file size is 50MB.
</p>
@{
WebSecurity.RequireAuthenticatedUser();
var db=Database.Open(“PhotoGallery”);
var fileName=“”;
var uploader=WebSecurity.CurrentUserId;
var date=DateTime.Now.date;
var扩展=”;
如果(IsPost){
var numFiles=Request.Files.Count;
如果(numFiles我认为您最好的选择是按原样上传,并让脱机应用程序或服务轮询您的表以获取新记录,然后进行转换。完成后,它将使用新文件名和指示已转换的标志更新表。
我有一个类似的项目,这就是我所做的
尝试动态转换这些可能不是一个好主意。如果同时上载/转换相当多,可能会导致服务器崩溃。你知道我可以使用哪些应用程序吗?如果使用非web可执行的应用程序,你可以循环“排队”视频并弹出命令行进行转换,或者使用o这是几种可用包装中的一种。我一直在试图找到我的包装。不幸的是,我无法公开发布。