FFmpeg命令集合

1、信息查询

命令

含义

-L

显示许可证

-h topic

显示帮助

-? topic

显示帮助

help topic

显示帮助

--help topic

显示帮助

-version

显示版本

-buildconf

显示生成配置

-formats

显示有效的格式

-muxers

显示有效的复用器

-demuxers

显示有用的解复用器

-devices

显示有效的音视频输入输出设备

-codecs

显示可用的编解码器

-decoders

显示可用的解码器

-encoders

显示可用的编码器

-bsfs

显示可用的位流筛选器

-protocols

显示支持的协议

-filters

显示可用的筛选器

-pix_fmts

显示可用的像素格式

-layouts

显示标准通道布局

-sample_fmts

显示可用的音频样本格式

-dispositions

显示可用的流布置

-colors  

显示可用的颜色名称

-sources device

列出输入设备的源

-sinks device

列出输出设备的接收器

-hwaccels

显示可用的硬件加速方法

2、公共操作命令

2.1 常规公共操作命令

-loglevel loglevel

设置日志等级

-v loglevel

设置日志等级

-report

生成一个报告i

-max_alloc bytes

设置一个块的最大值

-y

允许输出文件覆盖其他文件

-n

不允许输出文件覆盖

-ignore_unknown

忽略未知流类型

-filter_threads

非复杂筛选器线程数

-filter_complex_threads

-filter_complex的线程数

-stats

编码期间打印进度报告

-max_error_rate maximum error rate

解码错误的比率(0.0:无错误,1.0:100%错误),超过该比率,ffmpeg将返回错误而不是成功。

-vol volume

修改音量大小

2.1 高级公共命令

-cpuflags flags

强制特定的cpu标志

-cpucount count

强制特定cpu计数

-hide_banner hide_banner

不显示节目横幅

-copy_unknown

复制未知流类型

-recast_media

允许重铸流类型,以便强制使用不同媒体类型的解码器

-benchmark

添加基准测试的时间

-benchmark_all

添加每个任务的时间

-progress url

编写程序可读的进度信息

-stdin

启用或禁用标准输入的交互

-timelimit limit

set max runtime in seconds in CPU user time

-dump

转储每个输入数据包

-hex

转储数据包时,还要转储有效负载

-frame_drop_threshold

帧下降阈值

-async

音频同步方法

-adrift_threshold threshold

音频漂移阈值

-copyts  

复制时间戳

-start_at_zero

使用副本时,将输入时间戳移位为从0开始

-copytb mode

复制流时复制输入流时基

-dts_delta_threshold threshold

时间戳不连续性增量阈值

-dts_error_threshold threshold

时间戳错误增量阈值

-xerror erro

出错时退出

-abort_on flags

在指定的条件标志上中止

-filter_complex graph_description

创建复杂的筛选器图

-lavfi graph_description

创建复杂的筛选器图

-filter_complex_script filename

从文件中读取复杂的筛选器图描述

-auto_conversion_filters

全局启用自动转换筛选器

-stats_period time

设置ffmpeg更新统计数据和进度输出的时间段

-debug_ts

打印时间戳调试信息

-psnr

计算压缩帧的PSNR

-vstats

将视频编码统计信息转储到文件

-vstats_file file

将视频编码统计信息转储到文件

-vstats_version

要使用的vstats格式的版本。

-qphist

显示QP直方图

-sdp_file file

指定要在其中打印sdp信息的文件

-qsv_device device

set QSV hardware device (DirectX adapter index, DRM path or X11 display name)

-init_hw_device args

初始化硬件设备

-filter_hw_device device

设置筛选时使用的硬件设备

3、文件操作命令

3.1 常规文件操作命令

-f fmt

强制格式

ffmpeg -i 输入文件名  -s 300x800 -f flv -y 输出文件名

-c codec

编解码器名称

-codec codec

编解码器名称

-pre preset

预设名称

-map_metadata outfile[,metadata]:infile[,metadata]

设置输出文件的元数据信息

-t duration

录制或转码音频/视频的“持续时间”秒数

to time_stop

记录或转码停止时间

