欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

3、FFmpeg 过滤器

发布时间:2023/12/31 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 3、FFmpeg 过滤器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

FFmpeg 过滤器

在编码之前,FFmpeg 可以使用 libavfilter 库中的过滤器处理原始音频和视频帧。几个链式过滤器行程一个过滤图像。

FFmpeg中的filter包含三个层次,filter -> filterchain -> filtergraph。

在多媒体处理中,filter的意思是被编码到输出文件之前用来修改输入文件的内容到一个软件工具。如:视频翻转、旋转、缩放等。

1、filter

在简单过滤器中,只包含一个输入和一个输出,并且输入输出是同一类型。在下面的处理过程中,仅仅是在解码和编码之前加上了一个额外的过滤步骤。简单过滤器有 per-stream-filter 参数(视频为-vf, 音频为-af)配置。

(1)视频过滤器 -vf

# 如testsrc视频按顺时针方向旋转90度 ffplay -f lavfi -i testsrc -vf transpose=1# 如testsrc视频水平翻转(左右翻转) ffplay -f lavfi -i testsrc -vf hflip

(2)音频过滤器 -af

# 实现慢速播放,声音速度是原始速度的50% ffplay p629100.mp3 -af atempo=0.5

2、filterchain

filterchain 不是简单的将线性操作链应用于一个流(上面的简单过滤器便是如此)。例如,当图形有多个输入和/或输出,或者当输出流类型与输入不同时,就是这种情况。

基本用法:

Filterchain = 逗号分隔的一组filter“filter1,filter2,filter3,…filterN-2,filterN-1,filterN”

顺时针旋转90度并水平翻转:

ffplay -f lavfi -i testsrc -vf transpose=1,hflip

复杂的过滤器图使用-filter_complex选项进行配置。 请注意,此选项是全局性的,因为复杂的过滤器图形本质上不能与单个流或文件明确关联。-lavfi选项等同于-filter_complex。

3、filtergraph

基本语法:

Filtergraph = 分号分隔的一组filterchain 语法: “filterchain1;filterchain2;…filterchainN-1;filterchainN”

Filtergraph的分类:

  • 1、简单(simple)一对一
  • 2、负责(complex)多对一,多对多

一个复杂的过滤器图的一个简单的例子是覆盖过滤器,它有两个视频输入和一个视频输出,包含一个视频叠加在另一个上面。 它的音频对应是amix滤波器。

4、经典的 filter

(1)音频 filter

过滤器描述
adelay实现不同声道的延时处理。使用参数如adelay=1500|0|500,这个例子中实现了第一个声道的延迟 1.5
aecho实现回声效果
amerge将多个音频流合并成一个多声道音频流
ashowinfo显示每一个 audio frame 信息
pan特定声道处理,比如立体声变为单声道,或者通过特定参数修改声道或交换声道。主要有两大类:
混音处理,比如下面的例子pan=1c|c0=0.9*c0+0.1*c1,实现立体声到单声道的变换;
声道变换,比如5.1声道顺序调整,pan=“5.1 | c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5”
silencedetech 和 silenceremove根据特定参数检测静音和移除静音
volume 和 volumedetect这两个filter分别实现音量调整和音量检测

(2)视频 filter

参数描述
blend tblend将两帧视频合并为一帧
crop按照特定分辨率裁剪输入视频
drawbox drawgrid drawtext绘制 box(对话框) grid(表格) text(文本)
fps按照指定帧率输出视频帧(丢帧或复制)
hflip vflip水平和垂直镜像
overlay视频叠加
rotate视频任意角度旋转
showinfo显示视频的参数信息,比如时间戳,采样格式,帧类型等
subtitles使用 libass 库绘制 subtitle(字幕)
transpose图像转置
scale使用 libswscale 库完成视频缩放
thumbnail提取缩略图

(3)多媒体 filter

参数描述
ahistogram将音频转换为视频输出,并显示为音量的直方图
concat将音频流、视频流拼接成一个
metadata ametadata操作 metadata 信息
setpts asetpts改变输入音频帧或视频帧的 pts
showfreqs showspectrum showspertrumpic showvolume showwaves将输入音频转换为视频显示,并显示频谱、音量等信息
split asplit将输入切分为多个相同的输出
movie amovie
从 movie 容器中读取音频或视频

总结

以上是生活随笔为你收集整理的3、FFmpeg 过滤器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。