c# - 在 asp.net razor 中使用 ffmpeg (C#)

标签 c# asp.net .net video ffmpeg

我知道这样的问题遍布互联网,但我相信我的情况不同,我有一个 ASP.NET 网页 (Razor C#),我已经准备好一个完整的视频共享网站但我仍然不明白,如何在上传页面上使用 ffmpeg 将视频转换为 mp4 和 webm,而不是将原始文件保存并添加到我想要的数据库中添加了转换后的版本。这是我的上传页面代码:

    @{
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>

最佳答案

我认为您最好的选择是按原样进行上传,并让离线应用程序或服务轮询您的表以获取新记录,然后对其进行转换。完成后,它将使用新文件名和一个指示它已转换的标志更新表。
我有一个类似的项目,这就是我所做的。

尝试即时转换这些可能不是一个好主意。如果您同时进行大量的上传/转换,您最终可能会破坏您的服务器。

关于c# - 在 asp.net razor 中使用 ffmpeg (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23159138/

相关文章:

.net - GetExportedTypes 抛出的 MissingMethodException

c# - 为什么 null 不写入输出窗口?

c# - Windows 服务中的程序集未引用错误

c# - Microsoft.Office.Interop.Word.Application.Documents.Open ("C:\\doc.doc") 未打开

asp.net - JsonResult 在浏览器中显示文件下载

javascript - 如何在动态生成的javascript代码上放置换行符

c# - SynchronizationContext - 奇怪的行为

C#:为什么 x 的最终值与 for 循环外的值不同?

每秒在 ASP.net 头部创建 Javascript,Ajax Timer 导致问题

c# - 为什么嵌套类是 "inherited"?