Unity录屏的坑(FFmpeg)

时间:2024-04-08 16:26:37

一、FFmpeg 安装与Setup Screen Capturer Recorder v0.12.10安装

  1. 下载地址:链接:https://pan.baidu.com/s/1cIKyKMa6nhymVVF9OvOm9A
    提取码:rv3t
  2. 配置环境变量:Unity录屏的坑(FFmpeg)

二、FFmpeg 命令

-y是否覆盖同名文件
-t 表示录屏时间:缺省没有录屏时间限制
-i 便是输入媒体
-vcodec 表示编码器的库为x264
-preset 解码器
-acodec 表示音频编码器
-codecs 查看编码
cls 清除屏幕
-h 帮助
-ar 音频采样率
-ab 指定音频比特率
-ac 声道数
-s 缩放视频尺寸
-an 剔除音频
-vn 剔除视频
-ss -to 截取
-pix_fmt 视频色彩空间(yuv420p)
-preset 编码器预设 ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo
-rtbufsize 缓冲区大小
-profile 编码器配置
-crf 码率(视频每帧码率)
-r 表示帧率
-b 固定目标码率
-b:a 便是音频比特率
-b:v 视频比特率

三、FFmpeg 语句

  1. 格式转换语句
    ffmpeg -i 视频路径 -vcodec libx264 输出路径
  2. 视频压缩语句
    ffmpeg -i 视频路径 -b:v 比特率数 输出路径
  3. 从网络上下载视频
    ffmpeg -i “URL” -c copy 输出路径
  4. 录制屏幕(没有声音单屏幕录制).基于GDI录屏,FFmpeg直接从Windows的GDI中拷贝图形,然后再合成视频。
    ffmpeg -f gdigrab -s 1280x720 -vcodec libx264 d:\out.mp4
  5. 录制屏幕(有声音)基于directshow方案,FFmpeg从directshow驱动接口中读取。注意需要加入-pix_fmt yuv420p指定色彩空间
    ffmpeg -f dshow -i video=“screen-capture-recorder” -f dshow -i audio=“virtual-audio-capturer” -pix_fmt yuv420p -s 1280x720 -preset ultrafast -rtbufsize 3500k -y E:\123.mp4

四、巨坑无比(解决FFmpeg基于directshow方案的屏幕录制声音画面不同步问题)

如果使用directshow这种方案进行录屏,会产生一个问题就是声音和画面录制不同步,然后在不同的机器上的表现是不一样的,解决方案是:在输入音频后加上”:“指定音频输入,具体原因不清楚。
ffmpeg -f dshow -i video=“screen-capture-recorder”: audio=“virtual-audio-capturer” -pix_fmt yuv420p -s 1280x720 -preset ultrafast -rtbufsize 3500k -y E:\123.mp4

五、小坑(解决FFmpeg基于directshow方案的屏幕录制视频画面卡顿)Unity录屏的坑(FFmpeg)

调整这两个值-preset ultrafast -rtbufsize 3500k