asp.net实现调用ffmpeg实现视频格式的转换

视频格式转换的函数

 //视频转换

    public void VideoConvertFlv(string FromName, string ExportName)

    {



        string ffmpeg = HttpContext.Current.Server.MapPath("~/UploadFiles/FLV/ffmpeg.exe");

        FromName = HttpContext.Current.Server.MapPath(FromName);

        ExportName = HttpContext.Current.Server.MapPath(ExportName);

        string Command = " -i \"" + FromName + "\" -y -ab 32 -ar 22050 -b 800000 -s  480*360 \"" + ExportName + "\""; //Flv格式  

        //string Command = " -i \"test.wmv\" -y -ab 32 -ar 22050 -b 800000 -s 320*240 \"2.flv\"";



        //string Command = "E:\\FFmpeg\\ffmpeg.exe -i E:\\ClibDemo\\VideoPath\\admin\\a.wmv -y -ab 56 -ar 22050 -b 500 -r 15 -s 320*240 " ExportName;

        System.Diagnostics.Process p = new System.Diagnostics.Process();

        p.StartInfo.FileName = ffmpeg;

        p.StartInfo.Arguments = Command;

        p.StartInfo.WorkingDirectory = HttpContext.Current.Server.MapPath("~/UploadFiles/FLV/");

        p.StartInfo.UseShellExecute = false;

        p.StartInfo.RedirectStandardInput = true;

        p.StartInfo.RedirectStandardOutput = true;

        p.StartInfo.RedirectStandardError = true;

        p.StartInfo.CreateNoWindow = false;

        //开始执行

        p.Start();

        p.BeginErrorReadLine();

        p.WaitForExit();

        p.Close();

        p.Dispose();

    }

调用视频格式转换 

protected void btnSaveUploadVod_Click(object sender, EventArgs e)

    {

        string fileName = txtATitle.Text;//上传文件的名称的命名规则是标题

        bool flag = true;  //视频格式是否正确的标志

        if (fileName.Equals(""))

        {

            Response.Write("<script>alert('请先填写标题!')</script>");

        }

        else

        {

            filePathTemp = "UploadFiles/武夷概况/视频"; 

            string fpath = Path.Combine(Request.PhysicalApplicationPath, filePathTemp);

            UploadFile upFile = AspnetUpload.GetUploadFile("file2");

            if (upFile != null)

            {

                string sourceFileName = Path.GetFileName(upFile.get_FileName()); //取出上传的视频的文件名,进而取出该文件的扩展名

                string extendName = sourceFileName.Substring(sourceFileName.LastIndexOf(".") + 1);

                //上传后的文件名的命名规则是:标题+数字+后缀  

                if (!isAllowedVodType(extendName))

                {

                    flag = false;

                }

                else

                {

                    

                    VodWarehouseManage vodWarehouseBll = new VodWarehouseManage();

                    //先上传到服务器,然后转换格式,最后删掉原来非FLV格式的视频 

                    //上传后的文件名的命名规则是:标题+后缀  

                    string fileNameTemp = fileName + "." + extendName; 

                    string savePath = filePathTemp + "/" + fileNameTemp;

                    upFile.SaveAs(Path.Combine(fpath, fileNameTemp));

                    if (!extendName.ToLower().Equals("flv"))

                    {//进行视频转换





                        //调用视频转换函数将其它格式的视频转为FLV格式的视频  

                        string fromName = "~/" + savePath;

                        string exportName = "~/" + filePathTemp + "/" + fileName + ".flv";

                        // Response.Write("<script>alert('fromName=" + fromName + " and exportName=" + exportName + "')</script>");



                        //转换视频格式

                        VideoConvertFlv(fromName, exportName);



                        //删除非FLV格式的视频

                        vodWarehouseBll.DeleteFile(Path.Combine(fpath, fileNameTemp));



                        savePath = filePathTemp + "/" + fileName + ".flv";



                    }



                    //保存视频的信息 

                    VodWarehouse vodWarehouse = new VodWarehouse();

                    vodWarehouse.VodSortId = 17;//1代表媒体的类型为武夷概况

                    vodWarehouse.VodPath = savePath;

                    vodWarehouse.AttachId = Int32.Parse(articleId.Value);//隐藏域中的值



                    if (vodWarehouseBll.SaveVodsInfo(vodWarehouse) == false)

                    {

                        Response.Write("<script>alert('保存视频的过程出错!')</script>");

                    }

                    else

                    {

                        //Response.Write("<script>alert('视频上传成功!')</script>");

                        //将上传的路径写入相应的上传文本框中 



                    }

                }

            }//end foreach



            if (flag == true)

            {

                this.upLoadVodResult.Text = "视频上传成功";

                this.vodPannel.Visible = false;

            }

            else

            {

                //this.upLoadVodResult.Text = "您选择的视频的格式不正确,请确保您的视频的格式是:flv/mov/wmv/avi/mp4";

                Response.Write("<script>alert('您选择的视频的格式不正确,请确保您的视频的格式是:flv/mov/wmv/avi/mp4!')</script>");

            }

        }

    }

 

你可能感兴趣的:(asp.net)