【发布时间】:2020-12-15 13:21:39
【问题描述】:
我正在通过 opencv 处理 hls 视频片段。我的目的是创建另一个带有已处理帧的段文件。经过一些研究,我发现它可以使用 gstreamer 管道来实现。我按照示例进行了操作,但它对我不起作用
代码示例
vs = cv2.VideoCapture(video)
fourcc = cv2.VideoWriter_fourcc(*"MJPG")
writer = cv2.VideoWriter("appsrc num-buffers=100 ! x264enc ! queue ! mpegtsmux name=mux ! filesink location="+outpath, fourcc, 30, (W, H), True)
while True:
frame = vs.read()
frame = frame[1]
frame = imutils.resize(frame, width=500)
rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
writer.write(frame)
错误
OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 7 and format 'mpegts / MPEG-TS (MPEG-2 Transport Stream)'
[ERROR:0] global /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-gi6lxw0x/opencv/modules/videoio/src/cap.cpp (563) open VIDEOIO(CV_IMAGES): raised OpenCV exception:
OpenCV(4.4.0) /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/pip-req-build-gi6lxw0x/opencv/modules/videoio/src/cap_images.cpp:267: error: (-215:Assertion failed) number < max_number in function 'icvExtractPattern'
我尝试了不同可能的编解码器组合('MJPG'、'MPV4'、'MPEG' 等),但到目前为止还没有运气:(。非常感谢任何帮助/建议。谢谢!
【问题讨论】:
-
我也尝试了“mpegts”和“MPEG-TS”,但在这种情况下我得到了以下错误。回溯(最后一次调用):文件“processor.py”,第 201 行,在
fourcc = cv2.VideoWriter_fourcc(*"mpegts") TypeError: VideoWriter_fourcc() 最多接受 4 个参数(给定 6 个)
标签: python opencv ffmpeg gstreamer