Node.jsasynchronousvideo转换慢
我写了一个小网站/服务,它可以从一个网站(目前Youtube)下载一个video,并将其转换为一个mp3文件,并将其作为响应发回。
例如,当您请求http:// localhost:8000 / v = http://www.youtube.com/watch?v = HhoewflkQu0时 ,它会下载此video并响应以MP3编码的audio层。
这一切工作得很好,我的问题是,这是非常缓慢的,我不明白为什么。
简化脚本的行为如下:
下载video并将其写入ffmpeg的stdin,然后stdout转到响应。 video(MP4,FLV) – > FFMPEG – > MP3
我用curl找出脚本有多快:
$ curl http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0
我只得到约5-10K。
那为什么这么慢呢?
- 我从中下载video的服务器很慢。
- 转换很慢(因为CPU速度很慢)。
- node.js – > FFMPEG之间的数据传输很慢。
我试图下载一个正常的下载pipe理器的video,我得到了约320k,这是我的正常下载速度,所以第一点不是瓶颈。
到了第二点和第三点,我试图写一个本地文件到标准input,我得到了大约60万,所以不是这样。
那么为什么我的脚本太慢了,我能做些什么来使其更快?
https://gist.github.com/1304637
提前致谢。
我有这个问题。 我更新到ffmpeg的最新版本,并修复它(截至2016年12月v.3.2.1)