录屏
参考官方文档: https://trac.ffmpeg.org/wiki/Capture/Desktop
1.查看当前设备支持的视频源(录屏或者摄像头、声音等)
windows 需下载 setup Virtual Audio Capture Grabber 和 Setup.Screen.Capturer.Recorder 捕获音视频信息, nodejs 可使用 ffmpeg-device-list-parser 这个 node 包获取当前支持的设备
# win 下使用 dshow
ffmpeg -f dshow -list_devices true -i dummy
# mac 下使用 avfoundation
ffmpeg -f avfoundation -list_devices true -i ""
2.开始录屏
# win下使用 gdigrab 支持 video_size 等参数
ffmpeg -rtbufsize 100M -f gdigrab -framerate 30 -video_size 600x480 -offset_x 100 -offset_y 60 -r 30 -i desktop -f dshow -i audio="virtual-audio-capturer" -vcodec libx264 o.mp4
h264_nvenc
# mac 下使用 avfoundation
ffmpeg -f avfoundation -capture_cursor "1" -i "0:0" output.mkv
# 截屏
ffmpeg -f gdigrab -i desktop -vframes 1 output.jpg
ffmpeg -f alsa -ac 1 -i pulse -acodec aac -f x11grab -s 1024x600 -i :0.0 -sameq a.mp4
ffmpeg -f x11grab -s 1440x900 -i :0 -preset ultrafast -crf 10 a.mkv
转码
视频转码:
ffmpeg -i 1.mp4 1.avi
视频转码 + 水印:
ffmpeg -i 1.mp4 -i watermark.png -filter_complex "[1:v]scale=128:128[v1];[0:v][v1]overlay=100:100" water.mp4
分离
将视频中的视频信号分离,(无声):
ffmpeg -i 1.avi -vcodec copy -an 1_v.avi
将视频中的音频信号分离,(无图像):
ffmpeg -i 1.avi -vn -acodec copy output-audio.wav
截取
视频截取:
# 按时间
ffmpeg -i 1.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
# 按区域
ffmpeg -i 1.mp4 -vf crop=width:height:x:y cut.mp4
将视频某一帧输出为图像:
60 为每隔 60 秒输出一张
ffmpeg -i 1.mp4 -vf fps=1/60 img%03d.jpg
音频
音频转码:
ffmpeg -i 1.mp3 -map_metadata 0:s:0 out1.ogg
ffmpeg -i 1.mp3 -map_metadata 0:s:0 out2.aac
ffmpeg -i 1.mp3 -map_metadata 0:s:0 out3.wma