在C#中使用ffmpeg将两个mp4视频合并为单个视频无法正常工作

时间:2016-02-12 06:25:40

标签: c# ffmpeg video-streaming

在过去的4个小时里,我一直试图在C#中使用ffmpeg将2个.mp4文件合并为一个。

****我的代码如下:****

   public void MergeFiles(string strFile)
    {
        string strParam;

        string Path_FFMPEG = Server.MapPath("~/Video_Clips/ffmpeg.exe");

        //Merging two videos               
        String video1 = Server.MapPath("~/Videos/fast1.mp4");
        String video2 = Server.MapPath("~/Videos/fast2.mp4");
        String file = Server.MapPath("~/Videos/input.txt");
        String strResult =   Server.MapPath("~/Videos/ConvertedFiles/Output.mp4");

        strParam = " -f concat -i " + file + " -c copy " + strResult;

        process(Path_FFMPEG, strParam);
    }

   public void process(string Path_FFMPEG, string strParam)
    {
        try
        {
            Process ffmpeg = new Process();
            ProcessStartInfo ffmpeg_StartInfo = new ProcessStartInfo(Path_FFMPEG, strParam);
            ffmpeg_StartInfo.UseShellExecute = false;
            ffmpeg_StartInfo.RedirectStandardError = true;
            ffmpeg_StartInfo.RedirectStandardOutput = true;
            ffmpeg.StartInfo = ffmpeg_StartInfo;
            ffmpeg_StartInfo.CreateNoWindow = true;
            ffmpeg.EnableRaisingEvents = true;
            ffmpeg.Start();
            ffmpeg.WaitForExit(30000);
            //ffmpeg.WaitForExit();
            ffmpeg.Close();
            ffmpeg.Dispose();
            ffmpeg = null;
        }
        catch (Exception ex)
        {

        }
    }

我的input.txt文件如下:

要加入的文件列表(评论)

file' D:/Kapil_WorkSpace/ExtraProjectSource/VideoDemo/VideoDemo/Videos/fast1.mp4'

file' D:/Kapil_WorkSpace/ExtraProjectSource/VideoDemo/VideoDemo/Videos/fast2.mp4'

请帮忙。提前致谢。

1 个答案:

答案 0 :(得分:0)

最后,我找到了自己问题的答案。

我使用了ffmpeg.exe文件,并且有32位系统,我使用的是64位。 所以,问题在于ffmpeg构建文件。我已经下载了新的64位版本。

另一个问题是input.txt文件中的视频路径是错误的。所以,使它正确并且它完全正常工作。但是某些视频需要花费太多时间,而某些视频的工作速度更快。我不知道是什么原因。

全部谢谢