FFmpeg命令学习

前言

FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。

本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。

FFMPEG 目录及作用

· libavcodec: 提供了一系列编码器的实现。

· libavformat: 实现在流协议,容器格式及其本IO访问。

· libavutil: 包括了hash器,解码器和各利工具函数。

· libavfilter: 提供了各种音视频过滤器。

· libavdevice: 提供了访问捕获设备和回放设备的接口。

· libswresample: 实现了混音和重采样。

· libswscale: 实现了色彩转换和缩放工能。

FFMPEG基本概念

在讲解 FFMPEG 命令之前,我们先要介绍一些音视频格式的基要概念。

· 音/视频流

在音视频领域,我们把一路音/视频称为一路。如我们小时候经常使用VCD看港片,在里边可以选择粤语或国语声音,其实就是CD视频文件中存放了两路音频流,用户可以选择其中一路进行播放。

· 容器

我们一般把 MP4、 FLV、MOV等文件格式称之为容器。也就是在这些常用格式文件中,可以存放多路音视频文件。以 MP4 为例,就可以存放一路视频流,多路音频流,多路字幕流。

· channel

channel是音频中的概念,称之为声道。在一路音频流中,可以有单声道,双声道或立体声。

FFMPEG 命令

我们按使用目的可以将 FFMPEG 命令分成以下几类:

· 基本信息查询命令

· 录制

· 分解/复用

· 处理原始数据

· 滤镜

· 切割与合并

· 图/视互转

· 直播相关

除了 FFMPEG 的基本信息查询命令外,其它命令都按下图所示的流程处理音视频。

在这里插入图片描述

然后将编码的数据包传送给解码器(除非为数据流选择了流拷贝,请参阅进一步描述)。 解码器产生未压缩的帧(原始视频/ PCM音频/ …),可以通过滤波进一步处理(见下一节)。 在过滤之后,帧被传递到编码器,编码器并输出编码的数据包。 最后,这些传递给复用器,将编码的数据包写入输出文件。

默认情况下,ffmpeg只包含输入文件中每种类型(视频,音频,字幕)的一个流,并将其添加到每个输出文件中。 它根据以下标准挑选每一个的“最佳”:对于视频,它是具有最高分辨率的流,对于音频,它是具有最多channel的流,对于字幕,是第一个字幕流。 在相同类型的几个流相等的情况下,选择具有最低索引的流。

您可以通过使用-vn / -an / -sn / -dn选项来禁用某些默认设置。 要进行全面的手动控制,请使用-map选项,该选项禁用刚描述的默认设置。

下面我们就来详细介绍一下这些命令。

基本信息查询命令

FFMPEG 可以使用下面的参数进行基本信息查询。例如,想查询一下现在使用的 FFMPEG 都支持哪些 filter,就可以用 ffmpeg -filters 来查询。详细参数说明如下:

参数 说明
-version 显示版本。
-formats 显示可用的格式(包括设备)。
-demuxers 显示可用的demuxers。
-muxers 显示可用的muxers。
-devices 显示可用的设备。
-codecs 显示libavcodec已知的所有编解码器。
-decoders 显示可用的解码器。
-encoders 显示所有可用的编码器。
-bsfs 显示可用的比特流filter。
-protocols 显示可用的协议。
-filters 显示可用的libavfilter过滤器。
-pix_fmts 显示可用的像素格式。
-sample_fmts 显示可用的采样格式。
-layouts 显示channel名称和标准channel布局。
-colors 显示识别的颜色名称。

接下来介绍的是 FFMPEG 处理音视频时使用的命令格式与参数。

命令基本格式及参数

下面是 FFMPEG 的基本命令格式:

ffmpeg [global_options] {[input_file_options] -i input_url} …

​ {[output_file_options] output_url} …

ffmpeg 通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SS_zico

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值