Я ищу способ проверить, не поврежден ли видеофайл.
Я использую cv2 (OpenCV для python) для загрузки видео. Если видеофайл поврежден, я хотел бы пропустить файл и перейти к следующему.
Я нашел этот вопрос stackoverflow и поэтому попробовал это:
try:
vid = cv2.VideoCapture(corrupt_video_file)
except cv2.error as e:
print(e)
except:
print('error')
но я все еще получаю следующую ошибку:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1b2d000] moov atom not found Unable to stop the stream: Inappropriate ioctl for device OpenCV Error: Unspecified error (GStreamer: unable to start pipeline ) in cvCaptureFromCAM_GStreamer, file /home/student/programs/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp, line 890 VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)): raised OpenCV exception:
/home/student/programs/opencv-3.4.0/modules/videoio/src/cap_gstreamer.cpp:890: error: (-2) GStreamer: unable to start pipeline in function cvCaptureFromCAM_GStreamer
Похоже, возникает ошибка cpp, а не ошибка python. (я скомпилировал opencv из исходников, нужен был для другого проекта)
Можно ли также отловить эти ошибки cpp?
Или есть другой способ проверить поврежденные видеофайлы в python?
Или проблема заключается в том, что я сам скомпилировал openCV, а не просто установил python- cv2?
Любая помощь или предложения будут приветствоваться!