美文网首页
FFmpeg常用命令(2)--录制命令

FFmpeg常用命令(2)--录制命令

作者: 一叶知秋0830 | 来源:发表于2019-07-11 09:25 被阅读0次

    1.先通过下面命令查询Mac上有哪些设备

    ffmpeg -f avfoundation -list_devices true -i ""
    

    查询结果如下图所示,视频输入设备有2个:索引号0表示内置摄像头,1表示屏幕;音频输入设备有一个:0表示内置麦克风。


    Mac上的设备查询

    2.屏幕录制与播放

    2.1 屏幕录制

    如果执行下面命令时出现权限问题,就在命令前面加上sudo再执行)。

    // 屏幕录制命令(control+c停止录制)
    ffmpeg -f avfoundation -i 1 -r 30 abc.yuv
    

    参数说明:
    -f:指定使用Mac系统下的 avfoundation 库来采集数据。Mac系统下avfoundation库是专门用于音视频处理的。
    -i:指定输入源,也就是从哪采集数据,后面的1是一个索引号,通过前面的查询命令得知屏幕的索引值是1。
    -r:指定帧率。按ffmpeg官方文档说-r与-framerate作用相同,但实际测试时发现不同。-framerate 用于限制输入,而-r用于限制输出。(注意,屏幕的输入对帧率没有要求,所以不用限制桌面的帧率。)
    abc.yuv:指定输出格式为yuv格式(yuv是一种原始格式数据,数据量是非常大的),abc为文件名(保存的路径是在你当前所在的目录)。

    执行录制命令后结果如下图所示,uyvy422是录制的像素格式,4096x2304是录制的视频尺寸,后面用ffplay播放这个视频时需要用到这两个参数。


    屏幕录制执行结果

    2.2 播放录制的屏幕

    // 播放命令
    ffplay -s 4096x2304 -pix_fmt uyvy422 abc.yuv
    

    参数说明:
    -s:指定视频尺寸
    -pix_fmt:指定像素格式。(ffplay默认使用的像素格式是yuv420p,而录制屏幕时使用的像素格式是uyvy422,所以这里需要指定一下播放的像素格式才能正常播放。)
    如果是播放封装格式的文件是不用指定这两个参数的,比如如果上面录制的格式是mp4,直接ffplay out.mp4就可以播放。

    3.声音录制与播放

    3.1 声音录制

    // 声音录制命令(control+c停止录制)
    ffmpeg -f avfoundation -i :0 aaa.wav
    

    参数说明:
    -f:指定使用Mac系统下的 avfoundation 库来采集数据。
    -i:指定输入源,通过前面的查询命令得知内置麦克风的索引值是0(音频设备索引值前面要加冒号)。
    aaa.yuv:指定输出格式为wav。

    3.2 播放声音

    // 因为播放的不是原始声音,所以不需要指定一些参数
    ffplay aaa.wav
    

    4.录制pcm格式的音频裸数据

    PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准的数字音频数据。

    ffmpeg  -f avfoundation -i :0 -ar 44100 -f s16le out.pcm
    

    参数说明:
    -ar 指定采样率为44.1kHz。
    -f s16le 指定采样大小为16bit (不是很确定???)。

    5.录屏加声音

    ffmpeg  -f avfoundation -i 1:0  -r 29.97 -c:v libx264 -crf 0 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k  aaa.mp4
    

    参数说明:
    -i 冒号前面的1表示屏幕索引号,冒号后面的0表示内置麦克风索引号。
    -r 帧速率为29.97 (29.97是标准帧速率)。
    -c:v 与参数 -vcodec 一样,表示视频编码器。c 是 codec 的缩写,v 是video的缩写。
    -crf 是 x264 的参数。 0 表式无损压缩。
    -c:a 与参数 -acodec 一样,表示音频编码器。
    -profile:a 是 fdk_aac 的参数。 aac_he_v2 表式使用 AAC_HE v2 压缩数据。
    -b:a 指定音频码率。 b 是 bitrate的缩写, a是 audio的缩与。

    6.视频录制

    ffmpeg -f avfoundation -framerate 30 -i 0 1.mp4
    

    参数说明:
    -framerate 限制视频的采集帧率。这个必须要根据提示要求进行设置,如果不设置就会报错。

    7.视频和音频录制

    ffmpeg -f avfoundation -framerate 29.97 -i 0:0 2.mp4 
    

    相关文章

      网友评论

          本文标题:FFmpeg常用命令(2)--录制命令

          本文链接:https://www.haomeiwen.com/subject/waetcctx.html