介绍

FFmpeg 是一个开放源代码的自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。 “FFmpeg”这个单词中的“FF”指的是“Fast Forward”。

安装

本文只单独介绍如何在Windows和macOS下安装FFmpeg,暂不讨论在Linux下的情况。
FFmpeg的官网为https://ffmpeg.org/download.html

Windows

  1. 首先打开上面的官网下载链接,找到Windows模块下的Windows builds from gyan.dev
  2. 在新打开的gyan.dev的页面中找到Release部分,Links里第一个full(如红箭头所示)的链接直接点击下载FFmpeg的最新版压缩包。
  3. 下载下来的7z安装包先解压,然后将解压后的文件夹放至你不会随意删掉或改动为止的路径下(如C盘的Program Files但不是必须放到C盘)。
  4. 复制ffmpeg解压后文件夹内的bin文件夹路径(如下图所示)
  5. 打开设置-系统-关于-高级系统设置
  6. 打开高级系统设置后点开环境变量,找到系统变量中的Path变量双击点开。
  7. 新打开的页面点击右边的新建,粘贴进去在第四步复制的bin文件夹链接
  8. 添加完后一步一步确定-确定-确定。
  9. win+R,输入cmd,回车,打开cmd
  10. 输入FFmpeg并回车测试是否安装成功,显示类似下图即为安装成功

命令行录屏

gdigrab基于Win32 GDI的屏幕捕获设备。可以捕获Windows桌面屏幕显示区域的画面图像,包含windows窗口显示画面。

 

参数说明

framerate:帧率
desktop:desktop是指输入设备是桌面屏幕
draw_mouse:是否绘制鼠标,0:不绘制鼠标,1:绘制鼠标(如果为空默认为1)
-offset_x:捕获的区域X坐标,屏幕左上角为起始坐标(0,0),右下角为(screenSize,screenSize)
-offset_y:捕获的区域Y坐标

 

1 录制桌面,支持微软自带播放器和浏览器播放

ffmpeg -f gdigrab -i desktop  -vcodec libx264  -pix_fmt yuv420p    output.mp4 -y

指定编码格式和像素格式

 

2 指定录制时长

ffmpeg -f gdigrab -i desktop  -vcodec libx264  -pix_fmt yuv420p  -t 60  output.mp4

-t 指定录制时间长度,单位秒

 

3 指定捕获区域(不加-offset_x 和 -offset_y就是捕获全屏)

ffmpeg -f gdigrab -i desktop -offset_x 10 -offset_y 20  -vcodec libx264  -pix_fmt yuv420p  -t 60  output.mp4

 

python调用ffmpeg进行录屏

 

 

#coding:utf-8
import time
import os
import datetime
import subprocess

def live_video():
    # 用时间命名录屏的输出文件
    file_name = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S.mp4')

    # 开始录屏
    live_video = subprocess.Popen('ffmpeg -f gdigrab -i desktop  -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt yuv420p {} -y'.format(file_name),shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE) 
    #录屏10秒 
    time.sleep(10) 
    # 发送q指令给ffmpeg,退出录屏 
    live_video.stdin.write('q'.encode("GBK")) 
    live_video.communicate() live_video()