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を取得します。
なぜこれが遅いのですか?
- ビデオをダウンロードしているサーバーが遅いです。
- 変換が遅い(CPUが遅いため)。
- node.js - > FFMPEG間のデータ転送が遅いです。
通常のダウンロードマネージャでビデオをダウンロードしようとしましたが、私は通常のダウンロード速度である約320kを得ました。最初のポイントはボトルネックではありません。
2と3を指すには、ローカルファイルをstdinに書き込もうとしました。
なぜ私のスクリプトが遅いのですか?それをより速くするために何ができますか?事前に
https://gist.github.com/1304637
感謝。
javascriptでの変換は遅くなります。変換のためにあなたのCを使用している場合、それはより速くなければなりません。 Webサーバーの速度が他の大規模サーバーと比較して遅くなる可能性があります。 – Raynos
変換はffmpegを使って行います。私はちょうどjsを使ってデータを供給しています。 – lukstei
私は会話が遅く、スピードを上げると信じています。会話をベンチマークして、それが問題であるかどうかを確認してください。 –