使用ffmpeg在文件夹中剪切和保存视频

时间:2015-11-10 06:04:52

标签: asp.net ffmpeg

private bool ReturnVideo(string fileName) 
{

    string html = string.Empty;
    //rename if file already exists

    int j = 0;

    string AppPath;

    string inputPath;

    string outputPath;

    // string imgpath;

    AppPath = Request.PhysicalApplicationPath;

    //Get the application path

    inputPath = AppPath + "OriginalVideo";

    //Path of the original file
    outputPath = AppPath + "ConvertVideo";

    //Path of the converted file

    // imgpath = AppPath + "Thumbs";

    //Path of the preview file
        string filepath = Server.MapPath("~/OriginalVideo/" + fileName);
        while (File.Exists(filepath))
        {

            j = j + 1;

            int dotPos = fileName.LastIndexOf(".");

            string namewithoutext = fileName.Substring(0, dotPos);

            string ext = fileName.Substring(dotPos + 1);

            fileName = namewithoutext + j + "." + ext;

            filepath = Server.MapPath("~/OriginalVideo/" + fileName);

        }

        try
        {

            this.fileuploadImageVideo.SaveAs(filepath);

        }

        catch
        {

            // return false;

        }

        string outPutFile;

        outPutFile = "~/OriginalVideo/" + fileName;

        int i = this.fileuploadImageVideo.PostedFile.ContentLength;

        System.IO.FileInfo a = new System.IO.FileInfo(Server.MapPath(outPutFile));
        string cmd = "-y -ss 00:00:00 -to 00:00:10 -i " + inputPath + "\\" + fileName + " -vcodec copy -acodec copy " + outputPath + "\\" + fileName.Remove(fileName.IndexOf(".")) + ".mp4";

        ConvertNow(cmd);


        return true;

}

private void ConvertNow(string cmd)
{

    string exepath;

    string AppPath = Request.PhysicalApplicationPath;

    //Get the application path

    exepath = AppPath + "ffmpeg\\ffmpeg.exe";

    Process proc = new Process();

    proc.StartInfo.FileName = exepath;
    //Path of exe that will be executed, only for "filebuffer" it will be "flvtool2.exe"

    proc.StartInfo.Arguments = cmd;
    //The command which will be executed

    proc.StartInfo.UseShellExecute = false;

    proc.StartInfo.CreateNoWindow = true;

    proc.StartInfo.RedirectStandardOutput = false;

    proc.Start();
    //while (proc.HasExited == false)
    //{

    //}

}

0 个答案:

没有答案