![如何将音频从 pulseaudio 接收器实时流(原始格式/字节)到本地 UDP 服务器?](https://linux22.com/image/935494/%E5%A6%82%E4%BD%95%E5%B0%86%E9%9F%B3%E9%A2%91%E4%BB%8E%20pulseaudio%20%E6%8E%A5%E6%94%B6%E5%99%A8%E5%AE%9E%E6%97%B6%E6%B5%81%EF%BC%88%E5%8E%9F%E5%A7%8B%E6%A0%BC%E5%BC%8F%2F%E5%AD%97%E8%8A%82%EF%BC%89%E5%88%B0%E6%9C%AC%E5%9C%B0%20UDP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我使用以下链接中的技巧并能够将音频录制到文件中 使用 PulseAudio 记录程序的输出
我一直在调整命令并尝试将字节流传输到 UDP 服务器。这是我目前得到的结果,但不起作用
parec -d sink_name.monitor | ffmpeg -re -ac 1 -f s16le -ar 16000 -i - - | ffmpeg -re -i - -f mpegts udp://localhost:20001
- 第一个命令提供音频流
- 此命令部分用于将流存储在 .mp3 文件中,参考
ffmpeg -ac 1 -f s16le -ar 44100 -i - test.mp3
- 这应该将流重定向到 UDP - 从
ffmpeg -ac 1 -f s16le -ar 44100 -i - test.mp3
我需要一些帮助。提前致谢!
答案1
在对现有命令进行调整后,我发现了-
parec --format=s16le -d sink_name.monitor | lame -r -a --quiet -b 18 -B 18 - | ffmpeg -re -i - -f s16le udp://localhost:20001
下面解释所有三个命令 -
- 第一个命令访问声卡中的音频,并以 s16le PCM 格式传输到第二个命令
- 第二,lame 将比特率改为 18 kbps
- 三、ffmpeg直播流到udp服务器