gpt4 book ai didi

python - 如何将一个程序(ffmpeg)的输出传递给python脚本?

转载 作者:行者123 更新时间:2023-12-04 23:15:14 25 4
gpt4 key购买 nike

我想做的是:

ffmpeg -i udp://224.10.10.10:15004 -qscale:v 2 sttest%04d.jpg

然后将其输出图像路径传递给 python 脚本,该脚本单独接收图像并对其进行操作,如 ffmpeg正在运行(最终我将使用 ffmpy 来调用 ffmpeg 而不是使用命令行工具,但现在出于测试目的,我从这里开始)。

我想这样做的一种方法是在每次处理图像时查看 ffmpeg 输出的目录以查看是否有新图像,然后将其加载到 python(使用 OpenCV)中——然后等待如果没有要处理的新图像,则需要一定的时间间隔。

但是有没有更好的方法来做到这一点,比如将图像的路径直接发送到某种队列,然后 python 脚本可以一个一个地处理?

最佳答案

由于 FFmpeg 没有流式传输“我生成的文件名”的输出,因此您唯一的选择是使用您拥有的文件系统。

根据您的操作系统,可能有一种方法可以在目录中触及新文件时获得通知。我不知道这是否适用于 linux、windows、os x,但值得研究。

事实上,这看起来很简单,您不必通过外部调用 ffmpeg 来完成。 ffmpeg 基本上是 libavcodec 的用户前端,一个用于对视频、音频等进行解码和编码的库。

因此,您可能只想使用 libavcodec在您的应用程序中。我实际上认为,如果使用实际的媒体流架构,您尝试做的事情会容易得多。 GStreamer 可能是您选择的工具,您可以直接从 python 使用它,但我没有经验知道这有多容易。

您的目标可能应该是直接在您的 python 程序中获取帧,而不是绕道将它们写入磁盘。

一个简单的 MJPEG (Motion JPEG) 转换器,简单地通过管道传输到 stdin如果您不想使用 libav*,您的程序可能是最简单的方法。或 gstreamer .

关于python - 如何将一个程序(ffmpeg)的输出传递给python脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com