当他们上传到firebase存储时,我必须将视频从webm转码到mp4.我在这里有一个代码演示,但如果上传的视频太大,firebase功能将在转换完成之前超时.我知道可以增加该功能的超时限制,但这看起来很麻烦,因为我无法确认该过程所需的时间比超时限制少.
有没有办法阻止firebase超时,而不仅仅是增加最大超时限制?
如果没有,有没有办法完成耗时的过程(如视频转换),同时仍然让每个进程开始使用firebase函数触发器?
如果即使使用firebase函数完成耗时的过程也不是真正存在的东西,有没有办法加速fluent-ffmpeg的转换而不会影响质量那么多?(我意识到这一部分有很多问题.如果我绝对必须,我打算降低质量,因为网络转换为mp4的原因是针对IOS设备)
作为参考,这是我提到的演示的主要部分.正如我之前所说的,这里可以看到完整的代码,但复制过的代码的这一部分是创建Promise以确保转码完成的部分.完整的代码只有70行,所以如果需要它应该相对容易.
const functions = require('firebase-functions');
const mkdirp = require('mkdirp-promise');
const gcs = require('@google-cloud/storage')();
const Promise = require('bluebird');
const ffmpeg = require('fluent-ffmpeg');
const ffmpeg_static = require('ffmpeg-static');
Run Code Online (Sandbox Code Playgroud)
(这里有一堆文本解析代码,然后是onChange事件中的下一个代码块)
function promisifyCommand (command) {
return new Promise( (cb) => {
command
.on( 'end', () => { cb(null) } )
.on( 'error', (error) => { cb(error) } )
.run();
})
}
return mkdirp(tempLocalDir).then(() => {
console.log('Directory Created')
//Download item from bucket
const bucket …Run Code Online (Sandbox Code Playgroud) javascript ffmpeg firebase fluent-ffmpeg google-cloud-functions
我需要在 docker 容器(使用 docker-compose 创建)中运行的 Node.js 应用程序中使用 ffmpeg。我对 Docker 很陌生,想知道如何在创建映像时命令 Docker 安装 ffmpeg。
文件
FROM node:carbon
WORKDIR /usr/src/app
# where available (npm@5+)
COPY package*.json ./
RUN npm install -g nodemon
RUN npm install --only=production
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
包.json:
{
"name": "radcast-apis",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon --inspect-brk=0.0.0.0:5858 ./bin/www"
},
"dependencies": {
"audioconcat": "^0.1.3",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"express": "~4.16.0",
"firebase-admin": "^5.12.1",
"http-errors": "~1.6.2",
"jade": "~1.11.0",
"morgan": "~1.9.0" …Run Code Online (Sandbox Code Playgroud) 我想创建一个Google Cloud功能,可以正确设置上传文件的内容类型.我知道如何使用GraphicsMagick或ImageMagick,但我不确定Google Cloud Function是否具有这些本机库.我如何知道他们是否有这些或未能如何安装它们?
imagemagick graphicsmagick google-cloud-platform google-cloud-functions
我正在构建一个平台,允许用户将一些视频文件(20-40 秒)从手机上传到服务器。所有这些上传目前都运行良好,文件通过nodejs云功能存储在谷歌存储桶中。
现在我想创建一个 gcp 转码器作业,它将上传的 .mp4 视频文件转换为 .hls 视频流,其中 .ts 块的持续时间为 2-4 秒。
可能成功的场景:
functions.storage.object().onFinalize [完成]onFinalize触发 Google Cloud Job,将 mp4 转换为 hls。[我们在这儿]将不胜感激任何有关创造此类工作的帮助。我正在将 firebase 云功能与 nodejs 一起使用。
ffmpeg node.js google-cloud-platform google-cloud-transcoder