我正在使用ffmpeg进行视频转换,它在本地工作正常。 但是当我在线上传网站时,它并没有转换视频。如果我在服务器中安装ffmpeg,它显示操作失败。
public void convertFile()
{
lblStatus.Visible = false;
try
{
int i = sFile.LastIndexOf(".");
thumb = sFile.Remove(i);
thumb = thumb + ".jpg";
video = Page.MapPath("../VideoOut/" + sFile);
Image = Page.MapPath("../VideoSnapShots/" + thumb);
ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = " -i \"" + video + "\" -vframes 1 -ss 00:00:10 -s 150x150 -f image2 -vcodec mjpeg \"" + Image + "\""; // arguments !
ffmpeg.StartInfo.FileName = Page.MapPath("FFMPEG\\ffmpeg.exe");
ffmpeg.Start();
Session["image"] = thumb;
string mpg;
string VideoOut;
int j = sFile.LastIndexOf(".");
mpg = sFile.Remove(j);
mpg = mpg + ".flv";
video = Page.MapPath("../VideoOut/" + sFile);
VideoOut = Page.MapPath("../Videos/" + mpg);
ffmpeg.EnableRaisingEvents = true;
ffmpeg.StartInfo.Arguments = " -i \"" + video + "\" -ar 22050 \"" + VideoOut + "\"";
ffmpeg.StartInfo.FileName = Page.MapPath("FFMPEG\\ffmpeg.exe");
ffmpeg.Start();
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.CreateNoWindow = false;
ffmpeg.StartInfo.RedirectStandardError = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
ffmpeg.WaitForExit();
ffmpeg.Close();
Session["videosrc"] = mpg;
InsertVideo();
File.Delete(video);
}
catch (Exception ex)
{
lblStatus.Visible = true;
lblStatus.Text = ex.Message;
}
}
答案 0 :(得分:0)
如果您提出问题,请明确说明您的问题。
无论如何,我会试着回答:
您不需要在服务器上安装ffmpeg,也许您的代码不正确,或者其他任何东西都可能导致问题。看看我下面的博客文章,也许这可以帮到你。