-fs limit_size

设置限制文件大小(以字节为单位)

-ss time_off

设置开始时间偏移

ffmpeg -i 输入文件名 -ss 10  输出文件名

-sseof time_off

设置相对于EOF的开始时间偏移

-seek_timestamp

enable/disable seeking by timestamp with -ss

-timestamp time

设置录制时间戳('now'可设置当前时间)

-metadata string=string

添加元数据

-program title=string:st=number...

添加具有指定流的程序

-target type

指定目标文件类型(带有可选前缀“pal-”、“ntsc-”或“film-”的“vcd”、“svcd”、”dvd“、”dv“或”dv50“)

-apad

音频垫

-frames number

设置要输出的帧数

-filter filter_graph

设置流的过滤图

-filter_script filename

从一个文件中读取流的筛选器信息

-reinit_filter

输入参数变化的reinit滤波器图

-discard

丢弃

-disposition

3.2 高级文件操作命令

-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]]

设置输入流映射

-map_channel file.stream.channel[:syncfile.syncstream]

将音频通道从一个流映射到另一个流

-map_chapters input_file_index

设置章节映射

-accurate_seek

使用-ss启用/禁用精确搜索

-isync sync ref

指示同步引用的输入索引

-itsoffset time_off

设置输入ts偏移

-itsscale scale

设置输入ts刻度

-dframes number

设置要输出的数据帧数

-re

以本机帧速率读取输入;相当于-读取速率1

-readrate speed

以指定速率读取输入

-shortest

 finish encoding within shortest input

-bitexact

位精确模式

-copyinkf

复制初始非关键帧

-copypriorss

在开始时间之前复制或丢弃帧

-tag fourcc/tag

强制编解码器标签/forcc

-q q

使用固定质量量表

-qscale q  

使用固定质量量表

-profile profile

设置配置文件

-attach filename

向输出文件添加附件

-dump_attachment filename

将附件提取到文件中

-stream_loop loop count

设置输入流循环的次数

-thread_queue_size

设置来自解复用器的排队数据包的最大数量

-find_stream_info

读取并解码流以用启发式方法填充缺失的信息

-bits_per_raw_sample number

设置每个原始样本的位数

-autorotate

自动插入正确的旋转过滤器

-autoscale

在过滤器图形的末尾自动插入缩放过滤器

-muxdelay seconds

设置最大解复用解码延迟

-muxpreload seconds

设置初始解复用解码延迟

-time_base ratio

为输出流设置所需的时基提示(1:24、1:48000或0.04166、2.0833e-5)

-enc_time_base ratio

为编码器设置所需的时基(1:24、1:48000或0.04166、2.0833e-5)。定义了两个特殊值-0=使用帧速率(视频)或采样率(音频),-1=匹配源时基

-enc_time_base ratio

set the desired time base for the encoder (1:24, 1:48000 or 0.04166, 2.0833e-5). two special values are defined - 0 = use frame rate (video) or sample rate (audio),-1 = match source time base

-bsf bitstream_filters

以逗号分隔的比特流筛选器列表

-fpre filename

从指定的预设文件中设置选项

-max_muxing_queue_size packets

等待所有流初始化时可以缓冲的最大数据包数

-muxing_queue_data_threshold bytes

设置阈值,在此阈值之后考虑max_muxing_queue_size

-dcodec codec

强制数据编解码器(“复制”到复制流)

4、视频操作命令

4.1 常规视频操作命令

-vframes number

设置要输出的视频帧数

-r rate

设置帧速率(Hz值、分数或缩写)

ffmpeg -i 输入文件夹名  -fs 大小 -f 25 -y 输出文件名

-fpsmax rate

设置最大帧速率(Hz值、分数或缩写)

-s size

设置框架尺寸(WxH或缩写)

ffmpeg -i 输入文件名  -s 300x800  -y 输出文件名

-aspect aspect

设置纵横比(4:3、16:9或1.3333、1.7777)

ffmpeg -i C:\Users\admin\Desktop\123.mp4  -aspect 6:9  -y C:\Users\admin\Desktop\789.avi

