我寫了一個小網站/服務,它可以從網站(當前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。
那爲什麼這麼慢呢?
- 我從中下載視頻的服務器速度很慢。
- 轉換速度慢(因爲CPU速度太慢)。
- node.js - > FFMPEG之間的數據傳輸很慢。
我試圖下載視頻在一個正常的下載管理器,我得到了約320k,這是我的正常下載速度,所以第一點不是瓶頸。
要點2和3,我試圖寫一個本地文件的標準輸入,我得到了約600k,所以不是這樣。
那麼,爲什麼我的腳本太慢了,我能做些什麼來使它更快?
https://gist.github.com/1304637
在此先感謝。
JavaScript中的轉換將會很慢。如果您使用C進行轉換,那麼它應該更快。與其他大型服務器相比,您的網絡服務器傳輸速率可能較慢。 – Raynos
轉換是使用ffmpeg完成的,我只是用js爲它提供數據。 – lukstei
嗯,我相信談話很慢,正在加快速度。嘗試對對話進行基準測試,看看是否有問題。 –