如何将 ffmpeg 输出通过管道传输到 ImageMagick 的转换工具?
How to pipe ffmpeg output to ImageMagick's convert tool?
经过大量搜索后,我想到了将帧从 ffmpeg 传输到 imagemagick 的转换工具。
ffmpeg -y -ss 00:02:01 -i ...\pano.mp4 -frames:v 1 -f png - | convert -sharpen 0x1 ...\pano_00_02_01.png
我不断收到此错误消息。
[NULL @ 000002e6cd1e00c0] Requested output format 'png' is not a suitable output format
pipe:: Invalid argument
我已经使用 ffmpeg -format
检查了对 png 的支持,并将其列为 png_pipe
。
我正在使用 ffmpeg 版本 4.3。1-2020-11-19-full_build
https://www.gyan.dev/ffmpeg/builds/
在 ffmpeg
中没有名为 png
的混合器(参见 ffmpeg -muxers
)。要通过管道传输单个图像,请将 -f png
替换为 -c:v png -f image2
:
ffmpeg -y -ss 00:02:01 -i pano.mp4 -frames:v 1 -c:v png -f image2 - | convert - -sharpen 0x1 pano_00_02_01.png
如果您对此进行多次迭代,请考虑将 -c:v png
更改为 -c:v pam
,因为它速度更快(无需压缩)并且支持大多数相同的像素格式.
我还在 convert
命令中添加了 -
作为管道输入。
最初我建议 -f image2pipe
因为它应该与管道单图像和序列一起使用,因此对于更一般的答案会更灵活。它在 Linux 中有效,但在 Windows 中,OP 出现错误 av_interleaved_write_frame(): Invalid argument Error writing trailer of pipe:: Invalid argument
。我不知道为什么(不是 Windows 用户)。
经过大量搜索后,我想到了将帧从 ffmpeg 传输到 imagemagick 的转换工具。
ffmpeg -y -ss 00:02:01 -i ...\pano.mp4 -frames:v 1 -f png - | convert -sharpen 0x1 ...\pano_00_02_01.png
我不断收到此错误消息。
[NULL @ 000002e6cd1e00c0] Requested output format 'png' is not a suitable output format
pipe:: Invalid argument
我已经使用 ffmpeg -format
检查了对 png 的支持,并将其列为 png_pipe
。
我正在使用 ffmpeg 版本 4.3。1-2020-11-19-full_build https://www.gyan.dev/ffmpeg/builds/
在 ffmpeg
中没有名为 png
的混合器(参见 ffmpeg -muxers
)。要通过管道传输单个图像,请将 -f png
替换为 -c:v png -f image2
:
ffmpeg -y -ss 00:02:01 -i pano.mp4 -frames:v 1 -c:v png -f image2 - | convert - -sharpen 0x1 pano_00_02_01.png
如果您对此进行多次迭代,请考虑将
-c:v png
更改为-c:v pam
,因为它速度更快(无需压缩)并且支持大多数相同的像素格式.我还在
convert
命令中添加了-
作为管道输入。最初我建议
-f image2pipe
因为它应该与管道单图像和序列一起使用,因此对于更一般的答案会更灵活。它在 Linux 中有效,但在 Windows 中,OP 出现错误av_interleaved_write_frame(): Invalid argument Error writing trailer of pipe:: Invalid argument
。我不知道为什么(不是 Windows 用户)。