Python定时运行FFMPEG录屏然后自动保存MP4 | 难点讲解

一、问题描述

首先讲一下模块的背景,我需要在Linux下面录屏,因为并不知道目标机的屏幕分辨率,所以:

1、自动获取屏幕分辨率

2、自动开始录屏

3、录屏5分钟以后自动保存并结束录制

二、逐个击破

首先是怎么获取分辨率,在Linux下面有个命令是  xrandr  ,它可以打印出来屏幕分辨率,但是他会打印一大堆出来,所以要精准筛选出****x***这样的文字出来:

xrandr -q --current | grep '*' | awk '{print$1}'

然后把它组装到ffmpeg命令里面作为指定的录屏分辨率:

ffmpeg -f x11grab -s $(xrandr -q --current | grep '*' | awk '{print$1}') -r 2 -i :0.0+0+0 -b:v 150k -vcodec libx264 output.mp4

其中 :

-f  x11grab是信号源

-s 是设置分辨率

-r 设定帧率

-i 设定采集位置和偏移量

-b:v 是码率

-vcodec 是编码格式

最后一个难点是如何让他定时录屏5分钟之后自动结束:

经过测试 subprocess里面的wait()命令并不生效,ffmpeg进程无法结束

但是在正常命令运行中按[q]键可以结束录制,因为在按了q之后ffmpeg程序会补齐文件尾,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值