【发布时间】:2019-07-15 16:38:54
【问题描述】:
我正在尝试在 lambda 函数上运行 ffmpeg。我正在使用 Python 2.7 环境。我正在使用来自https://johnvansickle.com/ffmpeg/ 的最新静态版本。将 ffmpeg 二进制文件复制到 tmp 目录并修改为 555。
我正在运行以下命令:
subprocess.check_output(["/tmp/ffmpeg", "-r", "24","-i", "/tmp/"+background['video'], "-i", location+"%08d.png","-i", "/tmp/"+background['audio'],"-filter_complex", "'[0:v][1:v]overlay'","-shortest","-c:v", "libx264", "-vf","fps=24", "-pix_fmt", "yuv420p", "/tmp/output.mp4"])
我收到了错误:
AVFilterGraph @ 0x5b3b1c0] No such filter: '[0:v][1:v]overlay'
我看到了有关添加 stdin=subprocess.DEVNULL here 的信息,但我不知道如何添加,以及在这种情况下是否有帮助。
还有人有其他建议吗?
提前致谢。
迈克
【问题讨论】:
-
可能是引用问题。
-
感谢您的想法。我已经尝试过覆盖部分的单引号、双引号和无引号。还有什么我应该尝试的吗?
-
我不是 python 用户,所以我对这部分帮助不大。如果您显示正在执行的实际 ffmepg 命令,我可能会看到一些东西。与手头的确切问题无关,但您不能将
-filter_complex和-vf用于同一个流,否则您将收到一条错误消息告诉您这一点。在一个过滤器图中进行所有过滤:"[0:v][1:v]overlay,fps=24,format=yuv420p"。如果你这样做,你也可以删除-pix_fmt yuv420p。 -
嗨。我很抱歉回复缓慢。
subprocess.check_output编译命令的方式似乎存在问题。当我手动编译命令时,它奏效了。
标签: python ffmpeg aws-lambda