【问题标题】:What is the best way to stream a audio file to website users/listeners [closed]将音频文件流式传输给网站用户/听众的最佳方式是什么[关闭]
【发布时间】:2012-11-17 10:10:53
【问题描述】:

我正在开发一个音乐网站,它将存储在服务器中的音频文件流式传输给用户,音频文件将通过放置在网页中的 Flash 播放器播放..

  1. 我听说我需要使用流媒体服务器来传输音频文件(例如 2mb 到 3mb 大小)。我需要使用一个吗?

    我发现了一些流媒体服务器软件,例如http://www.icecast.org - 但在他们的文档中,它用于流式广播电台和实时流媒体目的,但我只需要更快地流式传输音频文件并以小尺寸(低带宽)质量好..

  2. 我听说我需要先对音频文件进行编码,然后将它们发送给听众,最后音频文件需要再次解码。真的吗?我怎样才能做到这一点?如果我需要使用特殊的网络服务器,我应该在哪里托管我的文件?有没有好的托管服务提供商?

  3. 如果我在普通 Web 服务器中托管音频文件,他们将使用 HTTP 或 TCP 将我的音频文件传递给用户/监听器,但我发现 HTTP 和 TCP 不是用于多媒体目的的好方法流式传输音频和视频文件,它们用于交付 HTML 和内容。我发现我应该使用 RSTP 或 UDP 来传输音频文件。我应该使用什么?

  4. 我知道 .MP3 文件的质量比其他格式好得多,但它也给音频文件带来了巨大的容量。我应该为音频文件使用哪种格式?

  5. 大多数质量最好的音频文件都超过 7mb,所以我打算使用软件自己转换它们,这样我就可以获得质量不错的小尺寸文件。如果我正在转换我的音频文件,我应该为我的文件使用什么好的 BITRATE?

  6. 任何已知的用于转换音频文件的最佳软件,同时保持 质量还不错?

注意** - 我知道在网站开始时我不需要复杂的要求,但我想知道他们用于 soundcloud.com 的最佳方式

