FFmpeg Per-file main options

  1. -f fmt

强制设置输入或输出文件的格式;对于输入文件来说,格式是自动检测的;输出文件则是根据文件后缀推测格式的;因此该选项多数情况下是不需要的。

-c[:stream_specifier] codec (input/output,per-stream)

-codec[:stream_specifier] codec (input/output,per-stream)

选择一个编码器(在输出文件之前使用)或解码器(在输入文件之前使用),用于一个或多个流。codec 是解码器/编码器的名称,或者是一个特殊值 copy(仅用于输出),表示该流不会被重新编码。该选项与-codec codec功能相同。

stream_specifier:有两种表示方式,c:v表示视频流,c:a表示音频流。

示例:

ffmpeg -i in.mp4 -c:v libx264 -c:a copy out.mp4

所有的视频使用libx264进行编码,并复制音频。

-c:v libx264表示输出流中的视频用libx264进行编码

-c:a copy 表示复制输入流中的音频到输出流

  1. -t duration (input/output)

当作为输入选项(在-i 之前使用)时,限制从输入文件读取数据的持续时间。当作为输出选项(在输出 URL 之前使用)时,在输出持续时间达到指定的时间后停止写入输出。duration 必须是一个时间持续期的规范。-to 和 -t 选项是互斥的,且 -t 选项更优先。

示例:

ffmpeg -t 10 -i 1.mp4 cut.mp4

截取1.mp4中前10秒的视频

  1. -to position (input/output)

在指定位置停止写入或读取。position 表示时长。-to 和 -t 选项是互斥的,且 -t 选项更优先。

ffmpeg -to 02:00 -i video.mp4 -c copy cut.mp4

ffmpeg -i video.mp4 -to 02:00 -c copy cut.mp4

上面两条命令均表示,截取从开始到2分钟的视频

  1. -ss position (input/output)

当作为输入选项(在 -i 之前使用)时,在输入文件中寻找到指定的位置。请注意,在大多数格式中,无法精确寻找到指定的位置,因此 ffmpeg 将寻找到位置之前的最近寻址点。在转码时,如果启用了 -accurate_seek(默认情况下启用),那么从寻址点到指定位置之间的额外片段将被解码并丢弃。当进行流复制或使用 -noaccurate_seek 时,这段额外的片段将被保留。

当作为输出选项(在输出 URL 之前使用)时,将解码输入但直到时间戳达到指定位置之前的数据将被丢弃。position 表示时长。

ffmpeg -ss 02:00 -i video.mp4 -c copy cut.mp4

表示截取从2分钟处到结束的视频,-c copy表示不进行重新编码,直接进行复制。

  1. -sseof position (input)

类似于 -ss 选项,但是相对于文件的"末尾"。也就是说,负值表示文件中的更早位置,0 表示文件的末尾。

ffmpeg -sseof -02:00 -i video.mp4 -c copy cut.mp4

截取视频最后2分钟的视频,-c copy表示不编码,直接复制。

  1. -frames[:stream_specifier] framecount (output,per-stream)

设置输出的帧数

ffmpeg -i video.mp4 -frames 90 -c copy cut.mp4

输出前90帧视频

  1. -filter[:stream_specifier] filtergraph (output,per-stream)

创建由 filtergraph 指定的滤镜图,并利用它对数据进行过滤。filtergraph 是对流应用滤镜图的描述,它必须有一个与流类型相同的单输入和单输出。在滤镜图中,输入与"in"标签关联,输出与"out"标签关联。关于滤镜图语法的更多详细信息,请参考 ffmpeg-filters 手册。

-filter:v 指定视频滤镜

-filter:a 指定音频滤镜

可以同时应用多个滤镜,用逗号分隔。例如:-filter:v "scale=640x480,transpose=1"

ffmpeg -i video.mp4 -filter:v "scale=640x480" cut.mp4

表示调整视频大小到 640x480

相关推荐
追随远方7 小时前
FFmpeg在Android开发中的核心价值是什么?
android·ffmpeg
视频砖家12 小时前
如何设置FFmpeg实现对高分辨率视频进行转码
ffmpeg·音视频·视频编解码·视频转码
yanjiee14 小时前
视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
ffmpeg·音视频
Sleepless_斑马14 小时前
【FFmpeg+SDL】使用FFmpeg捕获屏幕,SDL显示
ffmpeg
aningxiaoxixi17 小时前
FFMPEG 与 mp4
ffmpeg
慢一点会很快2 天前
【FFmpeg】介绍+安装+VisualStudio配置FFMpeg库
ide·ffmpeg·visual studio
邪恶的贝利亚3 天前
《ffplay 读线程与解码线程分析:从初始化到 seek 操作,对比视频与音频解码的差异》
ffmpeg·php·音视频
路溪非溪4 天前
关于ffmpeg的简介和使用总结
ffmpeg
gushansanren4 天前
基于WSL用MSVC编译ffmpeg7.1
windows·ffmpeg
追随远方6 天前
Android平台FFmpeg音视频开发深度指南
android·ffmpeg·音视频