2011-10-21 21 views
2

Webサイト(現在はYoutube)からビデオをダウンロードし、そのファイルをmp3ファイルに変換してこのファイルを応答として返信する小さなWebサイト/サービスを作成しました。Node.js非同期ビデオ変換が遅い

たとえば、http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0を要求すると、このビデオがダウンロードされ、MP3でエンコードされたオーディオレイヤーに応答します。

これはすべて正常に動作しますが、私の問題はこれが非常に遅く、理由を理解できないことです。

がビデオをダウンロードしてのffmpegの標準入力に書き込み、およびstdoutが応答に行く:スクリプト簡体


は次のように動作します。 ビデオ(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を指すには、ローカルファイルをstdinに書き込もうとしました。

なぜ私のスクリプトが遅いのですか?それをより速くするために何ができますか?事前に

https://gist.github.com/1304637

感謝。

+0

javascriptでの変換は遅くなります。変換のためにあなたのCを使用している場合、それはより速くなければなりません。 Webサーバーの速度が他の大規模サーバーと比較して遅くなる可能性があります。 – Raynos

+0

変換はffmpegを使って行います。私はちょうどjsを使ってデータを供給しています。 – lukstei

+0

私は会話が遅く、スピードを上げると信じています。会話をベンチマークして、それが問題であるかどうかを確認してください。 –

答えて

0

この問題がありました。私はffmpegの最新バージョンに更新し、それを修正しました(2016年12月現在のv.3.2.1)。

関連する問題