【问题讨论】:

    标签: audio video media audio-streaming internet-radio


    【解决方案1】:

    首先,让我澄清一下我对您的需求的理解。如果这些错误,请添加评论并在您的问题中澄清:

    • 您打算建立一个可以播放音频的网站
    • 音频不会是一个连续的流,而是由单个文件组成
    • 您的音频通常是音乐

    现在,关于您的问题:

    (1) 我听说我需要使用流媒体服务器来传输音频文件(比如 2mb 到 3mb 大小)。我需要使用一个吗? (3A) 如果我在普通网络服务器中托管音频文件,他们将使用 HTTP 或 TCP 将我的音频文件传送给用户/侦听器,但我发现 HTTP 和 TCP 不是用于多媒体用途,例如流式传输音频和视频文件,它们用于交付 HTML 和内容。

    废话。流媒体服务器,例如 SHOUTcast/Icecast,实际上只是发送来自编码器的内容的 HTTP 服务器。客户端不知道它和 HTTP 之间的区别。元数据在客户端的请求(使用特殊的请求头)中交织到内容流中,但它仍然与 HTTP 兼容。

    HTTP 是一种适用于传输任何类型内容的协议。曾经从网站下载过东西吗?那应该是 HTTP。

    如果它对 YouTube、Sound Cloud、Pandora 和几乎所有其他人都足够好,那么它可能对你也足够好,嗯?

    (3B) 我发现我应该使用 RSTP 或 UDP 来传输音频文件。我应该使用什么?

    TCP 是确保可靠传输的底层网络协议。数据包以正确的顺序接收,并得到确认,以便可以重新传输任何丢失的数据包。这有一些开销。有时使用 UDP 的原因是它以不可靠为代价提供了较低的延迟。这对于电话通信来说很好,但对于时间不敏感的媒体(例如来自服务器的一堆音频文件)则毫无意义。事实上,如果您收到太多损坏的数据包,您的音频播放器通常会停止解码文件,并且需要重新启动。

    RTSP 对您的需求来说太过分了。它支持大量用于媒体控制、动态变化比特率等的东西。这不适合您的情况。也许如果您正在流式传输实时视频或冗长的内容,这会更合适。

    (2) 我听说我需要先对音频文件进行编码,然后将它们发送给听众,最后音频文件需要再次解码。真的吗?我怎样才能做到这一点?如果我需要使用特殊的网络服务器,我应该在哪里托管我的文件?有没有好的托管服务提供商?

    您需要选择客户端支持的用于编码音频的编解码器。我假设您将使用带有 Flash 后备的 HTML5。不幸的是,没有普遍支持的可用编解码器。在此处查看图表:http://html5doctor.com/html5-audio-the-state-of-play/#support

    (4) 我知道 .MP3 文件的质量比其他格式要好得多,但它也会给音频文件带来巨大的尺寸。我应该为音频文件使用哪种格式? p>

    在门口检查你的假设,你在这里大错特错。请记住,原始 PCM 数据通常比 MP3 大 8 倍(当然取决于选择的比特率)。在任何情况下,您都需要编码为 AAC、MP3 和 Vorbis 以获得最广泛的客户端兼容性。 aacPlus 是 AAC 的扩展,通常被认为是在相对较低的比特率下获得高质量音频的标准。 AAC 中的 128kbit 流比 MP3 中的 128kbit 流听起来更好。

    (5) 大多数质量最好的音频文件都超过 7mb,所以我打算使用软件自己转换它们,这样我就可以获得质量不错的小尺寸文件.如果我要转换我的音频文件,我应该为我的文件使用什么好的比特率?

    这个问题非常主观。就个人而言,作为音乐家和发烧友,我更喜欢听到原始质量的东西。我使用 FLAC 来压缩我的音乐库,因为质量是无损的。根据您的需要,这将占用太多带宽。大多数人不知道 128kbit MP3 和原版之间的区别。许多“高级”互联网广播电台提供 128kbit aacPlus 和 256kbit MP3。 Pandora 为普通用户提供 96kbit MP3,为高级用户提供 192kbit MP3。进行实验,并选择一组适合您和用户的比特率。

    始终保留原件。它不必在您的服务器上,但您需要它。如果您重新压缩已经有损压缩的文件,那么您将失去额外的质量。如果您制作了一个来源的 3 个压缩版本,请确保您使用的是原始来源。

    (6) 任何已知的最好的音频文件转换软件,同时保持良好的质量?

    如果您可以合法使用,请查看FFMPEG。它几乎可以处理您能想到的任何编解码器。不过请注意,请仔细检查以确保您支付了所有必要的许可费用。其中包含的一些编解码器已获得专利。我不是律师,还不能弄清楚在商业网站上使用它们的合法性。我所知道的是它引起了激烈的争论。

    【讨论】:

    • 我认为这个答案比公认的要好。解释了流式音频的许多技术方面(而不是进入混音、音频质量等其他方面)。
    【解决方案2】:

    这是一位实际经营广播电台的人的回复,他是一名音频技术员和网页设计师。下面是收集到的知识 来自 5000 多个小时的最新研究!

    6)

    • 音频软件?

    您需要拥有能够:

    • 转换为其他比特率和格式
    • 将所有 mp3 的音量标准化为相同的“标准化”级别。 (-1 分贝)
    • 在开始和/或结束时切断静音。
    • 均衡音频,使其听起来不错。
    • 添加效果、混合...等

    “Audacity”是最好的、最常用的、非常可靠且免费的

    5)

    • 比特率好吗?

    如果比特率过高,您在较慢连接上的听众将遭受“bufferunderuns”的困扰 即:音频中的打嗝/短暂中断导致它们的连接无法跟上(高速)速度。

    如果它太低,那么质量不好。

    最佳选择是 128 kb/s,这听起来不错,并且不会导致大多数人出现欠载。

    最好的格式是 Mp3,因为它是大多数播放器和直播提供者都可以处理的格式。

    使用高于平均文件大小的 4 分钟曲目将约为 4 Mb。

    由于 Mp3 @ 128kb/s 是最受欢迎的,您将获得最优惠的价格/质量交易 来自直播服务器提供商。

    5b)

    • 音频标记?

    你确实忘记了那个。

    您需要确保将您的音频文件“标记”,即: 播放器作为“艺术家 - 标题”的信息不是来自文件名..而是来自(iD1/iD3)“标签”

    最好、最常用、非常可靠且免费的软件是:“mp3tag” 它也可以“批量”播放(一次 1000 mp3)

    http://www.mp3tag.de/en/

    4)

    • 编解码器?

    您以上述格式“Mp3 @ 128 kb/s”将文件上传到服务器 因为它是所有玩家都可以玩的最常用的格式。

    确保以与服务器输出相同的格式(如上)上传 这将在您的服务器上保持(重要的)低处理器负载(它不需要转换)。

    Shoutcast 服务器(或其他流服务器)将获取您单独的 mp3 并转换它们 到一个单一的实时流中,它将为多个听众(100个)创建多个流。 它还将为您提供统计信息(听众人数、从哪里、现在播放、之前播放)

    听众可以通过两种方式播放它:

    a-来自嵌入在您网站上的嵌入式播放器。 b-或单击您网站上的链接,该链接将在任何(独立)播放器中打开您的流 您的访客已安装(Winamp、WindowsMediaPlayer、Realplayer、Quicktime、iTunes...等) 独立的将提供最好的质量,因为它会有更多/更好的音频控制(均衡器......等)

    最佳做法是同时提供嵌入式播放器和简单的可点击链接。 查看至少 20 个广播电台网站(专业和业余爱好者) 看看他们是怎么做到的。

    目前最好的免费嵌入式播放器是“jPlayer” 因为它的双模式(HTML5 / Flash)所以所有浏览器和所有手机都会播放它。 并且得到了论坛、教程等的很好支持

    http://www.jplayer.org

    2)

    • 托管服务提供商?

    Google 用于“Shoutcast 流媒体”或“Shoutcast 服务器” 比较其中的 20 个以获得最佳价格/质量...使用 Google 再次研究它们。

    他们将拥有特殊的广播软件(基于网络),例如“Centova” 您可以从任何浏览器控制它,您可以实时流式传输到它...或创建播放列表,在您睡觉时从服务器无人看管(“autodj”) 您可以创建多个播放列表,以便它们在特定时间/天/随机...等播放。

    您可以仅基于 autodj 播放列表创建您的整个电台 这样您就不必担心自己的上传连接中断 你可以关闭自己的电脑。

    对于 autodj,您需要具有至少 5 Gb 存储空间 (mp3´s) 的直播服务 这将为您提供大约 3 到 4 天的音乐而不会重复...以巧妙的方式使用播放列表 并考虑到听众在某些时间平均会听 30 分钟到 2 小时,..您可以确保他们不会一直听到相同的曲目。

    如果您坚持从您自己的计算机(直接或通过流服务器提供商)进行“实时”(实时)广播(流式传输),那么最常用的软件是“Sam broadcaster”

    就是这样......从一个好的 Shoutcast 服务器提供商开始,然后构建您的网站并创建一个指向流的可点击链接,然后您就可以使用嵌入式播放器。

    【讨论】:

    • 我从您的回答中获得了很多关于音频流的知识。谢谢 alottt @dutchguy .. (Y) 我还在开发我的网站,可以给我你的电子邮件地址吗?
    • @Naveen ...shure 告诉我把它寄到哪里。
    • 谢谢,请发送电子邮件至 naveencg@ovi.com ..
    • 您的问题解决了吗?我想用 nginx 和 ffmpeg 来实现这个,有什么想法吗?
    【解决方案3】:

    多年来,我一直在为一家音乐公司客户使用http://www.yagosta.com。免费服务和 SSssooooo 很容易。不需要任何技术知识。我已经好几年没有更新这个网站了,但你可以在下面的链接中看到它的样子。他们可能有很多你可以定制的新设计。完全满足大多数要求。 http://www.bluedotmusic.net/selector01.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2014-03-21
      • 2018-01-08
      • 1970-01-01
      • 2016-09-29
      相关资源
      最近更新 更多