15

これは広すぎる質問かもしれませんが、soundcloudは実際にどのようにプログラムされていますか?

具体的には、

  1. それをプログラムするためにどの言語が使用されましたか?

  2. 頻度データはどのように表示されますか?

  3. ユーザーがMP3とは異なる形式でファイルをアップロードした場合、それはMP3に変換されますか、それともそのまま再生されますか?前者の場合、変換はどのように機能しますか?

  4. それがそうであるように、それはブラウザ上でどのように「グラフィカルに」表示されますか?私が何も知らないのもHTML5のことですか?

私はsoundcloudの大ファンであり、これらすべてがどのように機能するのか疑問に思うのを止められませんでした!私を助けてください :)

4

2 に答える 2

40

ここのSoundCloud開発者、

  1. APIと現在のWebサイトはRailsで構築されています。アーキテクチャ/インフラストラクチャと、過去5年間でどのように進化したかについては、SoundCloudのアーキテクチャの進化をご覧ください。ウェブサイトの「次の」バージョン(まだプライベートベータ版)は完全にJavascriptで構築されており、APIを使用してデータを取得します。Building The Next SoundCloudには、さらに多くの詳細があります。

  2. オーディオの処理に使用される言語/ライブラリが正確にはわかりませんが、多くのオーディオライブラリは周波数データを提供しており、それを抽出するだけです。

  3. ユーザーは、AIFF、WAVE(WAV)、FLAC、OGG、MP2、MP3、AAC、AMR、またはWMAファイルをアップロードできます。オリジナルはダウンロードオプションの場合とまったく同じように保持されますが、サイトでのストリーミングの場合、128kbpsのMP3ファイルに変換されます。繰り返しになりますが、ソフトウェア/ライブラリについてはよくわかりませんが、ffmpegになると確信しています。

  4. 波形を表示するために、アップロード時にオーディオファイルが処理されるバックエンドで、波形データがPNGファイルに保存されます。Webサイトの現在のバージョンでは、そのファイルをロードするだけです。次に、pngが処理されて元のデータが取り出され、必要な正確なサイズでキャンバスに描画されます(これにより画像が鮮明に保たれます)。現在、このプロセスを高速化するために、JSON形式で波形データを取得する実験を行っています。

于 2012-09-04T22:05:43.503 に答える
0

2010年にDavidNoëlによって投稿された次の情報をコピーしています

Web層:Varnish、nginx、haproxy、thin

データ管理:Cassandra、MongoDB、mySQLマスター/スレーブクラスター、memcached

Webフレームワーク:Ruby on Rails

CDN:アカマイとエッジキャスト

トランスコーディング/ストレージ:AWS EC2 / S3

于 2012-12-10T14:55:55.500 に答える