OPCV 保存视频,如何保存特定时长


 一般情况下我们用opencv保存视频,其实调用的也是ffmpeg,所以如果能直接用ffmpeg进行视频合成保存的就用ffmpeg,但是ffmpeg有时候确实很多人用不惯那就用opencv

但是opencv和ffmpeg也会出现一些不明白的事情,例如ffmepg保存视频后,再次合成(这个在自己编写的播放器中可能有问题)出现无法拖拉的情况。

python调用ffmpeg,将图片保存视频,这个时候需要文件夹中图片是有序号的

os.system('ffmpeg -f image2 -r {0} -i {1}/%d.jpg -vcodec libx264  {2}/{3}.mp4 -y' .format(fps_save,(BASE_DIR+'/conv_pic'),folder_path,str(videoname)))

opencv保存成特定时长的视频,一般我们通过fps来进行调节,

例如保存10s视频,fps=照片数量/10

但如果fps是整数时,保存的视频不是10s的,而是9s的,后来将fps加一个扰动,例如下面例子,就好了;查了资料可能是因为视频中的关键帧的问题吧,不确定,还需要继续探索,不过加个扰动确实还是有用的。

fps_save = (len(name_index_conv)/continu_time)-0.00001
 print(fps_save)
            
            # 
  fourcc = cv2.VideoWriter_fourcc(*'AVC1')
  size = (1280,720)
  video_save_path=folder_path+'/'+videoname+'.mp4'
   out = cv2.VideoWriter(video_save_path, fourcc,fps_save,size)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值