常用命令
基本信息查询命令;裁剪与合并命令
录制命令;直播命令
处理原始数据命令;各种滤镜命令
1. 录制命令
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop out.mpg
-gdigrab: 表明我们是通过gdi抓屏的方式;(mac下 avfoundation)
-framerate 30 : 表示我录制的帧率位30;
-offset_x : 左上偏移量x;
-offset_y : 左上偏移量y;
-video_size : 需要录制的宽度和高度
-i: 输入路径和名称以及格式mpg;
-desktop: 告诉ffmpeg我们录的是屏幕,而不是一个窗口(可以录制一个窗口,不过得用窗口的ID)
2. 分解复用命令
抽取音频流 ffmpeg -i input.mp4 -acodec copy -vn out.aac
acodec : 指定音频编解码,copy指明只拷贝,不做编解码
vn: v代表视频,n代表no 也是无视频的意思
抽取视频流 ffmpeg -i input.mp4 -vcodec copy -an out.h264
vcodec : 指定视频编解码,copy指明只拷贝,不做编解码
an: v代表音频,n代表no 也是无音频的意思
合成视频:ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy out.mp4
3. 处理原始数据
获取未经过编码的画面和音频。画面信息一般是yuv 音频信息是pcm
提取YUV数据: ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
-c:v rawvideo 指定将视频转成原始数据
-pixel_format yuv420p 指定转换格式为yuv420p
未经编码的数据需要用到ffplay播放-ffmpeg自带播放器(ffplay -s 608x368 out.yuv)
提取PCM数据: ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
-ar: 指定音频采样率44100 即44.1KHZ
-ac: 指定音频声道channel 2为双声道
-f: 数据存储格式 s:Signed 有符号的,16: 每一个数值用16位表示, l:little, e:end
未经编码的数据需要用到ffplay播放-ffmpeg自带播放器(ffplay -ar 44100 -ac fs16le out.pcm)
4. 裁剪滤镜
ffmpeg -i input.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy crop.mp4