【问题标题】:create multiple movie thumbnails using ffmpeg (one at a time) failing使用 ffmpeg 创建多个电影缩略图(一次一个)失败
【发布时间】:2013-09-03 03:54:19
【问题描述】:

我正在使用这段代码来创建上传到我网站的视频的缩略图:

public static void GetThumbnail(string video, string thumbnail)
{
    var cmd = "ffmpeg  -itsoffset -1  -i " + '"' + video + '"' + " -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 " + '"' + thumbnail + '"';
    var startInfo = new ProcessStartInfo
    {
        WindowStyle = ProcessWindowStyle.Hidden,
        FileName = "cmd.exe",
        Arguments = "/C " + cmd
    };

    var process = new Process
    {
        StartInfo = startInfo
    };

    process.Start();
}

我正在异步上传一个视频。第一个视频缩略图创建得很好,但没有创建后续的每个缩略图。我注意到,如果我尝试从文件系统中删除后续视频,它会说它无法删除它们,因为它们正在被 ffmpeg 使用。我可以删除第一个完成处理的就好了。我必须从任务管理器中杀死所有其他打开的 ffmpeg 进程。为什么 ffmpeg 只在第一次工作,然后在打开过程中保持视频打开?

我还尝试从命令提示符一次创建多个缩略图,效果很好(该过程也不会保持打开状态)。

我在我的 c# 代码中缺少什么来确保进程完成然后终止?

【问题讨论】:

    标签: c# process ffmpeg


    【解决方案1】:

    哇!我真的很愚蠢。我为每个缩略图使用了相同的文件名,命令行中出现了一个对话框,询问我是否要覆盖现有的缩略图。

    当我将文件名更改为动态创建时,一切都很好。

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2017-04-30
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2011-12-12
      • 2021-11-04
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多