gpt4 book ai didi

python ffmpeg子进程在heroku上不起作用

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

我制作了一个处理 gif 文件的机器人,并尝试将其上传到 heroku。

所以我安装了这个 buildpack https://elements.heroku.com/buildpacks/jonathanong/heroku-buildpack-ffmpeg-latest

我将此代码作为子进程运行:

id_name = "je4d" (is actually randomized bc it downloads different gifs)
path = "./media/%s.gif" % (id_name)
subprocess.run('ffmpeg -y -ignore_loop 0 -i %s -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -t 15 %s' % (path, path.replace(".gif", ".mp4")), shell=True)

因此,如果我在计算机上运行它,它会将 je4d.gif 转换为 .mp4 并且可以正常工作

如果我尝试通过执行 heroku run bash 在 heroku 上测试 ffmpeg
然后输入命令 ffmpeg -y -ignore_loop 0 -i ./media/je4d.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -t 15 ./media/je4d.mp4它也可以正常工作并制作 .mp4

但是,如果我从 python 在 heroku 上运行代码,它会这样做: [Errno 2] No such file or directory: 'ffmpeg -y -i ./media/3s1m8cw09sl11.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ./media/3s1m8cw09sl11.mp4': 'ffmpeg -y -i ./media/3s1m8cw09sl11.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ./media/3s1m8cw09sl11.mp4'
所以我认为下载可能有错误,所以我将路径更改为服务器上的静态文件,它仍然给我同样的错误。
有小费吗?

最佳答案

我认为在 Heroku 上进行转换的最佳方法是使用 FFmpeg 的纯 python 包装器。
点赞ffmpy .
这是一个例子:

第一:

pip install ffmpy

那么你可以像这样使用它:
from ffmpy import FFmpeg
ff = FFmpeg(
inputs={'je4d.gif': None},
outputs={'je4d.mp4': None}
)
ff.run()

关于python ffmpeg子进程在heroku上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355653/

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