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

相关推荐
xmRao3 小时前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
xmRao3 小时前
Qt+FFmpeg 实现录音程序(pcm转wav)
qt·ffmpeg
阿里巴啦1 天前
python+yt-dlp开源项目,支持 YouTube, Bilibili, TikTok/抖音,快手 等多个平台的视频/音频/字幕下载/ai摘要等功能
python·ffmpeg·whisper·音视频·视频处理·ai摘要·音视频转录
来鸟 鸣间2 天前
linux下ffmpeg源码编译
linux·运维·ffmpeg
Echo_NGC22372 天前
【FFmpeg使用指南】Part 2:滤镜图架构与信号处理
架构·ffmpeg·音视频·信号处理
Echo_NGC22372 天前
【FFmpeg使用指南】Part 1:核心架构与媒体流处理
ffmpeg·音视频·媒体·视频
ssxueyi2 天前
用 Claude Code 从零开发自己的Direct3D 硬件加速播放器
ffmpeg·ai编程·directx·视频播放器·从零开始·claude code·csdn征文活动
Yan_uuu2 天前
ubuntu18.04 安装 x264、ffmpeg、nv-codec-hearers 支持GPU硬件加速
c++·图像处理·ubuntu·ffmpeg
runner365.git3 天前
做一个基于ffmpeg的AI Agent智能体
人工智能·ffmpeg·大模型
彷徨而立3 天前
【FFmpeg】理解 av_packet_from_data 和 av_packet_unref 接口
ffmpeg