Tag: ffmpeg

为什么ffmpeg在进程中间随机停止?

ffmpeg感觉好像花了很长时间。 然后我看看我的输出文件,我看到它在6到8mbs之间停止。 完全编码的文件大约是14mb。 为什么ffmpeg会停止? 我的代码锁定了StandardOutput.ReadToEnd();. 我不得不杀死这个过程(看到它不会移动超过10秒,当我看到它每秒更新一次)然后我得到stdout和错误的结果。 stdout是“”stderr在下面。 输出消息显示文件大小已结束。 我也看到停止时CPU使用率下降。 我从视觉工作室复制了这个论点。 CD到同一工作目录并运行cmd(bin / ffmpeg)并粘贴参数。 它能够完成。 注意:我必须先退出并错误检查是否有故障。 int soundProcess(string infn, string outfn) { string aa, aa2; aa = aa2 = “DEAD”; var app = new Process(); app.StartInfo.UseShellExecute = false; app.StartInfo.RedirectStandardOutput = true; app.StartInfo.RedirectStandardError = true; //*/ app.StartInfo.FileName = @”bin\ffmpeg.exe”; app.StartInfo.Arguments = string.Format(@”-i “”{0}”” -ab 192k -y {2} […]

如何限制FFMpeg CPU使用率?

我在C#Windows窗体应用程序中调用FFMpeg。 由于它使用了如此多的CPU(总是高于90%),我的所有线程都无法继续工作。 有没有办法限制这种CPU使用率? 我试图将Process.PriorityClass设置为PriorityClass.BelowNormal,但这完全阻止了ffmpeg进程。 我确信有一种方法可以做到这一点,因为我看到很多程序都使用ffmpeg。 请帮忙。

如何在c#中的ffmpeg中使用管道

我有100个jpeg。 我使用ffmpeg编码为一个写入硬盘的video文件。 有没有办法将它直接传递给字节/流? 我正在使用C#,我正在使用进程类来启动ffmpeg。 谢谢

多个video源合并为一个

我正在寻找一种有效的方法来做到以下几点: 使用几个源video(长度大致相同),我需要生成一个输出video,该video由在其自己的区域中运行的所有原始源组成(就像一堆不同大小的PIP )。 因此,最终结果是所有原件并排运行,每个原件都在自己的区域/盒子中。 源和输出需要是flv ,我使用的平台是Windows(Windows 7 64位开发,部署到Windows Server 2008)。 我看过avisynth,但不幸的是它无法处理flv和非插件和我尝试过的flv分离器。 我当前的进程以下列方式使用ffmpeg : 使用ffmpeg为每个video生成每秒25个png,根据需要调整原始大小。 使用System.Drawing命名空间将每组帧组合成一个新图像,从静态背景开始,然后将每个帧加载到一个Image并绘制到背景Graphics对象 – 这给了我组合的帧。 使用ffmpeg将生成的图像合并到video中。 所有这些都是IO密集型(这是我目前的处理瓶颈),我觉得必须有一种更有效的方法来实现我的目标。 我没有太多的video处理经验,也不知道那里有什么选择。 有人能建议一种更有效的方法来处理这些吗?

如何在c#中停止ffmpegvideo录制?

我在应用程序中使用FFmpeg并且它完美地启动和录制video但是当我想要停止它请求按“q”时,我收到了System.EntryPointNotFoundException错误消息。 如何从应用程序向处于运行状态的进程发送消息“q” int key_q = 81; [DllImport(“user32.dll”, EntryPoint = “postmessage”)] private static extern bool postmessage(IntPtr hwnd, uint msg, int wparam, int lparam); private void button_stop_Click(object sender, EventArgs e) { string process = “ffmpeg”; Process[] pro = Process.GetProcessesByName(“ffmpeg”); pro[0].Refresh(); IntPtr h = pro[0].MainWindowHandle; postmessage(h, 0x100, key_q, 0); }

我可以使用ffmpeg将JPEG输出到内存流而不是文件吗?

我有一个C#应用程序。 我有100个JPEG(例如)。 我可以轻松地将其编码为video文件。 当它在客户端应用程序上完成编码后,我将FTP上传到我的服务器。 如果我不能将video文件写入光盘而是将其写入内存流(或字节数组)并通过Web服务上传,那将是“更整洁”? 我已经查看了ffmpeg文档,但作为C#开发人员,我发现理解C示例并不自然。 我想我的第一个问题是可能的,如果有的话,任何人都可以在C#中发布示例代码吗? 目前我在C#中使用进程类来执行ffmpeg。

使用C#从ASP.Net MVC中的MP4文件获取video元数据的最佳方法是什么?

我一直在谷歌和StackOverflow上搜索好几个小时。 StackOverflow似乎有很多类似的问题,但它们都是3 – 5年左右。 如今使用FFMPEG仍然是从.NET Web应用程序中的video文件中提取元数据的最佳方式吗? 如果是这样,那里最好的C#包装器是什么? 我试过MediaToolkit,MediaFile.dll没有任何运气。 我看到ffmpeg-csharpe,但看起来好几年没有被触及过。 我还没有找到关于这个主题的任何现有数据。 是否能够从内置于最新版.NET的video中提取元数据? 我现在基本上都在寻找任何方向。 我应该补充说,无论我使用什么,每小时都可以调用数千次,因此需要高效。

ffmpeg可以刻录时间代码吗?

我需要将时间代码刻录到video中,并且想知道这是否是ffmpeg能够做到的事情?

C#和FFmpeg最好没有shell命令?

我希望能够使用FFmpeg从我的C#程序中转换video文件。 我知道我可以调用一个shell命令, 但是有更好的方法吗? 通过shell调用命令的问题是,我不确定你可以做进度条等事情……或者你可以吗? 如果没有办法,任何人都可以建议布局一些框架来执行shell命令的最佳方法。 通过一根长长的绳子非常麻烦。

在C#中使用图像制作video的工作方式

有没有人用一种已知的可靠方法从一系列图像文件中创建video? 在你发布问题之前没有搜索答案,然后在发出诸如“使用FFMPEG”之类的简单消息之前,请先阅读其余内容。 我正在尝试创建一个video,只要它得到广泛支持,从一系列图像(.jpg,.bmp等)开始,格式无关紧要。 我的平台是Windows Server 2008,64位。 如果我可以在我的C#程序中制作video,那很好,但我不反对将一系列图像文件写入目录,然后启动外部程序从这些图像制作video。 唯一的限制是:它必须在我的Windows Server 2008系统上运行,并且可以编写脚本。 也就是说,没有需要操作员干预的GUI程序。 我在StackOverflow上发现了许多类似的问题,并尝试了几种解决方案,所有这些解决方案都有不同程度的挫败感,没有任何成功的方法。 FFMPEG看起来像一个伟大的计划。 也许是在Linux上。 我下载的两个Windows版本已损坏。 给定此命令行: ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi 其中一个构建会读取图像,然后由于数据执行阻止而崩溃。 另一个读取第一个文件然后吐出一条错误消息“无法找到合适的文件jpeg / image2.jpg编解码器”。 有帮助,那。 无论如何,在Windows下,FFMPEG看起来像一个非首发。 以前发布的一个答案推荐Splicer 。 它看起来很不错。 我编译了样本并尝试运行,但是得到了一些关于未找到文件的神秘错误消息。 看起来COM类没有注册。 我想我需要安装一些东西(DirectShow,也许,虽然我认为已经安装了?)。 根据需要,我可能很难在服务器上安装它。 (“什么?为什么在服务器上需要它?”) 另一个答案提出了Code Project的AviFile库。 这看起来很简单:围绕Windows AviFile子系统的包装器。 除了包创建的AVI文件似乎具有所有帧,但是当我在Windows Media Player中播放AVI时,只显示第一帧。 那么,如果您尝试创建压缩video,该程序会抛出exception。 所以,我想知道是否有一种好的,可靠的方式来做我想要的:在Windows系统上,通过.NET API或使用一个图像从一系列图像创建AVI或其他常见的video文件格式外部计划。 有帮助吗?