FFmpeg 速查表

FFmpeg 速查表

October 13, 2020
速查表
★ 在 GitHub 赞我

FFmpeg 是一个音视频全方位的处理工具。


常用选项:

-i # 指定输入文件
-y # 覆盖同名的输出文件
-protocol_whitelist file,http,https,tcp,tls # 指定允许访问的协议
-loglevel panic # 日志过滤, panic/error/info
-stats # 展示统计数据

-codec copy # 保持原编码
-vcodec copy # 保持原视频编码
-vcodec libx264 # 指定视频编码
-acodec copy # 保持原音频编码
-acodec libfaac # 指定音频编码

-max_muxing_queue_size 1024 # 解决报错: `Too many packets buffered for output stream 0:1`

通用过滤器:

  • scale
  • overlay
  • crop
  • trim
  • rotate

flv 转换为 mp4:

ffmpeg -i input.flv -y -codec copy output.mp4

修改比率(bitrate), 帧率(frame rate), 分辨率:

ffmpeg -i input.mp4 -b 4000k -r 30 –s 1280*720 -y output.mp4

剪切视频:

ffmpeg -ss 00:07:00 -i input.mp4 -to 00:08:00 -c copy output.mp4
# Read more: https://trac.ffmpeg.org/wiki/Seeking

加图像水印:

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 # 右上角
# overlay=0:H-h # 左下角
# overlay=W-w:H-h # 右下角

延迟音频/视频的播放:

# 使视频延迟
ffmpeg.exe -i "input.mp4" -itsoffset 1.5 -i "input.mp4" -map 1:v -map 0:a -c copy "make-video-delayed.mp4"

# 使音频延迟
ffmpeg -i "input.mp4" -itsoffset 1.5 -i "input.mp4" -map 0:v -map 1:a -c copy "make-audio-delayed.mp4"

在 MacOS 安装 gl-transitions:

brew install glew glfw
brew install yasm
git clone http://source.ffmpeg.org/git/ffmpeg.git
git clone [email protected]:gl-transitions/gl-transitions.git
git clone [email protected]:transitive-bullshit/ffmpeg-gl-transition.git
cd ffmpeg
cp ../ffmpeg-gl-transition/vf_gltransition.c libavfilter/
git apply ../ffmpeg-gl-transition/ffmpeg.diff

./configure --enable-libx264 --enable-gpl --enable-opengl \
            --enable-filter=gltransition --extra-libs='-lGLEW -lglfw'
make

# 检查 gltransition 是否安装成功
./ffmpeg -v 0 -filters | grep gltransition

获取视频长度:

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4