# 基本用法 ffmpeg [option] # 查看信息 ffmpeg [预处理属性] -i [编码属性] # 输入文件处理 ( 位置并不一定要固定,预处理属性也可以放到编码属性位置 ) # 预处理属性 -threads 2 # 多线程 2 线程 -ss HH:MM:SS # 设置开始读取时间 -to HH:MM:SS # 设置结束读取时间 -t N 或者 HH:MM:SS # 读取 N 秒数据 -stream_loop -1 # 无限循环读取视频 -y # 原文件输出 -re # 按帧率秒读取 # 编码属性 -hide_banner # 简单消息输出 -qscale 0 # 保留原始质量 -ac [] # 音频声道数,有时候网页视频解不出来说明声道不对 -vcodec [] -acodec [] # 编码器 -ab []k -vb []k# 码率 -crf N # 恒定质量因子 N 越小码率越高 常见范围 20-30 -an -vn # 关闭音频视频编码 -ar # 音频采样率 -r N # 帧率 -framerate N # 帧率 -f [mp3,hls,flv,image2(取图片)...] # 输出格式 -%0003d # 输出文件名展位符号 同 c 语言占位符 -s NxN # 视频尺寸 -aspect N:N # 视频长宽比 -strict -2 # 严格模式 -vbsf h264_mp4toannexb # 设置 h264 编码类型为 annexb -bsf hevc_mp4toannexb # 265 annexb -map 0:0 # 设置容器中留顺序 可有多个 map 如: -map 0:0, -map 0:1 -map 0:2 (将原理流0放到第1位,流1放到第2流,流3放到第3位,不要流4) # 编码器可通过知道流来设置编码 如:-c:v:2 libx264 将三路流视频流编码为h264 # 第一个数为输入文件索引,第二个数为输入文件中流索引,多个 map 顺序为输出文件顺序,后面紧跟输出文件(不能识别为命令的都为输出文件) # 复杂代码 # 音频添加封面 ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4 # 视频添加字幕 ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4 # 拼接资源 ( join.txt 为文件列表 ) ffmpeg -f concat -i join.txt output.mp4 # 录屏 ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4