ffmpeg实现语音对讲

实验环境:

Windows 10 : 话筒连接处,我在这里讲话。

树莓派:外置声卡连接处,这里要播放出来我讲话的声音。

两者都联网。


(这里为了说话端随用随开,将接受播放端作为Server。倒过来也其实也可以。)

说话端:(cmd)

更改代码页为utf-8,防止ffmpeg中文乱码
chcp 65001
查看支持的音频设备
ffmpeg -list_devices true -f dshow -i dummy
从里面选取音频输入设备,例如:(-ar (audio rate)采样率, -ac (audio channel)音频频道数)
ffmpeg -f dshow -i audio="麦克风阵列 (USB PnP Audio Device)" -ar 16000 -ac 1 -f mp3 - | nc [IP] [PORT]

播放端:(shell)

nc -lkp [PORT] | ffplay -

成功。

不过这种方法测试出来延迟比较高,在局域网下测试大约延迟在5秒左右。

不过通过修改-ar -ac,可以将带宽占用缩小到很少,只需要20kbps左右。2.5kB/s。


降低延迟的尝试 

查阅了相关资料,应该是ffplay本身的问题产生延迟的可能更大一些,在我选定固定的codec的时候,就要开始调整ffplay的参数。

https://stackoverflow.com/questions/16658873/how-to-minimize-the-delay-in-a-live-streaming-with-ffmpeg

https://stackoverflow.com/questions/12020430/look-for-fastest-video-encoder-with-least-lag-to-stream-webcam-streaming-to-ipad/12085571#12085571

https://trac.ffmpeg.org/wiki/StreamingGuide#Latency

最后局域网测试下,这样组合,延迟在1-1.5秒左右,也还行吧,先这样凑合着用。后面再想办法。

nc -lkp [PORT] | ffplay - -probesize 32 -analyzeduration 0 -sync ext

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值