我做了一个处理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上通过heroku run bash
测试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。 下面是一个例子:
首先:
然后你可以像这样使用它:
^{pr2}$相关问题 更多 >
编程相关推荐