繁体   English   中英

使用FFMPEG上的输入和输出管道?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM