Потоковое аудио и видео с Python

Мне нужно создать приложение, которое будет транслировать живые мультимедиа. В настоящее время мое приложение принимает кадры изображений с веб-камеры (используя OpenCV) и отправляет их клиенту. Он также отправляет аудио с помощью модуля pymedia. Проблема заключается в том, что как изображения, так и аудиопакеты, которые поступают на клиент, не синхронизированы.

Итак, у меня есть следующие вопросы:

  • Есть ли какой-нибудь модуль в python для потоковой передачи в реальном времени?
  • Можно ли каким-либо образом синхронизировать аудио- и графические кадры с клиентом?

PS. pymedia не разрабатывалась с 2006 года и не работает.

Ответ 1

Вы можете использовать модуль python gstreamer. Я имею в виду gst-python, упомянутый выше. Используйте протокол rtmp для синхронизации видео на клиенте/сервере. В прошлый раз, когда я использую gst-python, поддержки rtmp не было. В то время мое решение заключалось в ограничении размера буфера. Когда буфер будет заполнен, самые старые кадры будут удалены.

Ответ 3

Вам нужно приложение с командной строкой, которое выполняет потоковое мультимедиа, которое должно быть намного проще найти, чем модуль Python. Приложение Python затем вызовет потоковое приложение, используя subprocess.Popen(), что-то вроде:

from subprocess import Popen, PIPE

cmd = "c:\Program Files\appdir\streamer.exe"
subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE).communicate())