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

时间:2011-10-21 19:22:54

标签: 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很慢。
  4. 我试图在普通的下载管理器中下载视频,我得到了大约320k,这是我正常的下载速度,所以第一点不是瓶颈。

    对于第2点和第3点,我尝试将一个本地文件写入stdin,我得到了大约600k,所以它也不是。

    那么为什么我的脚本这么慢,我能做些什么才能让它更快?

    https://gist.github.com/1304637

    提前致谢。

1 个答案:

答案 0 :(得分:0)

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