FFmpeg命令行和API使用指南
FFmpeg使用指南
命令行参数
基础参数
-a/vn
: 去掉音频或视频-a/vcodec
: 指定音视频编码器copy
: 不重新编码- 可指定为h264或aac等
常用命令
1. 获取视频信息
1 | ffmpeg -i video.avi |
2. 音视频流处理
1 | # 去掉视频流 |
3. 视频截图
1 | ffmpeg -i test.mp4 -ss 10 -frames:v 1 -s 1920x1080 output.jpg |
参数说明:
-ss <时间>
: 指定起始时间-s <宽度x高度>
: 调整图片大小-frames:v 1
: 只截取一帧
4. 添加水印
1 | # 图片水印 |
位置参数:
- 左上角:
overlay=10:10
- 右上角:
overlay=W-w-10:10
- 左下角:
overlay=10:H-h-10
- 右下角:
overlay=W-w-10:H-h-10
其中:
- W: 视频宽度
- H: 视频高度
- w: 水印宽度
- h: 水印高度
1 | # 文字水印 |
5. 视频旋转
1 | ffmpeg -i test.mp4 -vf "transpose=1" out.mp4 # 顺时针旋转90° |
API使用
视频播放流程
1. 格式上下文(AVFormatContext)
1 | AVFormatContext *pFormatCtx; |
2. 解码器设置
1 | AVCodecContext *pAVctx; // 解码器上下文 |
3. 数据包和帧处理
1 | AVPacket *pAVpkt = av_packet_alloc(); |
音频录制流程
1 | // 初始化 |
评论