C# Asp.Net虚拟机中的Enreco视频旋转未完成
我正在开发一个ASP.NETWebAPI,在其中我需要连接一些视频剪辑并旋转它们。当我在本地系统中尝试时,我也可以实现同样的效果。当我将同一个项目部署到Azure虚拟机时,我没有得到响应。我很确定在视频连接之前没有任何问题,因为我可以在预期的文件夹中看到连接的视频。下面是代码片段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
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");
希望这有助于……感谢您的快速回复。我查过之后再给你打电话