ffmpeg

Table of Contents

1. 常用命令

视频反转 `ffmpeg -i input.mp4 -vf reverse output.mp4`

视频速度翻倍 `ffmpeg -i 2.mp4 -vf "setpts=0.5*PTS" 2.2.mp4`

视频区域选择 `ffmpeg -i input.mp4 -vf "crop=720:720:280:0" -map 0:0 -ss 427 -to 432 output.mp4`

视频去除logo `ffmpeg -i 5.mp4 -vf "delogo=x=660:y=30:w=180:h=60" -map 0:0 5.2.mp4`

视频加黑边 ffmpeg -i 5.2.mp4 -vf "pad=852:852:0:186:black" 5.3.mp4

多个视频合并. 可以使用 这个脚本. 最好确保几个视频尺寸相同.

截取视频的第一帧 ffmpeg -i input.mp4 -vframes 1 output.png

抽取独立帧 ffmpeg -i $1 -vf "select=eq(pict_type\,I)" -vsync vfr -qscale:v 2 thumbnails-%02d.jpg

抽取关键帧 ffmpeg -i $1 -q:v 2 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 0 frame%03d.jpg

抽取thumnail ffmpeg -i ed437d48b88f1def8b58e7e97c.mp4 -vf "thumbnail" -frames:v 1 -y thumb.png # 这个效果可能会比抽取第一帧的效果好.

抽取视频音轨 ffmpeg -i video.mp4 -acodec copy audio.mp3 # 不做任何转码,速度很快

放大音量 ffmpeg -i video.mp4 -af "volume=10" audio.mp3 Audio Volume Manipulation

2. 视频转GIF

普通质量 `ffmpeg -i output.mp4 -map 0:0 -vf reverse,fps=6 -s 300*300 output.gif`

高质量. 体积大 `ffmpeg -i output.mp4 -map 0:0 -vf reverse -r 5 -s 400*400 -f image2pipe -vcodec ppm - | convert -delay 16 -loop 1 - gif:- | convert - output.gif`

较高质量,体积较大

#!/bin/sh

palette="/tmp/palette.png"

filters="fps=4,scale=flags=lanczos"

ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -filter_complex "$filters [x]; [x][1:v] paletteuse" -y $2

gifsicle可以用来继续优化gif文件,然后 gifsicle-lossy 还可以继续压缩gif文件 `gifsicle-lossy -O3 –lossy=80 input.gif -o output.gif`