Mac 安装
1 | brew install ffmpeg |
查看 mac 上的设备列表
1 | ffmpeg -f avfoundation -list_devices true -i "" |
屏幕录像
1 | # 录屏 |
其中, -r
指的是帧率(fps), -crf 0
指的是无损压缩。
-i 1:1
前面的1是指视频设备索引,后面的0是指麦克风设备索引,这个值根据上面查看设备列表指令返回的结果而定。
如果报类似的错 Too many packets buffered for output stream 0:0
,则加上参数 -max_muxing_queue_size 2048
如下:
1 | ffmpeg -f avfoundation -i 1:0 -max_muxing_queue_size 2048 -r 30 -pix_fmt yuv420p -c:v libx264 -s 1920x1080 -b:a 32k out.mp4 |
摄像头录制
1 | # 录视频 |
录音
1 | ffmpeg -f avfoundation -i :0 out.wav |
录制画中画
1 | ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0" -r 30 -c:v libx264 -preset ultrafast -filter_complex "[1:v]scale=w=300:h=300:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=H-h-30[out]" -map "[out]" -movflags faststart -map 1:a -pix_fmt yuv420p -s 1024x720 output.mp4 |
RTMP拉流
1 | # url 要加引号,不然会出错 |
视频批量切割
1 | ffmpeg -fflags +genpts -i input.mov -acodec copy -vcodec copy -f segment -segment_time 30 -reset_timestamps 1 -map 0:0 -map 0:1 piece_%03d.mov |
视频合并
1 | # index.txt |
# 合并
ffmpeg -f concat -i index.txt -c copy output.mp4
参考
- [ffmpeg视频切片转码合并](https://www.dazhuanlan.com/2019/12/04/5de7ce6d6ffdd/)
- [ffmpeg转码](https://blog.csdn.net/hk_shao/article/details/86688756)
- [FFmpeg命令实例合集](https://blog.csdn.net/yu540135101/article/details/103025957)
- [ffmpeg实例,split,pad,crop,scale,hflip,overlay](https://blog.csdn.net/yu540135101/article/details/84332055)