[PYTHON] OpenCV + Python + Mac으로 비디오 쓰기
PYTHONOpenCV + Python + Mac으로 비디오 쓰기
비디오에 프레임을 쓰려고 할 때 계속 어설 션 오류가 발생합니다. 내가 얻는 오류는 이것이다 :
Traceback (most recent call last):
File "VideoMixer.py", line 23, in <module>
cv.WriteFrame(writer, cv.LoadImage(fileName))
cv.error: dst.data == dst0.data
내 대본은 다음과 같습니다.
import cv
import sys
files = sys.argv[1:]
for f in files:
capture = cv.CaptureFromFile(f)
height = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
width = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS)
fourcc = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FOURCC)
print fourcc
writer = cv.CreateVideoWriter('ok.mov', int(fourcc),fps,(int(width),int(height)),1)
print writer
for i in range(30):
frame = cv.QueryFrame(capture)
print frame
if frame:
cv.WriteFrame(writer, frame)
프레임을 이미지로 저장하면 잘 작동하므로 캡처에 문제가 없음을 알 수 있습니다. 나는 작가를 잘못 만들고 있나? 'print fourcc'는 0.0을 출력하지만 많은 FOUR_CC 값으로 시도했습니다.
감사!
해결법
-
==============================
1.프레임의 색상 공간이나 깊이가 다른가요? 몇 가지 관찰 :
프레임의 색상 공간이나 깊이가 다른가요? 몇 가지 관찰 :
개인적으로 OpenCV를 사용하여 Quicktime 비디오를 생성하지는 못했지만이 방법은 압축되지 않은 AVI 파일을 생성하는 데 효과적입니다. 나는 cv.CV_FOURCC 함수를 사용하여 I420 fourcc를 선택했다.
import cv import sys # standard RGB png file path = 'stack.png' cap = cv.CaptureFromFile(path) fps = 24 width = int(cv.GetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_WIDTH)) height = int(cv.GetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_HEIGHT)) # uncompressed YUV 4:2:0 chroma subsampled fourcc = cv.CV_FOURCC('I','4','2','0') writer = cv.CreateVideoWriter('out.avi', fourcc, fps, (width, height), 1) for i in range(90): cv.GrabFrame(cap) frame = cv.RetrieveFrame(cap) cv.WriteFrame(writer, frame)
업데이트 : VLC 재생 screencapture.avi :
퀵타임 :
-
==============================
2.나는 'MJPG'와 'I420'을 포함하여 다양한 코덱을 시도했지만, 그들 중 누구도 내 Mac OpenCV 빌드에서 일하지 못했습니다. 그들은 불평없이 작은 볼 수없는 출력 파일을 만들었습니다.
나는 'MJPG'와 'I420'을 포함하여 다양한 코덱을 시도했지만, 그들 중 누구도 내 Mac OpenCV 빌드에서 일하지 못했습니다. 그들은 불평없이 작은 볼 수없는 출력 파일을 만들었습니다.
그런 다음이 페이지에서 나를 위해 작동하는 일부 코덱을 나열했습니다. 예 : 'mp4v'는 Mac에서 잘 작동하며 QuickTime에서 재생할 수 있습니다.
-
==============================
3.OpenCV 소스의이 파일은 라인 # 2598에 포함됩니다 -이 어설 션이 실패하면 "dst.data == dst0.data"
OpenCV 소스의이 파일은 라인 # 2598에 포함됩니다 -이 어설 션이 실패하면 "dst.data == dst0.data"
from https://stackoverflow.com/questions/5426637/writing-video-with-opencv-python-mac by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Django 1.7의 초기 마이그레이션에서 이전하는 방법은 무엇입니까? (0) | 2018.11.04 |
---|---|
[PYTHON] 파이썬 기계화 + GAEpython 코드 (0) | 2018.11.04 |
[PYTHON] Python을 통해 Windows 콘솔 응용 프로그램과 상호 작용 (0) | 2018.11.04 |
[PYTHON] TFRecordReader가 매우 느리게 보이고 멀티 스레드 읽기가 작동하지 않습니다. (0) | 2018.11.03 |
[PYTHON] Python에서 Openpyxl을 사용하여 기존 Excel 파일 수정 (0) | 2018.11.03 |