ffmpeg 幻灯片管道输入和输出图像流

ffmpeg 幻灯片管道输入和输出图像流

我正在尝试从图像列表中制作视频,然后直接上传。到目前为止,我已经成功使用以下方法为图像创建了视频:

cat *.jpg | ffmpeg -r 1 -f image2pipe -vcodec mjpeg -i - foo.mp4

它运行良好,我很满意。但是,现在我想通过管道传输输出,但我真的无法做到这一点。我尝试了以下几种方法:

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -vcodec mjpeg -i - pipe:1 | cat > p.mpeg

(目前我只想通过管道传输一个文件来进行测试,然后直接上传)。

我在另一个帖子中读到我应该指定输出格式,这是有道理的,因为 ffmpeg 返回的错误是“无法找到适合‘pipe:1’的输出格式”。然而,我在文档中能找到的只有:

-f fmt (input/output)
Force input or output file format. The format is normally auto detected 
for input files and guessed from the file extension for output files, 
so this option is not needed in most cases.

如何指定输出格式和输入格式?

答案1

您需要明确设置一些输出格式。具体设置哪种格式并不重要,但之后-i您需要:

  • -c:v copy复制 JPEG 流
  • A-f format
  • -作为输出管道

根据我的经验,matroska作为一种输出格式效果很好。

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -c:v mjpeg -i - -c:v copy -f matroska - | ffplay -

我刚刚测试过,运行起来没有问题。当你这样做时,文件也会在 VLC 中播放,| cat > out.mkv而不是通过ffplay电话。

答案2

我目前无法让你的示例运行,所以我没有测试过。但我敢打赌你可以通过输入 -f 来设置输出格式“-i -”。(即 -f 是有状态的,并设置下一个输入/输出的格式。)

相关内容