我需要制作一个可以流式传输多媒体的应用程序。目前我的应用程序正在使用OpenCV从网络摄像头中获取图像帧并将其发送到客户端。同时它也在使用pymedia模块发送音频。问题是到达客户端的图像和音频数据包不同步。
所以我有以下几个问题:
- 是否有Python模块支持多媒体实时流传输?
- 是否可以使音频和图像帧在客户端上保持同步?
另外,pymedia自2006年以来未进行开发,并且不可用。
您可以使用gstreamer的Python模块,即上面提到的gst-python。使用rtmp协议同步客户端/服务器视频。上一次我使用gst-python时,还没有支持rtmp。当时我的解决方案是限制缓冲区大小。当缓冲区满了时,最旧的帧将被丢弃。
from subprocess import Popen, PIPE
cmd = "c:\Program Files\appdir\streamer.exe"
subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE).communicate())