我正在尝试使用gstreamer来将OpenCV帧转换为rtp流,但是即使打开网络摄像头和其他文件也遇到麻烦。
我在使脚本正常工作方面遇到麻烦,所以我运行了此
export OPENCV_VIDEOIO_DEBUG=TRUE
这是我使用的代码:
# Cam properties
fps = 30.
cap = cv2.VideoCapture(0)
# Set camera properties
frame_width = cv2.CAP_PROP_FRAME_WIDTH
frame_height = cv2.CAP_PROP_FRAME_HEIGHT
cap.set(cv2.CAP_PROP_FPS, fps)
# Define the gstreamer sink
gst_str_rtp = "appsrc ! videoconvert ! x264enc noise-reduction=10000 tune=zerolatency byte-stream=true threads=4 ! h264parse ! mpegtsmux ! rtpmp2tpay ! udpsink host=127.0.0.1 port=5000"
# Check if cap is open
if cap.isOpened() is not True:
print "Cannot open camera. Exiting."
quit()
# Create videowriter as a SHM sink
out = cv2.VideoWriter(gst_str_rtp, 0, fps, (frame_width, frame_height), True)
每次尝试运行此错误时,都会收到此错误:
[ WARN:0] VIDEOIO(cvCreateCameraCapture_V4L(index)): trying ...
[ WARN:0] VIDEOIO(cvCreateCameraCapture_V4L(index)): result=0x1f5a7a0 ...
[ WARN:0] VIDEOIO(cvCreateVideoWriter_FFMPEG_proxy(filename, fourcc, fps, frameSize, isColor)): trying ...
Segmentation fault (core dumped)
我该怎么办?