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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值