ffmpeg提取img%d.jpg图像时能否直接管道传输给其他软件无需本地保存?
问题答案
这个需求完全可以实现,ffmpeg原生支持将输出内容定向到标准输出流,通过管道即可直接传递给下游可执行程序,全程不会生成本地文件。
实现方法
核心调整点如下:
- 将原命令中的输出文件名替换为
-,代表让ffmpeg把输出写入标准输出 - 新增
-f image2pipe参数,显式指定输出格式为图像管道流,避免因无输出文件名后缀导致ffmpeg无法自动推断格式 - 显式指定输出图像的编码格式,和你原需求的输出格式保持一致
如果你原本需要输出jpg格式,对接下游可执行程序的命令示例如下:
ffmpeg -i video -r 5 -f image2pipe -vcodec mjpeg - | your_executable
如果你需要输出png格式,调整编码参数即可:
ffmpeg -i video -r 5 -f image2pipe -vcodec png - | your_executable
注意事项
- 下游可执行程序需要支持从标准输入读取对应格式的连续图像流,提前确认程序的输入格式要求和ffmpeg输出的格式匹配即可
- 如果需要调整抽帧参数(比如分辨率、画质等),可以在ffmpeg命令中正常添加对应的参数,和原来的本地输出用法没有区别
内容的提问来源于stack exchange,提问作者code0x00
相关产品推荐
相关产品推荐

