video - Node.js异步视频转换速度慢

标签 video node.js asynchronous ffmpeg

我编写了一个小网站/服务,它可以从网站(当前是 Youtube)下载视频并将其即时转换为 mp3 文件,并将该文件作为响应发送回来。

例如,您当您请求http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0时,然后它将下载该视频并响应 MP3 编码的音频层。

这一切都运行得很好,我的问题是这非常慢,我不明白为什么。

<小时/>

简化后的脚本行为如下:

下载视频并将其写入ffmpeg的stdin,stdout转到响应。 视频(MP4、FLV)-> FFMPEG -> MP3

我使用curl 来计算脚本的速度:

$ curl http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0

我只得到大约 5-10k。

那么为什么这么慢呢?

  1. 我下载视频的服务器速度很慢。
  2. 转换速度很慢(因为 CPU 速度较慢)。
  3. node.js -> FFMPEG 之间的数据传输很慢。

我尝试在普通的下载管理器中下载视频,得到了大约320k,这是我的正常下载速度,所以第一点不是瓶颈。

对于第 2 点和第 3 点,我尝试将本地文件写入标准输入,并且我得到了大约 600k,所以这也不是。

那么为什么我的脚本这么慢,我该怎么做才能使它更快?

https://gist.github.com/1304637

提前致谢。

最佳答案

我遇到了这个问题。我更新到最新版本的 ffmpeg 并修复了它(截至 2016 年 12 月 v.3.2.1)

关于video - Node.js异步视频转换速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854289/

相关文章:

ios - 如何在 Objective C 中将视频压缩到精确的大小?

node.js - Froala 编辑器不适用于带有 typescript 的 Angular 4

Python:如何异步 for 循环

javascript - 为什么 'await'不等待?

javascript - 尝试从 JSON 文件返回 URL

video - Slack 创建自定义嵌入式视频或音频播放器...类似于 Youtube 集成

video - 如何将 360 视频从 PC 直播到 VR 耳机/护目镜/HMD?

将图像和音频加入结果视频

node.js - Node 。 js 服务器进程与 web 更改

javascript - Firebase 不适用于 NodeJS