A-A+

TCP音频流媒体和播放器TCP Streamer

2024年02月09日 其他 暂无评论 阅读 282 views 次

这是通过TCP发送和接收音频数据的专有VoIP项目。这是我的第一篇文章播放或捕获音频声音的延伸作为组播发送和接收(RTP)。此应用程序不是通过多播而是通过TCP来传输音频数据。所以你可以确定没有数据丢失,你可以通过子网和路由器转移它们。音频编解码器是U-Law。采样率可以从5000到44100选择。

服务器可以在您的本地PC上运行。您可以在运行cmd.exe的帮助下输入“ipconfig”来获取当前的IP4地址。您应该使用静态IP地址,以便可能的客户端在几天后重新连接后不必更改其设置。客户端必须连接到正在运行的服务器上配置的IP4地址和端口。服务器可以静音模式运行(无输入,无输出),只需在所有连接的客户端之间传输音频数据。

选择另一个应用程序未使用的空闲端口(不要使用80或其他保留端口)。您可以连接局域网或互联网。对于Internet聊天,您可以在路由器上配置端口转发。

注意 !!!这是一个专有的项目。您不能将我的服务器或客户端用于任何其他标准化的服务器或客户端。我不使用像RTCP或SDP这样的标准。

背景

由于网络流量和时钟差异,您必须使用抖动缓冲器来补偿数据传输。 您可以为每个服务器设置抖动缓冲区,所有客户端将使用相同的金额。
一个Jitter-Buffer表示一个包含在TCP-Stream中的数据包。 当抖动缓冲器达到最大值的一半时,服务器开始播放。
您可以在为每个客户端显示的进度条中观看此视频。 您设置的抖动缓冲区越多,延迟时间就越多。 您可以运行TCPStreamer作为客户端或服务器。
一台服务器可以处理一个或多个客户端。

TCPStreamer作为客户端

作为客户端运行,您可以连接到服务器实例。 选择你的麦克风,并听设备。 点击麦克风或扬声器按钮静音。
客户端连接后,扬声器组合框更改为显示传入数据值的进度条。 使用的SamplesPerSecond(Quality)取决于服务器配置。
抖动缓冲器客户端仅对传入数据的延迟很重要。

TCPStreamer作为服务器

作为服务器运行,您可以等待一个或多个客户端。
如果需要,可以选择你的麦克风和听设备,但是你可以运行服务器而不需要听到或说服务器端,这样只有客户端才能相互通话。
每个客户都可以静音(扬声器和微型)。 IP地址必须是您的计算机的地址。 其他应用程序不能使用端口号。
抖动缓冲器值服务器端对于所有连接的客户端的延迟是重要的。 尽可能使用最低值。
服务器必须混合来自所有客户端的所有数据,所以您应该选择运行服务器的高性能工作站。 讲话的质量取决于SamplesPerSecond值。

本文以及任何关联的源代码和文件均在The Code Project Open License (CPOL)许可下。

原文地址:https://www.codeproject.com/articles/482735/tcp-audio-streamer-and-player-voip

Download source
Download Exe_6.zip

==更多:为防止代码不可下载已上传一份至百度云盘https://pan.baidu.com/s/1jIrKxwE

客户端连接后,声音小,有时候还听不到,先做个备选方案吧,好歹能用

标签:

给我留言

您必须 登录 才能发表留言!

Copyright © rjzb软件智博 保留所有权利.   Theme  Ality Power by serv00.com host,thanks.

用户登录