FFmpeg下的录屏录音

前面我们安装了FFmpeg,FFmpeg还提供了录屏+录音的功能,可以方便录制直播视频,教学视频等等.我们使用alsa录音功能,alsa driver驱动被内嵌志linux内核中, 基本上只要不是内核本版太老,是不需要再进行安装的.如果小伙伴们发现机器上不能使用alsa,可以去安装一下alsa的三个库alsa-driver,alsa-lib,alsa-utils

到FFmpeg官网查看相应资料FFmpeg

在linux中录音录屏发现了三条指令

$ ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 output.mp4
$ ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 output.mkv
$ ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default output.mkv

参数详解

  • -video_size 录制视频的分辨率

    $ echo $(xdpyinfo|grep ‘dimensions:’ | awk ‘{print $2}’)

  • -f device 指定设备,这里我们使用x11grab设备去录屏,使用alsa设备去录音,请在使用前确保该设备被安装,并且确保在FFmpeg编译时已经添加到FFmpeg的devices列表中

    $ ffmpeg -devices

    devices

  • -i :0.0+100,200 从左上角开始,向x轴偏移100,y轴偏移200,我们可以不用偏移

  • -ac 设置音频通道数

  • -i hw:1 指定音频设备

    在linux中使用alsamixer可以打开alsa控制面板
    $ alsamixer

    alsamixer1

    按F6选择声卡,注意前面的标号根据实际情况选择,我的音频设备是1号,与hw:后面的1相对应

    alsamixer2

    到下面的界面后,按F4跳转到捕获音频界面

    alsamixer3

    在这里我们可以调整录音时音量的大小,左右切换至capture,上下调整音量

    alsamixer4

FFmpeg录屏录音

  • x11grab录屏

$ ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 ~/output.mp4

  • alsa录音

$ ffmpeg -f alsa -ac 2 -i hw:1 ~/out.wav

  • 录屏+录音

$ ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i hw:1 out.mp4

录屏演示