我正在通过从C#代码启动ffmpeg进程来提取单个视频帧。默认行为是将这些映像写入磁盘。但是为了加快处理速度,我想重定向ffmpeg标准输出以接收流并在程序中进一步处理它。
我正在使用与此类似的参数:
-i \"" + Filename + "\" -vf \"scale=640:-1\" -an -vframes 100 -r 1 -f image2 -
Run Code Online (Sandbox Code Playgroud)
这会将字节流重定向到标准输出,我可以使用将其重定向到程序process.StartInfo.RedirectStandardOutput = true。
对于电影流,这可能很好用,因为我只有一个单一的输出,但是上面的调用将产生10个单个图像(当写入硬盘时),我如何解析标准输出的字节流并将其拆分为单个文件?
我找到了一个似乎有效的解决方案,但奇怪的是ffmpeg 文档中没有提到:用作image2pipe输出格式。
所以对于上面的例子来说,它是:
-i \"" + Filename + "\" -vf \"scale=640:-1\" -an -vframes 100 -r 1 -f image2pipe -
Run Code Online (Sandbox Code Playgroud)
这会将字节流重定向到标准输出并允许捕获和解析图像
| 归档时间: |
|
| 查看次数: |
3150 次 |
| 最近记录: |