我正在运行一个node.js HTTP服务器,该服务器具有使用ffmpeg构建的视频转换API。我想知道如何最好地将文件转换的进度报告给单独的前端。 HTTP服务器将作为自己的服务独立运行,因此我希望能够通过简单的前端将完成转换的百分比呈现给另一台服务器。完成转换后,文件会自动下载。
我的当前终点/convert
采用带扩展名为.mov的文件网址,下载文件并在转换过程中运行它以仅输出音频。使用响应头我转换结束后强制浏览器下载文件,下载完成后我也会删除临时文件。
完整请求看起来像
https://www.someurl.com/convert?file=https://www.filetodownload.com/Skating.mov
我正在使用fluent-ffmpeg npm包:https://github.com/fluent-ffmpeg/node-fluent-ffmpeg提供"进展"事件:
ffmpeg('/path/to/file.avi')
.on('progress', function(progress) {
console.log('Processing: ' + progress.percent + '% done');
});
我正在考虑将progress.percent信息发送到一个单独的端点,可能是这样的:
https://www.someurl.com/progress
这将只是我的http服务器将百分比发送回浏览器。我觉得好像我错误地认识了这个架构,并且必须有一种更好的方法来构建最终结果。