我想创建如下图所示的管道;
https://i.stack.imgur.com/Nb17P.png
GSTREAMER_OUT = ' ! '.join([
'appsrc',
'queue',
f'video/x-raw,format=BGR,width={frame_width},height={frame_height}',
'videoconvert',
'video/x-raw,format=YV12',
'x264enc byte-stream=true',
'video/x-h264,stream-format=avc,alignment=au,profile=baseline',
' '.join([
'kvssink',
f'stream-name={kvs_out_stream_name}',
'storage-size=512',
f'access-key={access_key}',
f'secret-key={secret_key}',
'aws-region=ap-northeast-1',
# 'buffer-duration=60',
f'framerate=1',
# 'max-latency=10',
]),
])
cap = cv2.VideoCapture(in_stream_url)
out = cv2.VideoWriter(GSTREAMER_OUT, cv2.CAP_GSTREAMER, 0, target_fps, (frame_width, frame_height), True)
while True:
ret, frame = cap.read()
result = some_image_process(frame)
out.write(result)
但是,管理控制台经常显示如下所示的断帧;
https://i.stack.imgur.com/oecrR.png
整个视频:https ://youtu.be/vBAgECHYJjU
我想知道如何修复这个 GStreamer 管道。我对 GStreamer 不是很熟悉,所以如果您详细介绍 GStreamer 管道,将不胜感激。