[英]Using Pipe for input and output on FFMPEG?
我想使用ffmpeg将视频数据包转换为mjpeg,理想情况下,我想通过管道传输gob数据包并通过管道接收输出。
我正在使用C#进程调用ffmpeg,如下所示:
-f h264 -i管道:-an -f mjpeg -q:v 1管道:
我使用.StandardInput.BaseStream进程通过管道传输源数据流,并从.StandardOutput.BaseStream获取返回的数据。
问题是,FFmpeg不发送数据。 它坐着,显然正在等待。 没有错误。 什么都没有写到StandardOutput。
如果我单独尝试每个管道,它都可以正常工作。 这些工作:
a)传递源文件位置,并通过管道获取返回的帧数据(字节被写入StandardOutput)
b)通过管道传递源字节并要求Ffmpeg将结果保存到文件
这不起作用:
c)管道输入数据,并通过管道获取数据。
从@nmaier的先前答案到这个问题( 我可以使用ffmpeg将 jpegs 输出到内存流而不是文件中 )我认为管道输入/管道输出应该起作用。 但事实并非如此。
我究竟做错了什么?
谢谢。
在一个程序中使用多个管道/多个方向似乎有些警告。 也许需要一些到目前为止尚未实现的多线程?
谷歌搜索(尝试“ Windows匿名管道等待直到终止”或“ Windows匿名管道等待直到终止”)时,我发现了这一点: http : //blogs.msdn.com/b/oldnewthing/archive/2011/07/07/10183884。 ASPX
本文介绍使用管道时可能出现的死锁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.