Bir*_*xew 10 video linux ffmpeg pipe
我可以使用以下命令从使用 ffmpeg 的视频中提取图像,并将它们保存到文件系统:
... | ffmpeg -i - -f image2 'img-%03d.png'
Run Code Online (Sandbox Code Playgroud)
我想将这些图像通过管道传输到另一个应用程序,而不是将它们保存到文件系统 - 它们在管道中的分离方式并不重要,因为它将是我自己控制的 NodeJS 脚本。
以下不起作用:
... | ffmpeg -i - -f image2 pipe: | ...
Run Code Online (Sandbox Code Playgroud)
错误与
[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
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用文件系统的情况下使用 ffmpeg 从视频中提取图像?
就在这里!
添加参数-f image2pipe,并将输出文件名指定为单个连字符(-,在此上下文中表示stdout),并将输入文件名也指定为单个连字符(-i -,在此上下文中表示stdin)并明确指定输出格式(例如,对于 png :) -c:v png,这是一个完整的例子:
ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
Run Code Online (Sandbox Code Playgroud)