ffmpeg将处理后的图片推成视频流,画面卡顿

源码

# 推流参数
    size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))        # 视频流的参数
    sizeStr = str(size[0]) + 'x' + str(size[1])
    fps = cap.get(cv2.CAP_PROP_FPS)                            # 30p/self
    fps = int(fps)
    print('-------%d'%fps)
    rtmpUrl = 'rtmp://localhost/videotest/pigtrace'
    command = ['ffmpeg',
    '-y',
    # '-c', 'copy',                   # copy图像的质量会更好
    '-thread_queue_size', '512',
    '-f', 'rawvideo',
    '-vcodec','rawvideo',
    '-pix_fmt', 'bgr24',
    '-s', sizeStr,
    '-r', str(fps),
    '-i', '-',
    '-c:v', 'libx264',
    '-pix_fmt', 'yuv420p',
    '-preset', 'ultrafast',
    '-f', 'flv',
    rtmpUrl]
    pipe_push = sp.Popen(command, stdin=sp.PIPE, shell=False)

原因

ffmpeg的fps用的是源视频流的fps,而现在处理之后的速度达不到10fps,于是将fps改下就可以了。

解决

fps = 5

你可能感兴趣的:(多目标跟踪,ffmpeg)