加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Heroku上的ffmpeg:无法识别的选项’预设’

发布时间:2020-12-17 03:40:46 所属栏目:百科 来源:网络整理
导读:我在我的本地Rails应用程序中使用ffmpeg版本1.2.4来转换视频文件.当我在本地运行应用程序时,一切都按预期工作.当我部署到heroku时,我为ffmpeg添加了一个buildpack: https://github.com/shunjikonishi/heroku-buildpack-ffmpeg 这将安装ffmpeg版本git-2013-0
我在我的本地Rails应用程序中使用ffmpeg版本1.2.4来转换视频文件.当我在本地运行应用程序时,一切都按预期工作.当我部署到heroku时,我为ffmpeg添加了一个buildpack:

https://github.com/shunjikonishi/heroku-buildpack-ffmpeg

这将安装ffmpeg版本git-2013-06-02-5711e4f.当我尝试将视频转码为mp4时,我收到以下错误:

无法识别的选项’预设’.拆分参数列表时出错:找不到选项

这是完整的日志:

2013-11-17T19:45:05.255059+00:00 app[web.1]: Running transcoding...
2013-11-17T19:45:05.255059+00:00 app[web.1]: ffmpeg -y -i /app/public/uploads/tmp/1384717504-2-9158/Untitled.mov -vcodec libx264 -acodec libfaac -s 640x360  -qscale 0 -preset slow -g 30 -aspect 1.7777777777777777 /app/public/uploads/tmp/1384717504-2-9158/tmpfile.mp4
2013-11-17T19:45:05.255059+00:00 app[web.1]: 
2013-11-17T19:45:05.317895+00:00 app[web.1]: Failed encoding...
2013-11-17T19:45:05.317895+00:00 app[web.1]: ffmpeg -y -i /app/public/uploads/tmp/1384717504-2-9158/Untitled.mov -vcodec libx264 -acodec libfaac -s 640x360  -qscale 0 -preset slow -g 30 -aspect 1.7777777777777777 /app/public/uploads/tmp/1384717504-2-9158/tmpfile.mp4
2013-11-17T19:45:05.317895+00:00 app[web.1]: 
2013-11-17T19:45:05.317895+00:00 app[web.1]: ffmpeg version git-2013-06-02-5711e4f Copyright (c) 2000-2013 the FFmpeg developers
2013-11-17T19:45:05.317895+00:00 app[web.1]:   built on Jun  2 2013 07:38:40 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
2013-11-17T19:45:05.317895+00:00 app[web.1]:   configuration: --enable-shared --disable-asm --prefix=/app/vendor/ffmpeg
2013-11-17T19:45:05.317895+00:00 app[web.1]:   libavutil      52. 34.100 / 52. 34.100
2013-11-17T19:45:05.317895+00:00 app[web.1]:   libavcodec     55. 13.100 / 55. 13.100
2013-11-17T19:45:05.317895+00:00 app[web.1]:   libavformat    55.  8.102 / 55.  8.102
2013-11-17T19:45:05.317895+00:00 app[web.1]:   libavdevice    55.  2.100 / 55.  2.100
2013-11-17T19:45:05.318137+00:00 app[web.1]:   libavfilter     3. 74.101 /  3. 74.101
2013-11-17T19:45:05.318137+00:00 app[web.1]:   libswscale      2.  3.100 /  2.  3.100
2013-11-17T19:45:05.318137+00:00 app[web.1]:   libswresample   0. 17.102 /  0. 17.102
2013-11-17T19:45:05.318137+00:00 app[web.1]: Unrecognized option 'preset'.
2013-11-17T19:45:05.318137+00:00 app[web.1]: Error splitting the argument list: Option not found
2013-11-17T19:45:05.318137+00:00 app[web.1]: 
2013-11-17T19:45:05.318137+00:00 app[web.1]: Errors: no output file created.

我认为错误可能是由于我在本地和Heroku上使用的ffmpeg版本的差异造成的.有没有人有关于如何解决这个问题的建议?

解决方法

您正在尝试使用编码器libfaac和libx264,但您的ffmpeg未编译为支持这些编码器. libfaac需要ffmpeg配置选项–enable-nonfree –enable-libfaac和libx264需要–enable-gpl –enable-libx264.建议不要使用–disable-asm,这会显着影响编码时间.

如果你需要帮助编译,请参阅How to Compile FFmpeg on Ubuntu.建议编译,因为存储库中的所谓“ffmpeg”软件包是假的,旧的,错误的,过时的version from a fork,它不提供良好的AAC编码器.

至于ffmpeg命令选项:

> -qscale是不明确的.您应告诉ffmpeg它是否应该应用于音频(-qscale:a或-q:a)或视频(-qscale:v或-q:v)但请注意libx264忽略-qscale并且您应该使用默认设置或-crf,如FFmpeg and x264 Encoding Guide所示.
>无需添加-g 30 -aspect 1.7777777777777777. -g的默认设置应该足够了,我不明白你为什么要强制看似任意的宽高比.
>考虑使用-vf scale = 640:-1而不是显式强制硬尺寸,因为这会改变纵横比并导致压扁或拉伸外观. -1告诉ffmpeg在保留宽高比的同时自动计算值.
>如果编译ffmpeg,则使用-codec:libfdk_aac而不是libfaac.它将提供更高的每比特率质量.有关详细信息,请参阅FFmpeg and AAC Encoding Guide.>我猜你正在制作视频以便在网上展示.如果是,则添加-movflags faststart作为输出选项,以允许客户端在文件完全下载之前开始播放.这只适用于真正的ffmpeg,而不是假垃圾.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读