gpt4 book ai didi

python - 从opencv videowriter api运行gstreamer管道命令以将连续图像流式传输到hlssink

转载 作者:行者123 更新时间:2023-12-02 17:22:38 25 4
gpt4 key购买 nike

我正在尝试使用 opencv videowriter api 从视频卡设备流式传输连续图像,下面是执行该操作的 opencv 代码片段,我的问题是我正在获取帧但没有在/var/中生成任何 index.m3u8 文件www文件夹我是opencv的新手,gstreamer无法弄清楚这是否可以从opencv实现,或者我必须使用其他一些机制

input video device is a video card which supports only MJEPG codec


import cv2

cap = cv2.VideoCapture('/dev/video0')
framerate = 30.0

out = cv2.VideoWriter('appsrc ! image/jpeg ! '
'jpegdec ! x264enc tune=zerolatency ! '
'mpegtsmux ! hlssink location=/var/www/segment-%05d.ts '
'playlist-location=/var/www/index.m3u8 max-files=20 target-duration=15',
0, framerate, (640, 480))

while cap.isOpened():
ret, frame = cap.read()
if ret:
out.write(frame)
else:
break

# Release everything if job is finished
cap.release()
out.release()

最佳答案

OpenCv 的 VideoWriter仅在其 GStreamer 接口(interface)上支持 BGR 帧。大概VideoCapture还将图像转换为 BGR。

因此,您无需在 gstreamer 管道中解码 jpeg。然而x264enc并不总是接受 BGR 作为输入,因此您应该添加 videoconvert appsrc之间和 x264enc`

t = cv2.VideoWriter('appsrc ! videoconvert ! x264enc tune=zerolatency ! '
'mpegtsmux ! hlssink location=/var/www/segment-%05d.ts '
'playlist-location=/var/www/index.m3u8 max-files=20 target-duration=15',
0, framerate, (640, 480))

关于python - 从opencv videowriter api运行gstreamer管道命令以将连续图像流式传输到hlssink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61422014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com