使用Python进行音视频流处理
我需要做一个可以直播多媒体内容的应用程序。目前,我的应用程序是从网络摄像头获取图像帧(使用OpenCV),然后把这些图像发送给客户端。同时,它还通过pymedia模块发送音频。不过,问题是客户端收到的图像和音频的时间不同步。
所以我有以下几个问题:
- 在Python中有没有适合直播多媒体流的模块?
- 有没有办法让音频和图像帧在客户端同步?
附注:pymedia自2006年以来就没有更新了,现在也无法使用。
3 个回答
0
你需要的是一个可以在命令行中运行的应用程序,它能够进行多媒体流媒体播放。这样的应用程序应该比找一个Python模块简单得多。然后,你的Python应用就可以通过subprocess.Popen()来调用这个流媒体应用,代码大概是这样的:
from subprocess import Popen, PIPE
cmd = "c:\Program Files\appdir\streamer.exe"
subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE).communicate())
3
你可以试试 gst-python 这个模块。
想了解更多细节,可以参考 gstPython 文档。
2
你可以使用gstreamer的Python模块,也就是上面提到的gst-python。可以用rtmp协议来同步客户端和服务器的视频。上次我使用gst-python的时候,它还不支持rtmp。那时候,我的解决办法是限制缓存的大小。当缓存满了,就会丢掉最旧的画面。