Heroku 上的 Handbrake-js 不起作用。 http://localhost 一切正常
Handbrake-js on Heroku doesn't work. Everything works well for http://localhost
使用 npm install handbrake-js --save
命令,我将 handbrake-js 安装为库,经过一些调整后,handbrake-js 开始完美地完成工作。这就是问题所在。在本地计算机上一切正常,视频被解码等。但是(!)当我将我的应用程序上传到 Heroku 时,handbrake-js 停止工作。
手刹版本:
5.0.2
操作系统和版本:
macOS 10.15 卡特琳娜
我的应用程序使用节点 js
错误消息正文:
以下是 Heroku 在 Heroku 上部署应用程序时提供的信息:
Linux 用户
- handbrake-cli 必须作为 root 用户单独安装。
Ubuntu 用户可以使用以下命令执行此操作:
- add-apt-repository --yes ppa: stebbins / handbrake-releases
- apt-get更新-qq
- apt-get install -qq handbrake-cli
Heroku 日志:
以下是您尝试解码时发生的情况:
2020-12-02T18:34:14.124945+00:00 app[web.1]: Error: Command failed: "HandBrakeCLI" --input "public/images/02122020-123404_338-test.mov" --output "public/images/02122020-123404_338-test.mp4" --preset "Gmail Medium 5 Minutes 480p30"
2020-12-02T18:34:14.124948+00:00 app[web.1]: /bin/sh: 1: HandBrakeCLI: not found
2020-12-02T18:34:14.124948+00:00 app[web.1]:
2020-12-02T18:34:14.124949+00:00 app[web.1]: at ChildProcess.exithandler (child_process.js:308:12)
2020-12-02T18:34:14.124950+00:00 app[web.1]: at ChildProcess.emit (events.js:314:20)
2020-12-02T18:34:14.124950+00:00 app[web.1]: at maybeClose (internal/child_process.js:1022:16)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Socket.<anonymous> (internal/child_process.js:444:11)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Socket.emit (events.js:314:20)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Pipe.<anonymous> (net.js:675:12) {
2020-12-02T18:34:14.124952+00:00 app[web.1]: killed: false,
2020-12-02T18:34:14.124952+00:00 app[web.1]: code: 127,
2020-12-02T18:34:14.124953+00:00 app[web.1]: signal: null,
2020-12-02T18:34:14.124954+00:00 app[web.1]: cmd: '"HandBrakeCLI" --input "public/images/02122020-123404_338-test.mov" --output "public/images/02122020-123404_338-test.mp4" --preset "Gmail Medium 5 Minutes 480p30"'
2020-12-02T18:34:14.124954+00:00 app[web.1]: }
这是用于设置和开始解码的代码:
const options = {
input: req.files.video ? req.files.video[0].path : '',
output: newPathVideo,
preset: 'Gmail Medium 5 Minutes 480p30',
}
async function startEncoding () {
console.log('Start decoding video')
const result = await hbjs.run(options)
console.log(`${result.stdout}End decoding video`)
}
await startEncoding()
要使 handbrake-js
正常工作,您需要在 heroku 端全局安装 handbrake-cli
。为此,您需要使用第三方构建包,例如 heroku-buildpack-apt
。
要将此构建包添加到您的应用程序中,您可以使用命令
heroku buildpacks:add --index 1 heroku-community/apt -a your-app
确保在您的计算机上全局安装了 Heroku!
您还需要在项目根目录中创建一个名为 Aptfile
的文件,其中包含要安装的 apt 包列表,例如 handbrake-cli
.
使用 npm install handbrake-js --save
命令,我将 handbrake-js 安装为库,经过一些调整后,handbrake-js 开始完美地完成工作。这就是问题所在。在本地计算机上一切正常,视频被解码等。但是(!)当我将我的应用程序上传到 Heroku 时,handbrake-js 停止工作。
手刹版本: 5.0.2
操作系统和版本: macOS 10.15 卡特琳娜
我的应用程序使用节点 js
错误消息正文:
以下是 Heroku 在 Heroku 上部署应用程序时提供的信息:
Linux 用户
- handbrake-cli 必须作为 root 用户单独安装。
Ubuntu 用户可以使用以下命令执行此操作:
- add-apt-repository --yes ppa: stebbins / handbrake-releases
- apt-get更新-qq
- apt-get install -qq handbrake-cli
Heroku 日志:
以下是您尝试解码时发生的情况:
2020-12-02T18:34:14.124945+00:00 app[web.1]: Error: Command failed: "HandBrakeCLI" --input "public/images/02122020-123404_338-test.mov" --output "public/images/02122020-123404_338-test.mp4" --preset "Gmail Medium 5 Minutes 480p30"
2020-12-02T18:34:14.124948+00:00 app[web.1]: /bin/sh: 1: HandBrakeCLI: not found
2020-12-02T18:34:14.124948+00:00 app[web.1]:
2020-12-02T18:34:14.124949+00:00 app[web.1]: at ChildProcess.exithandler (child_process.js:308:12)
2020-12-02T18:34:14.124950+00:00 app[web.1]: at ChildProcess.emit (events.js:314:20)
2020-12-02T18:34:14.124950+00:00 app[web.1]: at maybeClose (internal/child_process.js:1022:16)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Socket.<anonymous> (internal/child_process.js:444:11)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Socket.emit (events.js:314:20)
2020-12-02T18:34:14.124951+00:00 app[web.1]: at Pipe.<anonymous> (net.js:675:12) {
2020-12-02T18:34:14.124952+00:00 app[web.1]: killed: false,
2020-12-02T18:34:14.124952+00:00 app[web.1]: code: 127,
2020-12-02T18:34:14.124953+00:00 app[web.1]: signal: null,
2020-12-02T18:34:14.124954+00:00 app[web.1]: cmd: '"HandBrakeCLI" --input "public/images/02122020-123404_338-test.mov" --output "public/images/02122020-123404_338-test.mp4" --preset "Gmail Medium 5 Minutes 480p30"'
2020-12-02T18:34:14.124954+00:00 app[web.1]: }
这是用于设置和开始解码的代码:
const options = {
input: req.files.video ? req.files.video[0].path : '',
output: newPathVideo,
preset: 'Gmail Medium 5 Minutes 480p30',
}
async function startEncoding () {
console.log('Start decoding video')
const result = await hbjs.run(options)
console.log(`${result.stdout}End decoding video`)
}
await startEncoding()
要使 handbrake-js
正常工作,您需要在 heroku 端全局安装 handbrake-cli
。为此,您需要使用第三方构建包,例如 heroku-buildpack-apt
。
要将此构建包添加到您的应用程序中,您可以使用命令
heroku buildpacks:add --index 1 heroku-community/apt -a your-app
确保在您的计算机上全局安装了 Heroku!
您还需要在项目根目录中创建一个名为 Aptfile
的文件,其中包含要安装的 apt 包列表,例如 handbrake-cli
.