- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在本地 Rails 应用程序中使用 ffmpeg 版本 1.2.4 来转换视频文件。当我在本地运行应用程序时,一切都按预期工作。当我部署到 heroku 时,我为 ffmpeg 添加了一个构建包:
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
而不是明确强制使用硬尺寸,因为这会改变纵横比并导致外观被压扁或拉伸(stretch)。 -1
告诉 ffmpeg 在保持宽高比的同时自动计算值。
如果编译 ffmpeg,则使用 -codec:a libfdk_aac
而不是 libfaac
。它将提供更好的每个比特率质量。有关详细信息,请参阅 FFmpeg and AAC Encoding Guide。
我猜您正在制作要在网络上显示的视频。如果是,则添加 -movflags +faststart
作为输出选项,以允许客户端在文件完全下载之前开始播放。这仅适用于真正的 ffmpeg 而不是假垃圾。
关于ruby-on-rails - Heroku 上的 ffmpeg : unrecognized option 'preset' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20035338/
我很难理解两者之间的区别。有人可以解释为什么@babel/preset-env更有益于其targets ? 最佳答案 所有以 @ 为前缀的包都是 Babel 7 系列的一部分。几年前,npm 发布了他
我目前正在尝试了解 babel 配置,但被 babel-preset-** 弄糊涂了,babel 中有很多预设,比如 env,es2015, react 和其他人,我知道 babel-preset-e
我的问题是:babel-preset-stage-0 之间有什么区别? , babel-preset-stage-1 , babel-preset-stage-2和 babel-preset-stag
我已经安装了 babel 7.5,理想情况下它应该以 preset-env 包为目标,但不确定它为什么要寻找“babel-preset-es2015”。 你们能告诉我我做错了什么吗?下面是我的代码 p
我有一个 .js 文件,其中 react 导入了一个返回 span 标签的函数,如下所示: makeSpan = (number, prefix) => { return {prefix} {nu
这个问题在这里已经有了答案: Error: Couldn't find preset "react" when installed using npm install --global babel-
我有默认的 jest.config.js,但是当我想运行单元测试时,我收到一条错误消息: 验证错误:找不到预设@vue/cli-plugin-unit-jest/presets/typescript-
我有一个一直在使用 babel-preset-es2015 的 React 项目,它使用 webpack 构建得很好,但是自从我搬到了 babel-preset-env 模块构建失败。 出现此错误消息
我正在尝试转换编译我的 react/es6 代码并且来自 browserify。由于新的 babel 6 版本以及大多数教程现在已经过时的事实,我正在努力创建一个 webpack 构建。这适用于我的
我有一个使用 Typescript 和 @babel/preset-env 的项目。与 Webpack 捆绑失败并显示此错误和以下配置。 如果我取消注释该行,这会强制 @babel/plugin-pr
所以我有一个使用 create-react-app 引导的项目,当尝试使用 react-scripts build 构建时,我收到以下错误输出: 模块构建失败:错误:不允许插件/预设文件导出对象,只能
我正在尝试基于此代码笔示例构建一个简单的 Cloudinary 图像上传:https://codepen.io/team/Cloudinary/pen/QgpyOK -- 我已经将它转换为与 fetc
我使用 npm install --global babel-cli 安装了 Babel CLI(版本 6)。然后我使用 npm install --global babel-preset-react
我正在为我的 React 项目设置 Webpack,并对 babel 感到困惑, babel-core , babel-loader , babel-preset-2015和babel-preset-
如果您在新的 React 版本 0.57 和 TypeScript 中将测试与 Jest 和 Enzyme 集成,它们将无法工作。以下是重现的步骤: 创建一个新的 React Native 项目: r
安装时 npm install browserify babelify babel-preset-es2015 我正面临以下警告信息 npm WARN deprecated babel-preset-
我放置 -preset 选项的参数顺序是否重要?前任: ffmpeg -i source.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k -preset f
我有一个带有选择下拉列表的表单,我的选择标签如下所示: 现在我的 JavaScript 函数只是做 alert('test'); .好吧,当我在下拉列表中更改我的选择时,我收到一条错误消息,提示“预
我正在尝试使用 ffmpeg 将 .mpg 转换为 .flv。在其他服务器上我让它工作但在这里使用 ffmpeg 克隆(avconv)它只是不这样做。 最初我正在使用 libfaac 并预设 fast
尝试使用 AVCapureSessions 并尝试以不同的方式显示输出 CMSampleBufferRef(使用 AVCaptureVideoPreviewLayer,显示 CGImage 并将其转换
我是一名优秀的程序员,十分优秀!