我通过从我的 C# 代码启动 ffmpeg 进程来提取单个视频帧。默认行为是将这些图像写入磁盘。
然而,为了加快处理速度,我想重定向 ffmpeg 标准输出以接收流并在我的程序中进一步处理它。
我正在使用与此类似的参数:
-i \"" + Filename + "\" -vf \"scale=640:-1\" -an -vframes 100 -r 1 -f image2 -
这将字节流重定向到标准输出,我可以使用它重定向到我的程序process.StartInfo.RedirectStandardOutput = true
.
这对于电影流可能工作得很好,因为我只有一个输出,但是上面的调用会产生 10 个单个图像(写入硬盘时),如何从标准输出解析字节流并将其拆分为单个文件?
我找到了一个似乎有效的解决方案,但奇怪的是没有在ffmpeg 文档: Use image2pipe
作为输出格式。
所以对于上面的例子来说,它是:
-i \"" + Filename + "\" -vf \"scale=640:-1\" -an -vframes 100 -r 1 -f image2pipe -
这会将字节流重定向到标准输出并允许捕获和解析图像
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)