15

这可能是一个过于宽泛的问题,但 soundcloud 是如何实际编程的?

更加具体,

  1. 用什么语言来编程它?

  2. 它如何显示频率数据?

  3. 如果用户以不同于 MP3 的格式上传文件,它是转换为 MP3 还是按原样播放?如果是前者,转换是如何工作的?

  4. 它是如何“以图形方式”出现在浏览器上的?它也是我一无所知的HTML 5吗?

我是 soundcloud 的忠实粉丝,我一直想知道所有这些是如何工作的!请帮帮我:)

4

2 回答 2

40

SoundCloud 开发者在这里,

  1. API 和当前网站是使用 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文件。在当前版本的网站上,我们只需加载该文件。在 Next 上,处理 png 以获取原始数据,然后以所需的确切尺寸将其绘制到画布上(以保持图像清晰)。我们目前正在尝试以 JSON 格式获取波形数据以加快此过程。

于 2012-09-04T22:05:43.503 回答
0

我正在复制 David Noël在 2010 年在其他地方发布的以下信息。

Web 层:varnish、nginx、haproxy、thin

数据管理:Cassandra、MongoDB、mySQL 主/从集群、memcached

Web 框架:Ruby on Rails

CDN:Akamai 和 Edgecast

转码/存储:AWS EC2/S3

于 2012-12-10T14:55:55.500 回答