使用opencv和vp8编解码器发送通过GStreamer管道的视频

时间:2018-07-21 17:41:06

标签: python opencv gstreamer vp8

我试图通过管道使用opencv和gstreamer在python中发送视频。 vp8编解码器会发生这种情况。

在接收器上,我看到以很小的增量而不是彩色复制的帧(参见图像)。我的gstreamer管道有什么问题?它可以通过h264或jpeg管道运行,但我需要vp8正常工作。

我用过

  • Python 3.5.2
  • Opencv 3.4.0
  • Gstreamer 1.8.3
  • Ubuntu 16.04

谢谢。

Problem: at the receiver the frame is shown several times.

发件人:

import numpy as np
import cv2

vp8 = "appsrc ! videoconvert ! videoscale ! video/x-raw,width=640,height=360 ! vp8enc ! rtpvp8pay ! udpsink host=127.0.0.1 port=5000"

out = cv2.VideoWriter(vp8, 0, 25, (640,360))

while(True):
    ret, frame = cap.read()

    out.write(frame)
cap.release()
cv2.destroyAllWindows()

收件人:

import numpy as np
import cv2

vp8 = "udpsrc port=5000 ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01, payload=(int)96 ! rtpvp8depay ! vp8dec ! appsink"

cap = cv2.VideoCapture(vp8, cv2.CAP_GSTREAMER)

while(True):
    ret, frame = cap.read()

    if ret:
        cv2.imshow('receiver',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

cap.release()
cv2.destroyAllWindows()

0 个答案:

没有答案