1、安装
apt install ffmpeg
2、检查是否安装成功
ffmpeg -version
3、简单使用方法
截图:ffmpeg -i demo.mp4 -ss 10.1 -t 0.001 output.jpg
截取demo.mp4的视频,从10.1秒开始,-t 0.001表示截取10.1秒的这张图片,保存为output.jpg
mp4转gif
ffmpeg -i input.mp4 -b 568k -r 20 -vf fps=20,scale=1200:-1:flags=lanczos,palettegen -y output.png
ffmpeg -i input.mp4 -i output.png -r 15 -lavfi "fps=15,scale=1200:-1:flags=lanczos[x];[x][1:v]paletteuse" -y output.gif
调色板优化
ffmpeg -i input.mp4 -r 30 -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
每一帧调色板优化
ffmpeg -i input.mp4 -r 30 -vf "split[s0][s1];[s0]palettegen=stats_mode=single [p];[s1][p]paletteuse=new=1" output.gif
裁剪:ffmpeg -i demo.mp4 -filter:v "crop=10:20:100:100" output.mp4
crop里的参数依次为: 左边距:右边距:宽度:高度
截取一段视频
ffmpeg -i input.mp4 -ss 00:10 -to 00:11 -c:v libx264 -crf 30 output.mp4(重新转码:慢)
ffmpeg -ss 00:00:10 -to 00:00:11 -i input.mp4 -c:v libx264 -c:a aac -strict experimental -b:a 98k output.mp4(精准时间重新转码:慢)
ffmpeg -ss 00:00:10 -to 00:00:11 -i input.mp4 -c:v copy -c:a copy output.mp4
ffmpeg -ss 00:00:10 -to 00:00:11 -accurate_seek -i input.mp4 -codec copy output.mp4(推)
ffmpeg -ss 00:00:10 -to 00:00:11 -i input.mp4 -y -f mp4 -vcodec copy -acodec copy -q:v 1 output.mp4
-ss 截取视频开始时间
-to 截取视频结束时间
-i 输入视频文件
-y 无需询问
-f 输出视频格式
-vcodec 视频编码格式 copy为不发生改变,复制原有编码格式
-acodec 音频编码格式 copy为不发生改变,复制原有编码格式
-q:v 1 q是质量,v是视频 v取值范围[1,35] 1为最佳
相同分辨率转flv:ffmpeg -i demo.mp4 -vcodec copy -acodec copy output.flv
视频切割ts文件
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
多个ts文件合为视频:ffmpeg -i "concat:1.ts|2.ts" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4
mp4转m3u8(效率低不推荐):ffmpeg -i 1.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 2 -hls_time 20 index.m3u8
ts切割成m3u8(推荐使用):ffmpeg -i 1.ts -c copy -map 0 -f segment -segment_list index.m3u8 -segment_time 20 索引-%03d.ts
链接下载为视频:ffmpeg -i https://qq.com-ok-qq.com/20190914/23320_ae6e0ded/index.m3u8 -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4
flac转mp3:ffmpeg -i 1.flac -vn -ar 44100 -ac 2 -ab 192k -f mp3 output.mp3 或 ffmpeg -i 1.flac -acodec libmp3lame output.mp3
多个flv文件合并:for f in *.flv;do echo "file '$f'" >> mylist.txt; done(linux)
for /l %i in (1,1,43) do @echo "file %i.mp4" >> mylist.txt(win)
ffmpeg -f concat -i mylist.txt -c copy output.flv
flv转mp4:ffmpeg -i "output.flv" -c copy "output.mp4"
提取视频的封面:ffmpeg -i file.mp4 -map :v -map -0:V -c copy cover.jpg
提取视频第一帧:ffmpeg -i file.mp4 -y -f image2 -frames 1 cover.jpg
提取指定尺寸封面:ffmpeg -i file.mp4 -y -f image2 -s 640*480 -frames 1 cover_640_480.jpg
提取视频第50s做封面:ffmpeg -i file.mp4 -y -f image2 -ss 50 -t 0.001 cover_50s.jpg
替换视频封面:ffmpeg -i file.mp4 -i cover.jpg -map 1 -map 0 -c copy -disposition:0 attached_pic output.mp4
提取视频的音频:ffmpeg -i output.mp4 -f mp3 output.mp3
图片压缩:ffmpeg -i 1.jpg -compression_level 1 output.jpg
ffmpeg -i 1.jpg -q 1 output.jpg