C# .net应用程序在使用FFmpeg转换非wav或非mp3文件时返回连接重置

C# .net应用程序在使用FFmpeg转换非wav或非mp3文件时返回连接重置,c#,asp.net,audio,ffmpeg,C#,Asp.net,Audio,Ffmpeg,我目前正在制作一个.NET应用程序,允许用户上传音频文件并将其转换为mp3。我正在使用FFmpeg。它可以与.wav和.mp3一起使用,但当我尝试上传.wma或.m4a等格式时,应用程序返回一个连接被重置的消息。我使用Firefox4进行测试。当然,当我上传不受支持的文件(如.jpg)来测试错误时,它也会返回同样的结果。当我使用cmd时,命令行参数按预期工作 代码如下: using System; using System.Collections.Generic; using System.Li

我目前正在制作一个.NET应用程序,允许用户上传音频文件并将其转换为mp3。我正在使用FFmpeg。它可以与.wav和.mp3一起使用,但当我尝试上传.wma或.m4a等格式时,应用程序返回一个连接被重置的消息。我使用Firefox4进行测试。当然,当我上传不受支持的文件(如.jpg)来测试错误时,它也会返回同样的结果。当我使用cmd时,命令行参数按预期工作

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
using System.Media;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text.RegularExpressions;

namespace AudioConvert
{
    public partial class _Default : System.Web.UI.Page
    {
        Process ffmpeg;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnUpload_Click(object sender, EventArgs e)
        {
            string audio;
            string mp3;

            if (FileUpload1.HasFile)
            {
                FileUpload1.SaveAs(@"\Temp\"+FileUpload1.FileName);
            }

            //FileUpload1.SaveAs(Server.MapPath("") + System.IO.Path.GetFileName(FileUpload1.FileName));
            audio = @"\Temp\"+FileUpload1.FileName; //audio filepath
            mp3 = Page.MapPath("") + "\\Media\\"+FileUpload1.FileName+".mp3";
            ffmpeg = new Process();

            try
            {

                ffmpeg.StartInfo.Arguments = "-y -i \"" + audio + "\" -ab 128k \"" + mp3; //-command line argument, overwrites automatically
                ffmpeg.StartInfo.FileName = Page.MapPath("ffmpeg.exe"); //ffmpeg file location
                ffmpeg.Start();
                ffmpeg.WaitForExit();
                ffmpeg.Close();
            }
            catch
            {
            }
        }
    }
}

顺便说一句,没有C.NET这样的东西。语言名为C。感谢您的更正。