我正在使用ffmpeg
来帮助处理视频,将它分解成更小的区域,然后通过管道传输到我的程序进行处理。
我ffmpeg
像这样运行:
ffmpeg \
-y \
-ss 2841000000us \
-to 2843000000us \
-i "<INPUT_URL>" \
-fps_mode passthrough \
-an \
-filter_complex "[v:0]fps=fps=4[t1];[t1]showinfo[out1];[out1]split=4[out2][out3][out4][out5];[out5]crop=711:10:1044:90[out9];[out4]crop=711:10:165:90[out8];[out3]crop=73:63:1764:964[out7];[out2]crop=73:63:82:964[out6]" \
-map [out6] -c:v bmp -f image2pipe "\\.\pipe\ofl_80ff20228c90467e89709bd8052b572a" \
-map [out7] -c:v bmp -f image2pipe "\\.\pipe\ofl_0585f9807eef4b1397075ef4aabf9fd1" \
-map [out8] -c:v bmp -f image2pipe "\\.\pipe\ofl_fe0eba9becbd488fb9f09e1c7c479eb7" \
-map [out9] -c:v bmp -f image2pipe "\\.\pipe\ofl_6f03f63dd4a6435eb4a3e45017528ec0"
这很有效,我能够得到我想要的框架。
此外,它还输出每帧的时间戳信息。
不过,我正在寻找一种方法来输出showinfo
(和仅有的 showinfo
) 到我可以在我的程序中获取的内容。
它目前正在重定向到 stderr,但它与其他信息混合在一起,我宁愿阅读并保持分开(在发生错误等的情况下)。
有没有办法可以引导字节/输出showinfo
(和仅有的 showinfo
)到命名管道(Windows或Unix都可以,无所谓)?