ffmpeg 从视频中提取管道图像

ffmpeg 从视频中提取管道图像

我可以使用以下命令使用 ffmpeg 从视频中提取图像,并将其保存到文件系统:

... | ffmpeg -i - -f image2 'img-%03d.png'

我想将这些图像通过管道传输到另一个应用程序,而不是将它们保存到文件系统 - 如何在管道中分离它们并不重要,因为它将是我自己控制的 NodeJS 脚本。

以下操作无效:

... | ffmpeg -i - -f image2 pipe: | ...

错误

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument

有没有办法使用 ffmpeg 将从视频中提取的图像输出,而不使用文件系统?

答案1

就在这里!

添加参数-f image2pipe,并将输出文件名指定为单个连字符(-,在这种情况下它的意思是stdout),并将输入文件名也指定为单个连字符(-i -,在这种情况下它的意思是stdin)并明确指定输出格式(例如对于 png: -c:v png),这是一个完整的例子:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -

相关内容