通过 socket 发送原始 pcm 数据,格式如下 Sample Rate: 48000.0 Channel Count: 2 Common Format: PCM Float32
pcm 数据发送的: (0x10529da40: 3840/3840 bytes)
在 python 服务端接收数据时,直接写入 wav 文件,背景有声音,但是噪声很大,这应该怎么处理,客户端写入文件时是没问题的。如有大佬知道能解决问题,200 元给大佬喝茶!!!还望大佬能指点一二!!!
1
a33291 186 天前
udp 发的?乱序或者丢包了吧
客户端发送时写入文件,服务端收到也写入文件,然后用 BC 十六进制对比一下差异 |
2
dode 186 天前
记录首发 HEX 原始数据,对比差异,这个要多少带宽,中途 TC 连接要是断了怎么办?
客户端写好文件,再用程序发到服务器吧 |
3
iOCZS 186 天前
两端收发的文件是否一致啊
|
4
pipixiarwksb OP |
5
ziding 185 天前
1. 对比两端的 wav 文件
2. 播放的设置是否搞对了?有点像采样率没搞对的情况 |
6
jifengg 185 天前
wav 文件头写了吗?
|
7
pipixiarwksb OP |
8
dode 185 天前
客户端传输数据时,TCP 连接断掉了怎么办?
客户端一个线程直接边写文件,一个线程边读取这个文件,发送到服务器。 |
9
dode 185 天前
现有程序执行时,占用多大网络带宽?
|
10
jifengg 185 天前
wav 文件头,包含了你说的 PCM 格式描述:
“Sample Rate: 48000.0 Channel Count: 2 Common Format: PCM Float32” 以及其他信息,如果没有这些信息,用播放器直接播放 wav 文件,要么不能播,要么按默认参数播 |
11
csulyb 185 天前
思路:
1.服务器端直接把 pcm 存下来,然后用播放器比如 audacity 播放看看正常不 a.正常就是你 wav 的头不对,自己对着 wav 的头修改下。 b.不正常的话,注意下音频数据存储用哪个,float 还是 int16 ? 还有个问题 网络通信为啥直接 pcm ,节省带宽最好 opus 编码下发 |
12
xsen 184 天前
1. 服务端保存为 pcm ,用 vlc 看播放是否有问题
2. 确认包是否完整—就是对整个 pcm/wav 文件做 MD5 ,接收后确认 MD5 值是否一样 3. 确认写入的采样率、通道数是否一致 |
13
EvaDan 182 天前
@pipixiarwksb 前面有个哥们说的对 wav 文件的需要文件头信息来表明怎么解析后续的数据格式,不然播放器解析不了。PCM 就是纯数据,不带格式。
|