我有一个节点脚本,其中包含以下行:
execSync('ffmpeg -loglevel panic -i ${path} -acodec copy -f segment -segment_time 10 -vcodec copy -reset_timestamps 1 -map 0 ./tmp/%d.ts');
基本上,我将给定视频分成10秒段。这适用于我安装了ffmpeg的开发机器:
然而,当我将代码推送到我的ec2实例(运行linux AMI)时,我遇到了这个崩溃:
Error: Command failed: ffmpeg -loglevel panic -i ../test11.mp4 -acodec copy -f segment -segment_time 10 -vcodec copy -reset_timestamps 1 -map 0 ./tmp/%d.ts
我已经检查过所有文件和目录都存在并在两种情况下都正确组织。我唯一推断的是ffmpeg版本因机器而异,所以:
(developpement-Machine)$ ffmpeg -version
(developpement-Machine)$ ffmpeg版本3.0.2版权所有(c)2000-2016 FFmpeg开发人员
(ec2)$ ffmpeg -version
(ec2)$ ffmpeg版本N-61041-g52a2138
是不是ffmpeg版本问题是这里的罪魁祸首,如果是这样,我怎么能让它们同步?在本地我只是使用Homebrew来安装ffmpeg。在ec2上,我使用YUM作为包管理器来安装node和npm之前,但安装ffmpeg并不是一件容易的事。我试图在ffmpeg网站上忘记静态构建但是在取消它们之后我得到了一个目录目录,我不知道如何继续。我在ec2上安装的原始ffmpeg就在这里(http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-02-16.tar.gz)
无论哪种方式,我都没有取得进展,我可以花费接下来的6个小时来搞清楚我的linux shell中发生了什么。所以我意识到这个问题有点不集中但崩溃可能是一个ffmpeg版本?如果是这样,我如何在我的生产ec2服务器上安装我的ffmpeg本地版本?