我需要一个音频转换库。 在拉完头发之后..我放弃了一个事实,那就是那里没有这样的音频库。.那里的每个库都有一些或其他问题。

剩下的唯一选择是ffmpeg,这是最好的选择,但是不幸的是您不能在asp.net中使用它(我不是直接意思)。 网站上将转换文件的每个用户; 会启动一个exe吗? 我想我很快就会达到服务器内存的最大值。

底线:我将尝试使用ffmpeg.exe,看看它可以同时支持多少用户。

我去了ffmpeg网站,在Windows下载部分找到了3个不同的版本。 静态,共享和开发。

有谁知道哪个最好? 所有都打包在一个exe(静态)或dll中,而exe很小,可以在asp.net中使用它吗?

PS:任何人那里都有一个不错的图书馆..如果您能共享,那就太好了。

静态生成为每个程序(ffmpeg,ffprobe,ffplay)提供一个独立的.exe文件。

共享版本将每个库提供为单独的.dll文件(avcodec,avdevice,avfilter等)以及依赖于每个程序的那些库的.exe文件

开发包提供在其他程序中使用.dll文件所需的头文件和.lib / .dll.a文件。

===============>>#1 票数:1

ffMpeg是我使用过的最好的库,但是我不建议您尝试直接从asp.net调用它。

我所做的就是接受上传,将其存储在服务器上,或者存储在我的情况下的S3中,然后担任工作角色(如果使用的是类似Azure的角色),并且该过程不断查找和监视要转换的新文件。

如果您需要类似实时的解决方案,则可以更新数据库中的标志,并使用AJAX解决方案来轮询数据库以继续提供进度更新,然后在转换完成后提供下载链接。

我个人的方法是

  1. Azure Web角色
  2. Azure工作者角色
  3. ServiceBus

WorkerRole启动并正在监视ServiceBus队列中的消息。

ASP.NET站点上载文件并将其存储在S3或Azure中。然后,如果需要,ASP.NET站点会将信息记录在您的数据库中,并将消息发送到ServiceBus队列。

WorkerRole对此进行了转换。

如果需要实时监视解决方案,则ASP.NET网站上将需要AJAX。 否则,如果需要,您可以在完成后发送电子邮件。

使用排队过程还可以减轻您的负担,因为您在重负荷下只能等待一会儿,并且不会使所有事情停顿下来。 另外,如果对于一台服务器而言,负载过大,您可以根据需要扩展工作人员角色以平衡负载。

这是我从C#运行ffMpeg的方式(您将需要更改参数以满足您的要求)

String params = string.Format("-i {0} -s 640x360 {1}", input.Path, "C:\\FilePath\\file.mp4");

RunProcess(params);

private string RunProcess(string Parameters)
    {
        //create a process info
        ProcessStartInfo oInfo = new ProcessStartInfo(this._ffExe, Parameters);
        oInfo.UseShellExecute = false;
        oInfo.CreateNoWindow = true;
        oInfo.RedirectStandardOutput = true;
        oInfo.RedirectStandardError = true;

        //Create the output and streamreader to get the output
        string output = null; StreamReader srOutput = null;

        //try the process
        try
        {
            //run the process
            Process proc = System.Diagnostics.Process.Start(oInfo);
            proc.ErrorDataReceived += new DataReceivedEventHandler(proc_ErrorDataReceived);
            proc.OutputDataReceived += new DataReceivedEventHandler(proc_OutputDataReceived);

            proc.BeginOutputReadLine();
            proc.BeginErrorReadLine();

            proc.WaitForExit();

            proc.Close();
            proc.Dispose();
        }
        catch (Exception)
        {
            // Capture Error
        }
        finally
        {
            //now, if we succeeded, close out the streamreader
            if (srOutput != null)
            {
                srOutput.Close();
                srOutput.Dispose();
            }
        }



        return output;
    }

  ask by pessi translate from so

未解决问题?本站智能推荐:

1回复

从ffmpeg保存后打开jpg图像不起作用

在我的项目中,我正在保存视频,使用ffmpeg将格式转换为.swf。 转换和保存视频工作正常,但是创建缩略图时出现问题。 它保存一个“ picture.jpg”,但没有图像。 查看缩略图时,它只有正常的photoviewer标志,这很好,但是当我尝试打开图像时,它会显示Windows照片查
1回复

在asp.net剃须刀(C#)中使用ffmpeg

我知道这样的问题遍布整个互联网,但是我相信我的情况有所不同,我有一个ASP.NET 网页 (Razor C#),并且我有一个完整的视频共享网站,但我仍然不明白,我该如何转换使用ffmpeg在上传页面上将视频转换为mp4和webm,而不是将原始视频保存并添加到数据库中,而是希望添加转换后的版本。
1回复

在asp.net应用程序中使用ffmpeg查找水印路径时出错

我正在使用.net ffmpeg包装器在视频上发布水印。 如果我直接执行ffmpeg命令但是如果通过asp.net应用程序执行命令,则无法找到合适的水印png文件位置,则发布水印工作正常。 这是示例ffmpeg命令 我也试过直接代码 ffmpeg错误输出为 FF
3回复

如何在C#asp.net中使用FFMPEG获取视频时长

我想用C#获取字符串中的视频文件持续时间。 我搜索了互联网,我得到的是: 而且每个人都说要解析输出的持续时间。 这是我的代码 现在请告诉我如何保存输出字符串并在视频持续时间内解析它。 谢谢并恭祝安康,
1回复

使用ffmpeg在c#asp.net中合并视频

是否可以在ffmpeg的帮助下通过c#asp.net合并两个视频。 在ffmpeg文档中,他们给了我们cat命令。 但是它在asp.net中不起作用。 我以为只有Linux。 asp.net执行此命令,但没有输出。 帮我。
3回复

ffmpeg c#asp.net关于ProcessStartInfo的帮助

我编写了使用ffmpeg在c#asp.net中转换文件的代码。 执行时,它显示错误为“文件名,目录名或卷标签语法不正确”,但我的路径正确。 那么解决方案是什么? 我尝试了另一种方法,如下所示。 但这也是行不通的。 请帮助我提供示例代码,以在c#asp.net中使用ffmpe
1回复

通过c#asp.net组合ffmpeg的2个视频

我需要使用ffmpeg合并两个视频文件。 你能帮助我吗? 我尝试了cat命令,但效果不佳。 给我一些建议。
1回复

如何使用c#asp.net为ffmpeg创建加载屏幕

我有这个函数,Debug.WriteLine命令在哪里输出值。 如何将这些数据打印到网页中,以便模仿加载屏幕? 我通过* .ashx Web服务文件在外部调用此函数。
1回复

ffmpeg c#asp.net视频转换错误

以下代码显示错误为“ StandardOut尚未重定向或进程尚未开始”。 这段代码有什么问题? 需要任何更改吗? 它总是通过catch异常清除过程。
2回复

在asp.net中使用API

谁能指导我如何在asp.net中使用API​​(例如Twitter,Facebook,Tumblr等)? 我只想要一些可以教我在Web应用程序中使用API​​的东西。 提前致谢。