На самом деле, есть много подходов, чтобы сделать такую вещь.Например, вы можете написать свой собственный скрипт Python и отправлять аудио кадры в сокет.Но если вам просто нужен поток, вы можете использовать инструменты высокого уровня, такие как FFmpeg .Это даст вам множество решений для потоковой передачи аудио и видео в сети с использованием чистого протокола UDP или хорошо оптимизированных протоколов, таких как RTP или RTSP.
Например, если вы хотите передавать потоковое устройство ALSA plughw:1,0
для вашего локального хоста это будет выглядеть примерно так:
ffmpeg -ac 1 -f alsa -i hw:0,0 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234
Кроме того, вы можете использовать другие инструменты, такие как приложение записи Alsa (arecord
), и направить его вывод в FFmpeg:
arecord -f cd -D plughw:1,0 | ffmpeg -i - -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234
Затем вы можете просто воспроизвести его с помощью ffplay
:
ffplay rtp://localhost:1234
Более подробную информацию о функции потоковой передачи FFmpeg можно найти в здесь .