C# Asp.Net虚拟机中的Enreco视频旋转未完成

C# Asp.Net虚拟机中的Enreco视频旋转未完成,c#,asp.net,azure,ffmpeg,virtual-machine,C#,Asp.net,Azure,Ffmpeg,Virtual Machine,我正在开发一个ASP.NETWebAPI,在其中我需要连接一些视频剪辑并旋转它们。当我在本地系统中尝试时,我也可以实现同样的效果。当我将同一个项目部署到Azure虚拟机时,我没有得到响应。我很确定在视频连接之前没有任何问题,因为我可以在预期的文件夹中看到连接的视频。下面是代码片段 var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); NReco.VideoConverter.ConcatSettings set

我正在开发一个ASP.NETWebAPI,在其中我需要连接一些视频剪辑并旋转它们。当我在本地系统中尝试时,我也可以实现同样的效果。当我将同一个项目部署到Azure虚拟机时,我没有得到响应。我很确定在视频连接之前没有任何问题,因为我可以在预期的文件夹中看到连接的视频。下面是代码片段

 var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
            NReco.VideoConverter.ConcatSettings set = new NReco.VideoConverter.ConcatSettings();
            ffMpeg.GetVideoThumbnail(_fileNames[0], imageRootPath + tobename + ".jpg");
  if (_fileNames.Count() > 1)
            {
                ffMpeg.ConcatMedia(_fileNames, videoRootPath + tobename + "_r.mp4", NReco.VideoConverter.Format.mp4, set);

                string path = HttpContext.Current.Server.MapPath("~\\bin\\");
                System.Diagnostics.Process ffmpeg = new System.Diagnostics.Process();
                ffmpeg.StartInfo.FileName = path + "\\" + "ffmpeg.exe";
                ffmpeg.StartInfo.Arguments = "-i " + videoRootPath + tobename + "_r.mp4" + " -c copy -metadata:s:v:0 rotate=90 " + videoRootPath + tobename + ".mp4";
                ffmpeg.Start();
                ffmpeg.WaitForExit();
            }
ConcateMedia工作正常。我不明白为什么我调用的外部进程没有完成。在我当地的VisualStudio中,同样的作品工作得很好


提前感谢您

您的路径以斜线结尾,当将路径添加到一起时,您也会添加斜线

使用路径。合并

string path = HttpContext.Current.Server.MapPath("~\\bin");

ffmpeg.StartInfo.FileName = System.IO.Path.Combine(path, "ffmpeg.exe");

似乎您正在使用Nreco视频转换器连接视频,并使用外部进程旋转视频

您可以始终使用Invoke方法编写自定义命令行。像这样的

ffMpeg.Invoke("-i " + videoRootPath + tobename + "_r.mp4" + " -c copy -metadata:s:v:0 rotate=90 " + videoRootPath + tobename + ".mp4");

希望这有助于……

感谢您的快速回复。我查过之后再给你打电话