ffmpeg在Heroku上:无法识别的选项'preset'

科学的

我在本地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不建议使用,因为它会严重影响编码时间。

如果需要编译方面的帮助,请参阅如何在Ubuntu上编译FFmpeg建议进行编译,因为存储库中的所谓“ ffmpeg”程序包是来自fork的伪造,旧,错误和过时的版本,并且不能提供良好的AAC编码器。

至于ffmpeg命令选项:

  • -qscale是模棱两可的。你应该告诉ffmpeg的,如果它应适用于音频(-qscale:a-q:a)或视频(-qscale:v-q:v),但需要注意的是libx264忽略-qscale,你应该使用默认设置,或-crf如图所示的FFmpeg和X264编码指南

  • 无需添加-g 30 -aspect 1.7777777777777777默认设置-g应足够,我不明白为什么要强制使用看似任意的宽高比。

  • 考虑使用-vf scale=640:-1而不是显式强制使用硬尺寸,因为这可能会更改长宽比并导致挤压或拉伸外观。所述-1告诉FFmpeg同时保留宽高比自动计算的值。

  • 如果编译ffmpeg,请使用-codec:a libfdk_aac代替libfaac它将提供每个比特率更好的质量。有关更多信息,请参见FFmpeg和AAC编码指南

  • 我猜您正在制作要在网络上显示的视频。如果是,则将其添加-movflags +faststart为输出选项,以允许客户端在文件完全下载之前开始播放。仅适用于真正的ffmpeg,不适用于假垃圾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尽管使用 babel-preset-react、babel-preset-es2015 和 babel-preset-stage-3,browserify 仍无法解析 jsx

来自分类Dev

ffmpeg 无法识别的选项 'hls_enc'

来自分类Dev

FOS \ RestBundle,Symfony2上的“无法识别的选项”

来自分类Dev

wget:Windows上无法识别的选项`--no-check-certificate'

来自分类Dev

Behat“无法识别的选项”

来自分类Dev

Avconv无法识别的选项

来自分类Dev

无法从'C:\ repos \ ondemandProject \ ondemnd-web'找到模块'@ babel / preset-es2015'

来自分类Dev

ffmpeg:无法识别的选项'crf'。拆分参数列表时出错:找不到选项

来自分类Dev

ffmpeg无法识别'-af'选项

来自分类Dev

ffmpeg无法识别'-af'选项

来自分类Dev

babel-preset-env无法与webpack-dev-server v2.2.0-rc.0一起使用

来自分类Dev

Cygwin:转换:无法识别的选项-d

来自分类Dev

gcc:错误:无法识别的选项--wrap

来自分类Dev

Boost:位置参数无法识别的选项

来自分类Dev

Kafka无法识别的VM选项'PrintGCDateStamps'

来自分类Dev

libtool:无法识别的选项-static

来自分类Dev

Eclipse:无法识别的选项:-g

来自分类Dev

“ behat”下无法识别的选项“ suites”

来自分类Dev

Git - rm:无法识别的选项`--cached'

来自分类Dev

MongoDB:“无法识别的选项:systemLog”

来自分类Dev

在Linux上链接库时无法识别的选项--kill-at

来自分类Dev

.zshrc $-上无法识别的条件

来自分类Dev

BasicHttpBinding上无法识别的元素“ readerQuotas”

来自分类Dev

Babel插件transform-remove-console无法与Vue CLI 4 @ vue / cli-plugin-babel / preset一起使用吗?

来自分类Dev

无法识别的选项错误:shell中的getopt命令

来自分类Dev

关于“ gcc:无法识别的选项-rdynamic”的问题

来自分类Dev

无法识别的命令行选项'-std = c ++ 11'

来自分类Dev

如何在Linux中grep'---'?grep:无法识别的选项“ ---”

来自分类Dev

多个连接无法识别的选项“ mapping_types”

Related 相关文章

  1. 1

    尽管使用 babel-preset-react、babel-preset-es2015 和 babel-preset-stage-3,browserify 仍无法解析 jsx

  2. 2

    ffmpeg 无法识别的选项 'hls_enc'

  3. 3

    FOS \ RestBundle,Symfony2上的“无法识别的选项”

  4. 4

    wget:Windows上无法识别的选项`--no-check-certificate'

  5. 5

    Behat“无法识别的选项”

  6. 6

    Avconv无法识别的选项

  7. 7

    无法从'C:\ repos \ ondemandProject \ ondemnd-web'找到模块'@ babel / preset-es2015'

  8. 8

    ffmpeg:无法识别的选项'crf'。拆分参数列表时出错:找不到选项

  9. 9

    ffmpeg无法识别'-af'选项

  10. 10

    ffmpeg无法识别'-af'选项

  11. 11

    babel-preset-env无法与webpack-dev-server v2.2.0-rc.0一起使用

  12. 12

    Cygwin:转换:无法识别的选项-d

  13. 13

    gcc:错误:无法识别的选项--wrap

  14. 14

    Boost:位置参数无法识别的选项

  15. 15

    Kafka无法识别的VM选项'PrintGCDateStamps'

  16. 16

    libtool:无法识别的选项-static

  17. 17

    Eclipse:无法识别的选项:-g

  18. 18

    “ behat”下无法识别的选项“ suites”

  19. 19

    Git - rm:无法识别的选项`--cached'

  20. 20

    MongoDB:“无法识别的选项:systemLog”

  21. 21

    在Linux上链接库时无法识别的选项--kill-at

  22. 22

    .zshrc $-上无法识别的条件

  23. 23

    BasicHttpBinding上无法识别的元素“ readerQuotas”

  24. 24

    Babel插件transform-remove-console无法与Vue CLI 4 @ vue / cli-plugin-babel / preset一起使用吗?

  25. 25

    无法识别的选项错误:shell中的getopt命令

  26. 26

    关于“ gcc:无法识别的选项-rdynamic”的问题

  27. 27

    无法识别的命令行选项'-std = c ++ 11'

  28. 28

    如何在Linux中grep'---'?grep:无法识别的选项“ ---”

  29. 29

    多个连接无法识别的选项“ mapping_types”

热门标签

归档