从视频中提取的ffmpeg管道图像


8

我可以使用以下命令使用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从视频中提取图像?


试试-f png - | ...
Gyan

@Mulvya这会导致出现错误[NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument
Birjolaxew

2
尝试-f image2pipe -vcodec png - | ...。PNG可能不起作用,如果这样,则删除vcodec后输出将是MJPEG。
Gyan

@Mulvya确实确实有效。非常感谢您:)
Birjolaxew

Answers:


7

就在这里!

添加参数-f image2pipe,并将输出文件名指定为单个连字符(-在此情况下,其含义为stdout),并将输入文件名也指定为单个连字符(-i -此情况下,其含义为stdin),并显式指定输出格式(例如,对于png :)-c:v png,这是一个完整的示例:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.