将 ffmpeg showinfo (仅)重定向到管道,同时将其他输出保留在 stderr 上

将 ffmpeg showinfo (仅)重定向到管道,同时将其他输出保留在 stderr 上

我正在使用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都可以,无所谓)?

相关内容