我正在开发用于网络吞吐量测试的点对点视频流媒体。两个对等方之间的网络支持低比特率传输。
我使用OpenCV编写了一个简单的Python程序进行视频流媒体。该程序从网络摄像头获取视频帧,将其编码为JPEG,然后将字节流发送到对等方。它运行良好。但是,针对我的目的存在问题。即使使用较低的JPEG质量进行编码,一个编码帧的大小约为5 Kbytes。
为了获得更小的编码结果和更好的视频质量,我尝试使用MPEG编解码器,例如H264或H263进行编码。很快,我陷入了困境。互联网上没有任何示例。我该如何更改以下代码?
我使用OpenCV编写了一个简单的Python程序进行视频流媒体。该程序从网络摄像头获取视频帧,将其编码为JPEG,然后将字节流发送到对等方。它运行良好。但是,针对我的目的存在问题。即使使用较低的JPEG质量进行编码,一个编码帧的大小约为5 Kbytes。
为了获得更小的编码结果和更好的视频质量,我尝试使用MPEG编解码器,例如H264或H263进行编码。很快,我陷入了困境。互联网上没有任何示例。我该如何更改以下代码?
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
success, image = cap.read()
quality = 20 # quality 0 to 100. default:95
ret, jpeg = cv2.imencode('.jpg', image, [int(cv2.IMWRITE_JPEG_QUALITY), quality])
# send(jpeg.tobytes())