官方文档:ffmpeg Documentation
常规选项
-i input_url
输入文件或者输入流的路径
Main 选项
-f fmt (input/output)
强制指定输入或输出文件的格式, 常见的格式名称包括flv,mp4、hls、mpegts、avi、mov
-c[:stream_specifier] codec (input/output,per-stream)
-codec[:stream_specifier] codec (input/output,per-stream)
选择一个编码器,-c copy 表示不会对音视频进行重新编码
video选项
audio选项
高级选项
-readrate speed (input)
限制输入媒体文件的读取速率, 值为浮点正数
-re (input)
按原始帧率读取输入媒体文件, 原始帧率是指的是媒体文件(如视频或音频)本身固有的帧率。等同于 -readrate 1
-map [-]input_file_id[:stream_specifier][?] | [linklabel] (output)
在FFmpeg中,map参数用于指定输入流和输出流之间的映射关系。通过map参数,我们可以选择从输入源中的哪些音视频流进行拷贝或处理,以及这些流在输出中的顺序。
如果我们不指定map参数,FFmpeg会默认从输入源中选择一个最高质量的视频流和一个最高质量的音频流进行输出。这意味着,如果输入源中有多个视频流或音频流,FFmpeg会自动选择质量最高的流进行处理,而其他流则会被忽略。
在选择视频流时,map参数通常会选择分辨率最高的流
在选择音频流时,map参数则会选择通道数最多的流。
对于字幕流的选择,map参数通常会选择第一个被检索到的字幕流。如果有两个视频文件都包含字幕,那么map参数将选择第一个文件中的第一个字幕流进行输出。
-map 0 : 输出第一个输入文件的所有流
-map 0:0 :第一个输入文件的第一个流
HLS
hls_time duratio
设置目标切片的长度,默认为2s
hls_list_size size
设置m3u8中缓存的ts片个数,默认值为5.如果设置为0,那么m3u8中包含所有的ts切片