基本知识
点击进入FFmpeg官网 ffmpeg 是一个通用的媒体转换器。它可以读取各种各样的 输入-包括实时抓取/记录设备-过滤并转码 转换成大量的输出格式。
- 基本指令格式
ffmpeg [全局配置] {[输入文件配置] -i input_url} ... {[输出文件配置] output_url} ...
煎蛋测试的一些案例
- 转码
# mp4 转 avi ffmpeg -i input.mp4 output.avi # mp4 转 avi,且输出文件的视频比特率设置为64 kbit/s ffmpeg -i input.mp4 -b:v 64k -bufsize 64k output.avi # mp4 转 m2v,且限制输出文件帧数为10帧 ffmpeg -i input.mp4 -r 10 output.m2v # 下面的指令需要输入文件有要求(valid for raw formats only),没搞懂什么意思 # m2v 转 mp4,且将输入文件的1帧转换为3帧 ffmpeg -r 1 -i output.m2v -r 3 output.mp4
- 剪辑视频
# 从输入视频的2:00开始剪辑一段时长1:30的视频,-y代表输出文件存在则覆盖 ffmpeg -y -ss 2:00 -i input.mp4 -to 1:30 output_short.mp4 # 同上,但是这里-fs限制了生成文件大小为4000000字节 ffmpeg -y -ss 2:00 -i input.mp4 -to 1:30 -fs 4000000 output_short.mp4
指令文档
ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... 下面是fffmpg的帮助信息
获得帮助:
-h -- 打印基本选项
-h long -- 打印更多选项
-h full -- 打印所有选项(包括所有格式和编解码器特定选项,非常长)
-h type=name -- 根据name打印所有选项:decoder/encoder/demuxer/muxer/filter/bsf/protocol(解码器/编码器/解复用器/复用器/滤波器/bsf/协议)
打印帮助/信息/功能:
-L show 证书信息
-h topic show 帮助信息
-? topic show 帮助信息
-help topic show 帮助信息
--help topic show 帮助信息
-version show 版本信息
-buildconf show 构建配置信息
-formats show 可用的格式
-muxers show 可用的多路复用器
-demuxers show 可用的解复用器
-devices show 可用的设备
-codecs show 可用编解码器
-decoders show 可用的解码器
-encoders show 可用的编码器
-bsfs show 可用的比特流过滤器
-protocols show 可用的协议
-filters show 可用的筛选器
-pix_fmts show 可用的像素格式
-layouts show 标准通道布局
-sample_fmts show 可用的音频样本格式
-colors show 可用的音频样本格式
-sources device list 输入设备的来源
-sinks device list 输出设备的汇点
-hwaccels show 可用的硬件加速方法
全局选项(影响整个程序,而不是仅影响一个文件):
-loglevel loglevel set 日志级别
-v loglevel set 日志级别
-report 生成报告
-max_alloc bytes set 设置单个已分配块的最大大小
-y 覆盖输出文件
-n 从不覆盖输出文件
-ignore_unknown 忽略未知流类型
-filter_threads number 非复杂筛选器线程数
-filter_complex_threads number -filter_complex的线程数
-stats 编码期间打印进度报告
-max_error_rate maximum 解码错误的最大错误率比率(0.0:无错误,1.0:100%错误),超过该比率,ffmpeg将返回错误而不是成功。
-bits_per_raw_sample number set 每个原始样本的位数
-vol volume 更改音频音量(256=normal)
每个文件的主选项:
-f fmt 强制格式
-c codec 编解码器名称
-codec codec 编解码器名称
-pre preset 预置名
-map_metadata outfile[,metadata]:infile[,metadata] 从infile设置outfile的元数据信息
-t duration 录制或转码audio/video的“duration”秒数
-to time_stop 记录或转码停止时间
-fs limit_size 设置限制文件大小(以字节为单位)
-ss time_off 设置开始时间偏移
-sseof time_off 设置相对于EOF的开始时间偏移
-seek_timestamp enable/disable使用-ss按时间戳查找
-timestamp time 设置录制时间戳('now'可设置当前时间)
-metadata string=string 添加元数据
-program title=string:st=number... 添加具有指定流的程序
-target type 指定目标文件类型(带有可选前缀“pal-”、“ntsc-”或“film-”的“vcd”、“svcd”、”dvd“、”dv“或”dv50“)
-apad 音频垫
-frames number 设置要输出的帧数
-filter filter_graph 设置流过滤器图
-filter_script filename 从文件中读取流筛选器图描述
-reinit_filter 输入参数变化的reinit滤波器图
-discard 丢弃
-disposition 处置
视频选项:
-vframes number 设置要输出的视频帧数
-r rate 设置帧速率(Hz值、分数或缩写)
-fpsmax rate 设置最大帧速率(Hz值、分数或缩写)
-s size 设置帧大小(WxH或缩写)设置帧大小
-aspect aspect 设置纵横比(4:3、16:9或1.3333、1.7777)
-bits_per_raw_sample number 设置每个原始样本的位数
-vn 禁用视频
-vcodec codec 强制视频编解码器('copy' to copy stream)
-timecode hh:mm:ss[:;.]ff 设置初始TimeCode值。
-pass n 选择通道编号(1到3)
-vf filter_graph 设置视频过滤器
-ab bitrate 音频比特率(请使用 -b:a)
-b bitrate 视频比特率(请使用 -b:v)
-dn 禁用数据
音频选项:
-aframes number 设置要输出的音频帧数
-aq quality 设置音频质量(特定于编解码器)
-ar rate 设置音频采样率(Hz)
-ac channels 设置音频通道数
-an 禁用音频
-acodec codec 强制音频编解码器('copy' to copy stream)
-vol volume 更改音频音量(256=normal)
-af filter_graph 设置音频过滤器
字幕选项:
-s size 设置帧大小(WxH或缩写)
-sn 禁用字幕
-scodec codec 强制字幕编解码器('copy' to copy stream)
-stag fourcc/tag 强制字幕 tag/fourcc
-fix_sub_duration 固定字幕持续时间
-canvas_size size 设置画布大小(WxH或简写)
-spre preset 将字幕选项设置为指示的预设
评论区