• ffmpeg 安装和录屏(python)


    介绍

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


    参考链接:

    https://www.zl-asica.com/2020/ffmpeg/

    https://blog.51cto.com/fengyuzaitu/3610970

    https://www.jianshu.com/p/fa5e0d530628

  • 相关阅读:
    Nginx 集群 反向代理多个服务器
    Nginx 反向代理
    Nginx 图片服务器
    网鼎杯 pwn 记录
    demo.testfire.net 靶场测试流程记录
    靶场测试系列(已办清单)
    Burp Suite插件推荐
    ida不错的插件记录
    0ctf2017-babyheap
    0ctf2018 pwn
  • 原文地址:https://www.cnblogs.com/superbaby11/p/16195343.html
Copyright © 2020-2023  润新知