Sandy经常下载下学习视频的文件都想要转换,mac很多软件是收费或者试用多少秒以后就不给转换了的。省的烦人,写个批量脚本搞定他
1.Ubntu OS下安装
第一步.安装 FFmpeg PPA
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
第二步.安装 FFmpeg
sudo apt-get update
sudo apt-get install ffmpeg
第三步.检查FFmpeg Version
ffmpeg version 4.2.1-0york0~18.04 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
第四步.FFmpeg 基本命令
ffmpeg -version: show version
ffmpeg -formats: show available formats
ffmpeg -codecs: show available codecs
ffmpeg -decoders: show available decoders
ffmpeg -encoders: show available encoders
ffmpeg -bsfs: show available bit stream filters
ffmpeg -protocols: show available protocols
ffmpeg -filters: show available filters
ffmpeg -pix_fmts: show available pixel formats
ffmpeg -layouts: show standard channel layouts
ffmpeg -sample_fmts: show available audio sample formats
第5步.测试命令
ffmpeg -i in.mov -c:v libx264 -c:a copy -crf 20 out.mov
ffmpeg -i in.mov -vcodec copy -acodec aac -strict experimental -ab 128k out.mp4
2. Mac OS下安装
brew install ffmpeg
3.转换脚本
第一步. 建立sh文件
vim flvtomp4.sh
第二步. 编辑flvtomp4.sh文件
#! /bin/bash
function convert_all_to_mp4(){
for file in *.flv ; do
local bname=`basename "$file" .flv`
local mp4name="$bname.mp4"
ffmpeg -i "$file" "$mp4name"
done
}
convert_all_to_mp4
将视频 MP4 转化为 GIF
ffmpeg -i small.mp4 small.gif
转化视频中的一部分为 GIF
ffmpeg -t 3 -ss 00:00:02 -i small.webm small-clip.gif
从视频中第二秒开始,截取时长为3秒的片段转化为 gif
转化高质量 GIF
默认转化是中等质量模式,若要转化出高质量的 gif,可以修改比特率
ffmpeg -i small.mp4 -b 2048k small.gif
视频属性调整
缩放视频尺寸
ffmpeg -i big.mov -vf scale=360:-1 small.mov
注意 sacle
值必须是偶数,这里的 -1
表示保持长宽比,根据宽度值自适应高度。
如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用 -2
加倍速播放视频
ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" output.mov
定义帧率 16fps:
ffmpeg -i input.mov -r 16 -filter:v "setpts=0.125*PTS" -an output.mov
慢倍速播放视频
ffmpeg -i input.mov -filter:v "setpts=2.0*PTS" output.mov
静音视频(移除视频中的音频)
ffmpeg -i input.mov -an mute-output.mov
-an
就是禁止音频输出
将 GIF 转化为 MP4
ffmpeg -f gif -i animation.gif animation.mp4
也可以将 gif 转为其他视频格式
ffmpeg -f gif -i animation.gif animation.mpeg
ffmpeg -f gif -i animation.gif animation.webm
获取 GIF 的第一帧图片
使用 ImageMagick 可以方便第提取 gif 图片的第 N 帧图像。
安装 ImageMagick
brew install imagemagick
提取第一帧
convert 'animation.gif[0]' animation-first-frame.gif
通过 [0]
就可以提取出 gif 的第一帧图像。
GIF 转出来的 MP4 播放不了?
有些 GIF 转化出来的 MP4 不能被 Mac QuickTime Player.app 播放,需要添加 pixel formal
参数
ffmpeg -i input.gif -vf scale=420:-2,format=yuv420p out.mp4
使用 yunv420p
需要保证长宽为偶数,这里同时使用了 scale=420:-2