【发布时间】:2015-03-03 04:33:18
【问题描述】:
我想使用 ffmpeg 将视频数据包转换为 mjpeg,理想情况下,我想通过管道传输 gob 数据包并通过管道接收输出。
我正在使用 C# 进程来调用 ffmpeg,如下所示:
-f h264 -i 管道:-an -f mjpeg -q:v 1 管道:
我使用流程 .StandardInput.BaseStream 在源数据流中进行管道传输,并从 .StandardOutput.BaseStream 获取返回的数据。
问题是,FFmpeg 不发送数据。它坐着,显然在等待。没有错误。没有任何内容被写入 StandardOutput。
如果我单独尝试每个管道,它工作正常。这些工作:
a) 传入源文件位置并通过管道获取返回的帧数据(字节写入标准输出)
b) 通过管道传入源字节并要求 Ffmpeg 将结果保存到文件
这不起作用:
c) 管道输入数据,并通过管道获取数据。
从@nmaier 之前对这个问题的回答 (Can I use ffmpeg to output jpegs to a memory stream instead of a file) 我认为 pipe-in/pipe-out 应该可以工作。但事实并非如此。
我做错了什么?
谢谢。
【问题讨论】: