ffmpeg为一个多媒体(视频、音频)处理工具。有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
1.ffmpeg命令行参数解释
一般ffmpeg有两种命令行格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[ options ][ -i input_file ]]... {[ options ] output_file}...参数选项:
(1) -an: 去掉音频 -vn:去掉视频 -t:持续时长 -ss:起始时间 -r:帧率(默认为25) -s:帧大小(W*H) -aspect:横纵比(4:3,16:9等)
(2) -acodec: 音频选项, 一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝
格式选项:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3) mpegts: 表示ts视频流
2. ffmpeg常用命令
①:视频格式转换
ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts # 将h264格式转为ts格式
ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4 # 将h264格式转为MP4格式
②:视频拼接
ffmpeg -i "concat:test1.h264|test2.h264" -vcodec copy -f h264 out12.h264
# 将test1.h264和test2.h264视频拼接起来,输出out12.h264视频
③:视频截图
ffmpeg -i test.mp4 -t 0.001 -s 352x240 1.jpg # 在test.mp4中截图
ffmpeg -i test.mp4 -vframes 30 -y -f gif 1.gif # 将test.py前30帧做成gif动图
ffmpeg -i test.mp4 -t 10 -r 1 pic-%03d.jpg # 从视频前10s中取图像,1s提取一帧
④:单独提取音频、视频:
ffmpeg -i test.mp4 -acodec aac -vn output.aac # 单独提取音频
ffmpeg -i test.mp4 -vcodec copy -an output.mp4 # 单独提取视频
⑤:视频剪辑:
ffmpeg -ss 00:00:15 -t 00:00:05 -i test.mp4 -vcodec copy -acodec copy output.mp4
# 从test.mp4视频的25秒位置开始,持续5秒的视频输出为output.mp4
此外,利用ffmpeg还可以给视频添加logo、删除logo、添加字幕、视频录制、将图片转为视频等功能。