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

相关推荐
kkoral1 天前
OpenCV 与 FFmpeg 的关系
opencv·ffmpeg
kkoral1 天前
如何在 Python 中使用 OpenCV 调用 FFmpeg 的特定功能?
python·opencv·ffmpeg
山栀shanzhi2 天前
【FFmpeg】音视频MP4封装格式转封装MOV
ffmpeg·音视频
山栀shanzhi2 天前
【FFmpeg】是什么是未压缩的裸流?
c++·ffmpeg
Maverick062 天前
02-SQL执行计划与优化器:Oracle是怎么决定“该怎么查“的
数据库·sql·oracle·ffmpeg
EasyDSS2 天前
RTMP高清推流直播/智能转码/无人机直播EasyDSS破局旅游慢直播痛点
ffmpeg·旅游·视频转码·fmp4·点播技术
EasyDSS3 天前
RTMP高清推流直播/视频转码EasyDSS在无人机RTMP直播场景中的应用技术解析
ffmpeg·音视频·无人机·视频转码·语音转写·点播技术
私人珍藏库3 天前
[Windows] FFmpeg 图形化:EasyFF v0.17
ffmpeg·媒体·工具·软件·win·多功能
EasyDSS3 天前
场景深耕:低延迟高并发EasyDSS无人机RTMP高清推流直播技术剖析
ffmpeg·webrtc·rtmp
小鹿软件办公3 天前
FFmpeg 8.1 正式发布:引入 Vulkan 计算加速,支持 DPX 与 ProRes
ffmpeg