ffmpeg录屏 本文共有2201个字,关键词: 使用 ffmpeg 命令录制音视频数据 ###获取音频设备 ``` ffmpeg -list_devices true -f dshow -i dummy ``` 可以获取 系统中 ffmpeg 可用的 DirectShow 音视频输入设备 ; -list_devices true : 列出所有 ffmpeg 的 指定类型的可用设备 ; -f dshow : 设置 输入设备 类型为 dshow , 这是 DirectShow 的简称 , DirectShow 是 Windows 的 音视频设备管理 框架 ; -i dummy : -i 表示 ffmpeg 输入文件或设备 , dummy 指的是虚拟的输入设备 , 该参数的作用是 指定 ffmpeg 可用的 dshow 虚拟输入设备。 ###录制视频数据命令 ``` ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -c:v libx264 -preset ultrafast output.mp4 ``` -f gdigrab : 设置 录制视频 的 输入格式为 gdigrab , Windows 上使用该方式捕获视频 , Linux 中设置的是 -f x11grab 参数 ; -framerate 30 : 设置 录制屏幕 的 帧率 为 30 FPS ; -offset_x 0 -offset_y 0 : 设置 录制区域的偏移量 , 也就是 视频的左上角 所在的 屏幕中的位置 , 这里设置为屏幕的左上角 , 配合下面的 1920x1080 也就是全屏录制 ; -video_size 1920x1080 : 设置 录制视频尺寸为 1920x1080 , 这也是屏幕的分辨率 ; -i desktop : 设置录制视频的 输入设备或文件 为系统桌面 ; -c:v libx264 : 设置 视频编码器 为 libx264 ; -preset ultrafast : 设置编码速度为 ultrafast ; ###bat文件 ``` @echo off setlocal rem 获取当前日期和时间,并将其格式化为文件名 for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" set "filename=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%" rem 使用 ffmpeg 进行录屏和录音 ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Microphone (High Definition Audio Device)" -c:v libx264 -preset ultrafast -crf 0 -c:a aac -b:a 128k "%filename%.mp4" echo 屏幕录制完成,文件已保存为 %OUTPUT_FILE% pause endlocal ``` ``` @echo off setlocal enabledelayedexpansion :: 获取当前日期和时间 set DATE_STR=%date:~0,4%-%date:~5,2%-%date:~8,2% set TIME_STR=%time:~0,2%-%time:~3,2% :: 去掉时间中的秒和毫秒(如果有的话) set TIME_STR=%TIME_STR:~0,5% :: 设置输出文件名 set OUTPUT_FILE=ScreenRecording_%DATE_STR%_%TIME_STR%.mp4 :: 使用FFmpeg开始录屏并录制默认麦克风声音,这里以录制全屏、编码为H264、音频编码为AAC为例 ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Microphone (High Definition Audio Device)" -c:v libx264 -preset veryfast -crf 23 -c:a aac -b:a 128k "%OUTPUT_FILE%" :: ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Microphone (High Definition Audio Device)" -c:v libx264 -preset ultrafast -crf 0 -c:a aac -b:a 128k "%OUTPUT_FILE%" echo 屏幕录制完成,文件已保存为 %OUTPUT_FILE% pause ``` 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 梦白沙 (๑>ڡ<)☆谢谢老板~ 1元 2元 5元 10元 50元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 随手发现 2024-07-01 评论 170 次浏览