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 的创建的主要内容,如果未能解决你的问题,请参考以下文章