opencv录制视频 python_Python-OpenCV录制H264编码的MP4视频

前言

因最近项目需求涉及计算机视觉相关内容,需要实现在Python录制视频,并且录制完成后可在浏览器前端中进行视频回放的功能;特写下此篇文章以记录整体实现过程。

2019-08-02 更新

之前一直在忙别的事,没有继续深入探究,这篇文章也暂时搁置了;但是最近发现之前的实现方式(录制avi视频后由Java调用FFmpeg转换为mp4)会影响到系统的性能,原因为调用FFmpeg转换视频时CPU占用较高QAQ,于是在此前的基础上继续寻找解决方式。

降低FFmpeg的CPU占用

既然FFmpeg的CPU占用较高,那么我们首先尝试如何降低对CPU的占用,搜索发现可以在FFmpeg命令中添加-threads参数来指定CPU的使用

FFmpeg转换测试

此次测试均使用相同avi视频文件,大小为113

1. 原始转换命令

ffmpeg -i test.avi -vcodec libx264 -f mp4 test.mp4

# 转换用时 30s~31s

# CPU占用 950%~1000%

复制代码

2. 添加-threads 6参数

ffmpeg -i test.avi -threads 6 -vcodec libx264 -f mp4 test.mp4

# 转换用时 45s~46s

# CPU 占用490%~550%

复制代码

3. 添加-threads 2参数

ffmpeg -i test.avi -threads 2 -vcodec libx264 -f mp4 test.mp4

# 转换用时 87s~88s

# CPU占用 205%~230%

复制代码

可以看出,添加-threads参数后CPU的占用确实少了,但相应的视频转换耗时也增加了,显然这不是我们想要的效果;所以还是逃避不了录制H264视频的问题

编译安装OpenCV录制视频

之前一直无法录制H264编码的MP4视频是因为使用的为pip安装的opencv-python,这个库中自带FFmpeg,所以不论我们如何折腾系统的FFmpeg都不会有任何作用;如果我们想要调用系统的FFmpeg则需要手动编译安装OpenCV。具体原因可以参考下图:

db80fffc8e4b9a505a5e963032f9aacb.png

如何编译安装OpenCV就不过多叙述了,这也不是此篇文章的重点,但还是给懒癌患者放个链接吧! Ubuntu1

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值