ffmpeg 中 aresample filter 和 scale filter 的创建

Posted chinabinlang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg 中 aresample filter 和 scale filter 的创建相关的知识,希望对你有一定的参考价值。

ffmpeg 中 ,filter 的创建一般需要外部函数创建,可以参考 filter_audio.c sample;

一般 命令行 中,ffmpeg 和 ffplay 也会有相关的 filter 自动创建;

ffmpeg  中 filter 的概念 和  directshow 中的比较接近;

一般 通过 avfilter_graph 添加管理 当前 filter 链路;

这里需要说明的有两个特别的 filter 会在 ffmpeg 内部自动创建;

ffmpeg\\libavfilter\\avfiltergraph.c

static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)

                case AVMEDIA_TYPE_VIDEO:

                    if (!(filter = avfilter_get_by_name("scale"))) //创建 scale filter;

                case AVMEDIA_TYPE_AUDIO:

                    if (!(filter = avfilter_get_by_name("aresample"))) // 创建  aresample filter

 说明:

typedef struct AVFilterGraph 

AVFilterContext **filters; //当前 AVFilterGraph  中的 filter 指针数组;

char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions

......

《关于 ffmpeg 中添加 c 文件 》

直接当相关目录的 Makefile 文件中,添加 c_filenam.o;

别的文件调用直接 extern function;

以上是关于ffmpeg 中 aresample filter 和 scale filter 的创建的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg文档29-放缩选项

ffmpeg文档28-重采样选项

关于FFmpeg filter使用代码

给FFmpeg添加有源码的视频filter

给FFmpeg添加有源码的视频filter

ffmpeg所支持的filter都有哪些