2011-10-21 30 views
2

我寫了一個小網站/服務,它可以從網站(當前Youtube)下載視頻並將其轉換爲mp3文件,並將該文件作爲響應發回。Node.js異步視頻轉換慢

例如,當您請求http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0時,它會下載此視頻並響應以MP3編碼的音頻層。

這一切工作得很好,我的問題是,這是非常緩慢,我不明白爲什麼。


簡化腳本的行爲是這樣的:

下載視頻,並將其寫入的ffmpeg的標準輸入和標準輸出去的響應。 視頻(MP4,FLV) - > FFMPEG -

我用捲曲找出腳本是如何快速> MP3:

$ 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

在此先感謝。

+0

JavaScript中的轉換將會很慢。如果您使用C進行轉換,那麼它應該更快。與其他大型服務器相比,您的網絡服務器傳輸速率可能較慢。 – Raynos

+0

轉換是使用ffmpeg完成的,我只是用js爲它提供數據。 – lukstei

+0

嗯,我相信談話很慢,正在加快速度。嘗試對對話進行基準測試,看看是否有問題。 –

回答

0

我有這個問題。我更新到ffmpeg的最新版本,並修復它(截至2016年12月的v.3.2.1)