FFmpeg安装
Mac安装ffmpeg
ffmpeg
pip install ffmpeg
或者
brew install ffmpeg
FFmpeg使用
视频截图
固定时间点截取一张图片
ffmpeg -i input.mp4 -ss 4.500 -vframes 1 output.png
固定时间开始连续截图多张图片
ffmpeg -i input.mp4 -ss 4.500 -vframes 10 output%d.png
fps 定帧率截图帧率截图
视频每秒截一张图片
ffmpeg -i input.mp4 -vf fps=1 output%d.png
视频每10秒截一张图片,保存为jpeg图片
ffmpeg -i input.mp4 -vf fps=0.1 output%d.jpg
视频每秒截十张图片,保存为bmp图片
ffmpeg -i input.mp4 -vf fps=10 output%d.bmp
视频水印
视频添加logo
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v] scale=176:144[logo];[0:v][logo]overlay=x=0:y=0" output.mp4
视频添加水印文字
ffmpeg -i input.mp4 -vf "drawtext=fontsize=100:fontfile=FreeSerif.ttf:text='hello world':x=20:y=20:fontcolor=green" input.mp4
Logo在左上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay output.mp4
右上角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4
左下角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4
右下角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4
视频字幕
添加rgb.srt字幕文件
ffmpeg -i input.mp4 -vf subtitles=rgb.srt output.mp4
视频裁剪
从10开始,裁5秒长度的视频
ffmpeg -i input.mp4 -ss 10 -t 5 output.mp4
从10s开始,裁剪到20秒
ffmpeg -i input.mp4 -ss 10 -to 20 output.mp4
画面裁剪
//裁剪输入视频的左三分之一,中间三分之一,右三分之一:
ffmpeg -i input -vf crop=iw/3:ih :0:0 output
ffmpeg -i input -vf crop=iw/3:ih :iw/3:0 output
ffmpeg -i input -vf crop=iw/3:ih :iw/3*2:0 output
//裁剪帧的中心
//当我们想裁剪区域在帧的中间时,裁剪filter可以跳过输入x和y值,他们的默认值是
Xdefault = ( input width - output width)/2
Ydefault = ( input height - output height)/2
ffmpeg -i input_file -v crop=w:h output_file
//裁剪中间一半区域:
ffmpeg -i input.avi -vf crop=iw/2:ih/2 output.avi
视频压缩
改变帧率
//帧率设置为 20fps
ffmpeg -i input.mp4 -r 20 output1.mp4
指定文件大小
//fs 20 : 表示文件大小最大值为15MB,把视频截了一部分 --- 这种方法不推荐
ffmpeg -i input.mp4 -fs 15MB output1.mp4
改变分辨率
ffmpeg -i Desktop/1.mov -s vga Desktop/1.mp4
-s vga : 指定分辨率, vga 代表 600*480,也可以换成其他的值
改变码率
视频的原码率是 2.1Mb/s ,压缩为 1.5Mb/s
ffmpeg -i Desktop/1.mov -b:v 1.5M Desktop/1.mp4
-b:v 1.5M : 指定码率
-b:v :指定视频的码率
-b:a : 指定音频的码率
1.5M:码率的值 1.5M 表示 1.5Mb/s
直播推流
本地视频推流
ffmpeg -re -i keep.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room
本地电脑桌面录制和推流
ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/rtmplive/room
本地桌面+麦克风
ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/rtmplive/room
本地桌面+麦克风+摄像头
ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room