没有数据从 ffmpeg 写入 stdin 或 stderr

No data written to stdin or stderr from ffmpeg

我有一个假设模拟录像机的虚拟客户端,我想在这个客户端上模拟视频流;到目前为止,我可以从我在代码中创建的位图图像创建视频。

虚拟客户端是 运行 上的一个 nodejs 应用程序 Raspberry Pi 3,具有最新版本的 raspian lite。

为了使用我创建的视频,我需要获取 ffmpeg 以将视频转储到 pipe:1。问题是我需要 -f rawvideo 作为输入参数,否则 ffmpeg 无法理解我的视频,但是当我设置了该参数时,ffmpeg 拒绝向 stdio

写入任何内容

ffmpeg就是运行这些参数

ffmpeg -r 15 -f rawvideo -s 3840x2160 -pixel_format rgba -i pipe:0 -r 15 -vcodec h264 pipe:1

任何人都可以帮助解决我的问题吗?

--编辑

也许我应该再解释一下。 我正在创建的系统将以某种方式设置,而不是我的流服务器向录像机请求视频流,而是录像机告诉服务器有流。

我自己已经减缓了我的问题。 (-:

我现在有 2 个解决方案。

  1. 就是把我的 -f rawvideo 改成 -f data 反正对我有用。
  2. 我可以在代码中将我的位图编码为 jpeg,并将我的 jpeg 图像通过管道传输到标准输入。这还需要我将 ffmpeg 参数更改为 -r 4 -f mjpeg -i pipe:0 -r 4 -vcodec copy -f mjpeg pipe:1,这是迄今为止我做过的最慢的事情。而且我不能使用 4k 输入

感谢@Mulvya 的帮助。

@eFox 感谢您编辑我愚蠢的拼写和语法错误