Skip to content

Instantly share code, notes, and snippets.

@suchasplus
Created January 21, 2022 06:40
Show Gist options
  • Save suchasplus/b7ca9a815f5465e06dff0b139de34949 to your computer and use it in GitHub Desktop.
Save suchasplus/b7ca9a815f5465e06dff0b139de34949 to your computer and use it in GitHub Desktop.
macos install ffmpeg and video convert example
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg
brew options homebrew-ffmpeg/ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-<option1> --with-<option2> ...
#video eg: https://4ksamples.com/puppies-bath-in-4k/
#20s抽一帧
ffmpeg -i PUPPIES_BATH_IN_4K_Original_H.264_AAC.mp4 -f image2 -vf fps=fps=1/20 puppies_%d.png
#调整码率和尺寸,操作耗时在77.43秒左右,文件大小从400MB左右减少到15MB左右,分辨率从4K调整为1280*720,减轻手机等无线设备的带宽和流量压力。
ffmpeg -i PUPPIES_BATH_IN_4K_Original_H.264_AAC.mp4 -crf 32 -b 0.5M -minrate 0.5M -maxrate 1M -bufsize 1M -vf scale=1280:720 PUPPIES_BATH_IN_1280_720p.mp4
#将mpeg4制式转成webm格式,源音视频编码是不用写的,ffmepg可以自己读取(例如,这里的视频编码是h.264,音频编码是aac),
#写了之后反而会报Unknown decoder 'libx264'错误。可以指定目标编码,
#若不指定,ffmepg会根据输出文件名后缀采用合适的音视频编码,
#例如,这里的输出文件名后缀是.webm, 则制式采用webm格式,视频编码用vp9,音频编码用opus。
#vp9还真挺厉害,在h.264基础上,又压缩掉了70%(400MB->107MB)
ffmpeg -i PUPPIES_BATH_IN_4K_Original_H.264_AAC.mp4 PUPPIES_BATH_IN_4K_Original_H.264_AAC.webm
#将mpeg4制式转成webm制式,原音视频编码仍然从输入文件获取,这次明确指定目标视频编码为vp8,
#目标音频编码没有明确指定,ffmpeg根据输出文件后缀.webm默认采用opus音频编码。
#vp8在h.264基础上,又压缩掉了20%左右(15.1MB->12.1MB),操作耗时在599.15秒左右。
ffmpeg -i PUPPIES_BATH_IN_1280_720p.mp4 -vcodec vp8 -crf 32 -b 0.5M -minrate 0.5M -maxrate 1M -bufsize 1M PUPPIES_BATH_IN_1280_720p.webm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment