FFmpeg 把视频转换为 WebM
想把宝贝儿子的视频放在这个网站,但 MP4 文件实在是太大了,既占用存储空间又耗费带宽,所以就转换成专注于网络视频的 WebM 格式,在保持高质量的同时显著缩小文件体积。
使用 FFmpeg 把源视频转换成 WebM 格式
$ ./convert-to-webm.sh input.mp4
#!/bin/bash
# 采用 2-Pass Constant Quality 模式
# 根据视频帧高度调整 `-crf 32` 参数值
ffmpeg -i $1 -c:v libvpx-vp9 -b:v 0 -crf 32 -pass 1 -an -f null /dev/null && \
ffmpeg -i $1 -c:v libvpx-vp9 -b:v 0 -crf 32 -pass 2 -c:a libopus ${1%.*}.webm
First-visit-to-the-Zoo-1080x1080.webm
Playing-in-the-Snow-720x1280.webm
FFmpeg 取“帧”操
$ ffmpeg -ss 00:00:21.5 -i input.webm -frames:v 1 output.webp
$ ffmpeg -i input.webm -vf select='eq(pict_type\,I)' -vsync 0 -q:v 2 output-%03d.jpg
$ ffmpeg -i input.webm -vf select='between(t\,10\,20)*eq(pict_type\,I)' -vsync 0 -q:v 2 output-%03d.jpg
# "-vf" = "-filter:v"
# "-vsync 0" = "-vsync passthrough"
# "-vsync 2" = "-vsync vfr"
# "-q:v 2" = "-qscale:v 2"
References:
看看别滴