GStreamer 的错误和警告是否会破坏我的输出?

Errors and warnings with GStreamer are they undermining my output?

我正在使用 Python3 脚本将视频剪辑 (.mp4) 分割成帧(.png 图像)。为此,我使用 opencv (cv2) 方法。

import cv2
import os

dataset_folder = 'Video-dataset/'
save_path = 'Video-dataset-images/'

if not os.path.exists(save_path):
    os.mkdir(save_path)

videos_list = os.listdir(dataset_folder)
video_ids = [re.findall("[0-9_]*", video)[0] for video in videos]

for video in video_ids:
    video_path = dataset_folder + video + ".mp4"
    save_name = save_path + video
    cap = cv2.VideoCapture(video_path)
    fps = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
    fps_count = 0
    for i in range(fps):
        ret, frame = cap.read()
        if ret:
            cv2.imwrite(save_name+str(10000+fps_count)+'.png', frame)
            fps_count += 1

我将实际的视频剪辑分割成图像,但我也从脚本中得到以下回应:

[ INFO:0] VIDEOIO: Enabled backends(7, sorted by priority): FFMPEG(1000); GSTREAMER(990); V4L2(980); CV_IMAGES(970); CV_MJPEG(960); FIREWIRE(950); GPHOTO2(940)

(python3.6:12757): GStreamer-CRITICAL **: 13:40:56.545: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:40:56.545: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/01.mp4) was built without support of requested backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:18.943: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:41:18.943: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/03.mp4) was built without support of requested backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:19.331: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:41:19.331: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/10.mp4) was built without support of requested backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:25.879: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:41:25.879: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/15.mp4) was built without support of requested backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:31.485: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:41:31.485: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/27.mp4) was built without support of requested backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:38.932: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed GStreamer: Error opening bin: no element "Video-dataset"

(python3.6:12757): GStreamer-CRITICAL **: 13:41:38.932: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed [ WARN:0] VideoCapture(filename=Video-dataset/34.mp4) was built without support of requested backendID=300

终于明白问题所在了,这行代码是错误的,因为少数视频的名字是字母数字。

video_ids = [re.findall("[0-9_]*", video)[0] for video in videos]

此外,这些相同的视频是我在循环中排除的 .avi 扩展名。