基本知识
ffmpeg 模块简介
模块 |
说明 |
libavcodec |
提供了一系列编码器的实现 |
libavformat |
实现在流协议,容器格式及其IO访问 |
libavutil |
包括了hash器,解码器和各种工具函数 |
libavfilter |
提供各种音视频过滤器 |
libavdevice |
提供了访问捕获设备和回访设备的接口 |
libswresample |
实现了混音和重采样 |
libswscale |
实现了色彩转换和缩放功能 |
命令语法
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
在没有特定输出文件的任何映射选项的情况下,ffmpeg将检查输出格式,以检查可以在其中包含哪种类型的流。视频,音频和/或字幕。对于每种可接受的流类型,ffmpeg将从所有输入中选择一个流。
数据或附件流不会自动选择,需要通过-map 手动选择,2:3是指第三个输入文件中的第四个流
参数说明
参数 |
说明 |
-f fmt (输入/输出) |
强制输入或输出文件格。通常激动检测输入文件,并从输出文件的扩展名中猜测出来,所有大多数情况不需要该参数 |
-i url (输入) |
输入文件的网址 |
-y (全局参数) |
覆盖输出文件而不询问 |
-n (全局参数) |
不要覆盖输出文件,如果指定输出文件已经存在,请立即退出 |
-c[:stream_specifier] codec (输入/输出,每一个流) |
选择一个编码器当输出文件之前使用或解码器(当在输入文件之前使用)用于一个或多个流。codec 是解码器/编码器的名称或copy(仅输出)以指示该流不被重新编码。如:ffmpeg -i input -map 0 -c:v libx264 -c :a copy output |
-codec [: stream_specifier]编解码器(输入/输出,每个流) |
同 -c |
-t duration (输入/输出) |
当用作输入选项时,限制从输入文件读取的数据持续时间。当作用在输出是,在持续时间到达时停止输出 |
-ss 位置(输入/输出) |
当作用输入选项是,在输入文件寻找位置,有一定误差。当用作输出选项是,解码但丢弃输入,指导时间戳到达位置 |
-frames[:stream_specifier] framecount (output,per-stream) |
停止在帧之后写入流 |
-filter[:stream_specifier] filtergraph (output,per-stream) |
创建由filtergraph指定的过滤器图,并使用它来过滤流。filtergraph是应用于流的filtergraph的描述,并且必须具有相同类型的流的打个出入和单个输出。在过滤器图形中,输入与标签中的标签相关联,标签中的输出与标签相关联。有关filtergraph语法的更多信息,请参阅ffmpeg-filters手册 |
mov效果使用
ffmpeg -loop 1 -i "tu\mov\2019-11-18 215407.jpg" -i "tu\mov\LeaksN FlaresTrans_003.mov" -filter_complex "[1:v]chromakey=0x70de77:0.01:1.0[ckout];[0:v][ckout]overlay,lutyuv=y=val*1.2[out]" -map "[out]" -t 10 -y tu\mov\out-chromakey.mp4