Как я могу использовать Python для потоковой передачи нескольких аудио файлов одновременно - PullRequest
1 голос
/ 27 мая 2019

Я хочу передать несколько аудиофайлов в формате .wav на Raspberry Pi для синхронного воспроизведения. Я хочу использовать Python в качестве своего предпочтительного языка и сокетов TCP, хотя я понимаю, что UDP может быть необходим для задержки. Любой, кто может указать мне правильное направление / дать какой-то вклад, будет очень признателен!

1 Ответ

0 голосов
/ 28 мая 2019

На самом деле, есть много подходов, чтобы сделать такую ​​вещь.Например, вы можете написать свой собственный скрипт 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 можно найти в здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...