使用 python 使用 gstreamer 从 opencv 将视频流式传输到 AWS Kinesis

问题描述 投票:0回答:0

我正在尝试使用 OpenCV 和 GStreamer 将视频流式传输到 AWS Kinesis Video Streams,但我无法让它正常工作。我已经设置了一个名为 ExampleStream 的 Kinesis 视频流,我想使用一个 numpy 数组作为视频帧的来源。

这是我使用的代码:

import cv2
import numpy as np
import time
from Utils.utils import get_aws_cred

access_key, secret_key = get_aws_cred()

pipeline = (
    "appsrc ! videoconvert ! video/x-raw,format=BGR,width={400},height={400} ! videoconvert ! video/x-raw,format=YV12 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name=ExampleStream storage-size=512 aws-region='eu-central-1' access-key={access_key} secret-key={secret_key}"
)

out = cv2.VideoWriter(pipeline, cv2.CAP_GSTREAMER, 0, 1, (400, 400), True)

while True:
    frame = (np.random.rand(400, 400, 3) * 255).astype(np.uint8)
    out.write(frame)
    time.sleep(1)

没有错误或我可以通过调试来解决的问题。此外,当我从我的终端运行管道时它的工作原理,所以我假设 aws 中的配置是正确的。我通过终端运行的管道是:

"gst-launch-1.0 videotestsrc is-live=true ! video/x-raw,framerate=25/1 ! videoconvert ! x264enc  bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name=ExampleStream storage-size=512 access-key=$AWS_ACCESS_KEY_ID secret-key=$AWS_SECRET_ACCESS_KEY aws-region=$AWS_REGION max-latency=1 buffer-duration=1"

知道管道出了什么问题或如何调试它吗?

python opencv gstreamer amazon-kinesis-video-streams
© www.soinside.com 2019 - 2024. All rights reserved.