-vn

不要视频

-vcodec codec

设置视频编解码器(拷贝或流拷贝的时候)

-时间代码hh:mm:ss[:;.]ff

设置初始TimeCode值。

-pass n

选择通道编号(1到3)

-vf filter_graph

设置视频筛选器

-ab bitrate  

音频比特率(请使用-b:a)

-b bitrate

video bitrate (please use -b:v)

-dn

禁用数据

4.2 高级视频操作命令

-pix_fmt format

设置像素格式

-rc_override override

特定间隔的速率控制超控

-passlogfile prefix

选择两次通过的日志文件名前缀

-psnr

计算压缩帧的PSNR

-vstats

将视频编码统计信息转储到文件

-vstats_file file

将视频编码统计信息转储到文件

-vstats_version

要使用的vstats格式的版本。

-intra_matrix matrix

指定矩阵内系数

-chroma_intra_matrix matrix

指定矩阵内系数

-top

top=1/bottom=0/auto=-1 field first

-vtag fourcc/tag

强制视频标签/forcc

-qphist

显示QP直方图

-fps_mode

设置用于匹配视频流的帧速率模式;覆盖vsync

-force_fps

强制选定的帧速率,禁用支持的最佳帧速率选择

-streamid streamIndex:value

设置出文件流id的值

-force_key_frames timestamps

在指定的时间戳强制关键帧

-hwaccel hwaccel name

使用硬件加速解码

-hwaccel_device devicename

选择硬件加速设备

-hwaccel_output_format format

选择用于硬件加速解码的输出格式

-vbsf video bitstream_filters

对…表示极不赞成

-vpre preset

将视频选项设置为指示的预设

5、音频操作命令

5.1 常规音频操作命令

-aframes number

设置要输出的音频帧数

-aq quality

设置音频质量(特定于编解码器)

-ar rate

设置音频采样率(Hz)

-ac channels

设置音频通道数

-an

禁用音频

-acodec codec

强制音频编解码器(“复制”到复制流)

-vol volume

更改音频音量(256=正常)

-af filter_graph

设置音频过滤器

5.2 高级音频操作命令

-atag fourcc/tag

强制音频标签/forcc

-sample_fmt format

设置样本格式

-channel_layout layout

设置通道布局

-ch_layout layout

设置通道布局

-guess_layout_max

设置尝试猜测频道布局的最大频道数

-absf audio bitstream_filters

对…表示极不赞成

-apre preset

将音频选项设置为指示的预设

6、字幕选项命令

-s size

设置框架尺寸(WxH或缩写)

-sn

禁用字幕

-scodec codec

强制字幕编解码器(“复制”到复制流)

-stag fourcc/tag

强制字幕tag/forcc

-fix_sub_duration

固定字幕持续时间

-canvas_size size

设置画布大小(WxH或缩写)

-spre preset

将字幕选项设置为指示的预设

  1. 命令例程

例子

解释

ffmpeg -formats

查询支持formats的格式

ffmpeg -h muxer=flv

查看flv封装器的参数支持

ffmpeg -h demuxer=flv

查看flv解封装器大的参数支持

ffmpeg -h encoder=h264

查看h264的编码支持

ffmpeg -h decoder=h264

查看h264的解码支持

Ffmpeg -h filter=colorkey

查看colorkey滤镜的参数支持

  1. 封装格式和编码格式的关系

封装格式

编码格式

AVI

Xvid、Divx、MP3

WMV

MP4

Xvid、H264

FLV

H264、Screen Video、Once VP6

RMVB

MKV

H264

3GP

ASF

TS

H264

HLS(M3U8)

H264

命令例程:

等待接收来自127.0.0.1:1234口的视频

ffmpeg -listen 1 -f flv -i tcp://127.0.0.1:1234/live/stream -c copy -f flv output.flv

发布视频于127.0.0.1:1234口的视频

ffmpeg -re -i C:\Users\admin\Desktop\ship\动画.flv -c copy -f flv tcp://127.0.0.1:1234/live/stream

你可能感兴趣的:(ffmpeg,ffmpeg)