音频流 C++ 服务器/客户端

Posted

技术标签:

【中文标题】音频流 C++ 服务器/客户端【英文标题】:Audio Streaming C++ Server / Client 【发布时间】:2013-07-11 04:16:53 【问题描述】:

我实际上正在开发服务器-客户端多媒体播放器。该播放器可以作为服务器,通过网络将 MP3 文件(或 wma、wav、ogg、flac ...)流式传输到另一个播放器(客户端)。

我首先研究了发送和接收位的基本网络通信(客户端-服务器)。但我有一个问题:音频编码。我需要一个工具来对音频数据进行编码,以便能够通过网络发送其中的一小部分,并让客户端在下一部分到来之前播放它。

我在互联网上看到了一些工具,例如 BASS 库、Live555……我曾经与 PortAudio 合作过学生的项目,但我讨厌它。

所以基本上,我需要一个工具来编码音频数据(服务器端),(我可以通过局域网发送它),并解码数据以播放它(客户端)。

你们对如何做到这一点有一些想法吗?在这种情况下,哪个工具对我有用?

PS:我正在尝试使用 Qt 库作为网络接口(它很高效,并且可以在 windows、linux、mac 上运行)... Qt 库中是否包含任何音频流工具?

【问题讨论】:

您好...您检查过吗:***.com/questions/10692333/… 您好,感谢您的链接。由于缺少部分代码,我很难让它工作来测试它。不过,使用 Qt 工具的 udp 部分似乎还不错。但我不认为演奏部分是完整的。它仅用于传输和播放 wav 文件。我可以使用哪种工具对不同的媒体文件(mp3、wav、ogg、wma、flac ...)进行编码以便传输,然后在另一端播放? 很高兴知道它有帮助...我从未使用 QT 进行解码/编码,但我在 QT 中找到了一个库 QAudioCode,它具有非常简单的界面并支持 .wav、. mp3 和 flac...您能检查一下它是否符合您的要求...如果不符合请告诉我,然后我们会找到其他选择... 我检查了它,它也是编码 mp3 的好工具,但我发现了另一个名为 live55(.com) 的库,也用于 VLC 媒体播放器。它提出了一些示例,包括一个流服务器和一个遵守随处使用的 RTP/RTSP 协议的客户端。 好吧...这很酷...让我也看看... 【参考方案1】:

你可以试试FFMPEG。它几乎可以将任何东西转换为任何东西(它声称),它是一个广泛使用的开源库。 我们在我们的应用程序中主要使用它来解码视频/音频流。

【讨论】:

以上是关于音频流 C++ 服务器/客户端的主要内容,如果未能解决你的问题,请参考以下文章

如何桥接字节数组和音频流?

如何编写服务器/客户端视频和音频流应用程序?

节点(套接字)实时音频流/广播

基于块流协议保证音频优先发送

Python 和 websockets - 发送音频流

IO 直接播放来自 UDP 流 (NSData) 的原始音频