【问题标题】:Errors and warnings with GStreamer are they undermining my output?GStreamer 的错误和警告是否会破坏我的输出?
【发布时间】:2019-01-09 12:57:16
【问题描述】:

我正在使用 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:启用后端(7,按优先级排序): FFMPEG(1000); GSTREAMER(990); V4L2(980); CV_IMAGES(970); CV_MJPEG(960);火线(950); GPHOTO2(940)

(python3.6:12757): GStreamer-CRITICAL **: 13:40:56.545: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:40:56.545: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/01.mp4) 没有构建 支持请求的 backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:18.943: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:41:18.943: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/03.mp4) 没有构建 支持请求的 backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:19.331: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:41:19.331: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/10.mp4) 构建时没有 支持请求的 backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:25.879: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:41:25.879: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/15.mp4) 没有构建 支持请求的 backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:31.485: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:41:31.485: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/27.mp4) 没有构建 支持请求的 backendID=300

(python3.6:12757): GStreamer-CRITICAL **: 13:41:38.932: gst_element_make_from_uri:断言“gst_uri_is_valid(uri)”失败 GStreamer:打开 bin 时出错:没有元素“Video-dataset”

(python3.6:12757): GStreamer-CRITICAL **: 13:41:38.932: gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败[ WARN:0] VideoCapture(filename=Video-dataset/34.mp4) 没有构建 支持请求的 backendID=300

【问题讨论】:

    标签: python video gstreamer cv2


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 2015-03-30
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多