视音频学习入门---ffmpeg篇(四)---基于windows平台的ffmpeg开发(二)

先给自己打个广告,本人的微信公众号:张笑生的地盘,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题。
在这里插入图片描述

一 what

在《视音频学习入门—ffmpeg篇(三)—基于windows平台的ffmpeg开发(一)》中,我们已经成功搭建了windows平台下visual studio的开发环境,本篇我们就开始使用ffmpeg头文件中提供的API接口来实现打印出ffmpeg的基本配置信息,这是我们入门ffmpeg的基础。
那么。ffmpeg的配置信息主要包含哪些呢?主要包含ffmpeg基础配置,ffmpeg类库支持的协议,ffmpeg类库支持的封装格式,ffmpeg类库支持的编解码器,ffmpeg类库支持的滤镜等等,本篇的示例程序就是实现这个目的

二 how

1.ffmpeg基础配置信息
通过调用avcodec_configuration这个API即可,它位于头文件“libavcodec/avcodec.h”中,所以我们需要include这个头文件,如下

#include "include/libavcodec/avcodec.h"

sprintf(info, "%s\n", avcodec_configuration());

2.ffmpeg类库支持的协议
通过调用avio_enum_protocols这个API即可,它位于头文件“libavcodec/avcodec.h”中,所以我们需要include这个头文件,如下

#include "include/libavcodec/avcodec.h"

avio_enum_protocols((void**)p_temp, 0);
while ((*p_temp) != NULL) {
    sprintf(info, "%s[Out][%10s]\n", info, avio_enum_protocols((void**)p_temp, 0));
}

3.ffmpeg类库支持的封装格式
通过调用av_iformat_next、av_oformat_next这个API即可,它位于头文件“libavformat/avformat.h”中,所以我们需要include这个头文件,如下

#include "include/libavformat/avformat.h"

if_temp = av_iformat_next(NULL);
of_temp = av_oformat_next(NULL);

while (if_temp != NULL) {
    sprintf(info, "%s[In ] %10s\n", info, if_temp->name);
    if_temp = if_temp->next;
}

4.ffmpeg类库支持的编解码器
通过调用av_codec_next这个API即可,它位于头文件“libavformat/avformat.h”中,所以我们需要include这个头文件,如下

#include "include/libavformat/avformat.h"

c_temp = av_codec_next(NULL);

5.FFmpeg类库支持的滤镜
通过调用av_codec_next这个API即可,它位于头文件“libavfilter/avfilter.h”中,所以我们需要include这个头文件,如下

#include "include/libavfilter/avfilter.h"

f_temp = (AVFilter*)avfilter_next(NULL);

while (f_temp != NULL) {
    sprintf(info, "%s [%15s]\n", info, f_temp->name);
    f_temp = f_temp->next;
}

项目程序框架如下

#include <iostream>

#define __STDC_CONSTANT_MACROS

#ifdef _WIN32
    // windows
    extern "C" {
    #include "include/libavcodec/avcodec.h"
    #include "include/libavformat/avformat.h"
    #include "include/libavfilter/avfilter.h"
    }
#else
    // linux
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libavfilter/avfilter.h>
    #ifdef __cplusplus
    }
    #endif
#endif

static char* configuration()
{}

static char* urlprotocolinfo()
{}

static char* avformatinfo()
{}

static char* avcodecinfo()
{}

static char* avfilterinfo()
{}

int main()
{
	configuration();
	urlprotocolinfo();
	avformatinfo();
	avcodecinfo();
	avfilterinfo();
}

需要源码的小伙伴可以关注我上面的微信公众号,然后恢复ffmpeg2即可获得源码。有任何问题也可以添加我的个人微信: The_messi,解答大家在学习过程中遇到的种种问题

三 test

1.debug过程问题解决
当我们写完代码,点击visual studio的运行按钮开始运行时,会得到如下错误,这是什么原因呢?
在这里插入图片描述
我们打开libavformat/avformat.h头文件,查看一下这几个函数的声明,如下,看函数的声明前加了关键词“attribute_deprecated”修饰,这个关键词有两个含义:
1,因为ffmpeg的版本一直在更新,新版本的ffmpeg中已经废弃了这个函数,可以在ffmpeg官方API地址中查看相关说明。
2,这个函数暂时还未废弃,但是在以后的版本中有可能会被废弃掉,当前时刻我们还可以继续使用这个API接口

#if FF_API_NEXT
/**
 * If f is NULL, returns the first registered input format,
 * if f is non-NULL, returns the next registered input format after f
 * or NULL if f is the last one.
 */
attribute_deprecated
AVInputFormat  *av_iformat_next(const AVInputFormat  *f);

/**
 * If f is NULL, returns the first registered output format,
 * if f is non-NULL, returns the next registered output format after f
 * or NULL if f is the last one.
 */
attribute_deprecated
AVOutputFormat *av_oformat_next(const AVOutputFormat *f);
#endif

那么如何而解决这个问题呢?我们需要设置一下visual studio的编译选项关闭SDL检查 “属性”—>“C/C++”—>“常规”—>“SDL检查”—>“否”如下
在这里插入图片描述
2.debug结果
Configure信息格式如下所示。

<<Configuration>>
--disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf

Protocol信息格式如下所示。

<<URLProtocol>>
[Out][    bluray]
[Out][     cache]
[Out][    concat]
[Out][    crypto]
[Out][      data]
[Out][ffrtmpcrypt]
[Out][ffrtmphttp]
[Out][      file]
[Out][       ftp]
[Out][    gopher]
[Out][       hls]
[Out][      http]
[Out][ httpproxy]
[Out][     https]
[Out][      mmsh]
[Out][      mmst]
[Out][      pipe]
[Out][      rtmp]
[Out][     rtmpe]
[Out][     rtmps]
[Out][     rtmpt]
[Out][    rtmpte]
[Out][    rtmpts]
[Out][       rtp]
[Out][      srtp]
[Out][   subfile]
[Out][       tcp]
[Out][       tls]
[Out][       udp]
[Out][   udplite]
[Out][       srt]
[Out][    (null)]
[Out][ffrtmpcrypt]
[Out][ffrtmphttp]
[Out][      file]
[Out][       ftp]
[Out][    gopher]
[Out][      http]
[Out][ httpproxy]
[Out][     https]
[Out][   icecast]
[Out][       md5]
[Out][      pipe]
[Out][   prompeg]
[Out][      rtmp]
[Out][     rtmpe]
[Out][     rtmps]
[Out][     rtmpt]
[Out][    rtmpte]
[Out][    rtmpts]
[Out][       rtp]
[Out][      srtp]
[Out][       tee]
[Out][       tcp]
[Out][       tls]
[Out][       udp]
[Out][   udplite]
[Out][       srt]
[Out][    (null)]

AVFormat信息格式如下所示。

<<AVFormatinfo>>
[In ]         aa
[In ]        aac
[In ]        ac3
[In ]        acm
[In ]        act
[In ]        adf
[In ]        adp
[In ]        ads
[In ]        adx
[In ]        aea
[In ]        afc
[In ]       aiff
[In ]        aix
[In ]        alp
[In ]        amr
[In ]      amrnb
[In ]      amrwb
[In ]        anm
[In ]        apc
[In ]        ape
[In ]        apm
[In ]       apng
[In ]       aptx
[In ]    aptx_hd
[In ]    aqtitle
[In ]   argo_asf
[In ]        asf
[In ]      asf_o
[In ]        ass
[In ]        ast
[In ]         au
[In ]        av1
[In ]        avi
[In ]   avisynth
[In ]        avr
[In ]        avs
[In ]       avs2
[In ] bethsoftvid
[In ]        bfi
[In ]        bin
[In ]       bink
[In ]        bit
[In ]        bmv
[In ]      bfstm
[In ]      brstm
[In ]        boa
[In ]        c93
[In ]        caf
[In ]  cavsvideo
[In ]        cdg
[In ]       cdxl
[In ]       cine
[In ]     codec2
[In ]  codec2raw
[In ]     concat
[In ]       dash
[In ]       data
[In ]       daud
[In ]      dcstr
[In ]       derf
[In ]        dfa
[In ]       dhav
[In ]      dirac
[In ]      dnxhd
[In ]        dsf
[In ]     dsicin
[In ]        dss
[In ]        dts
[In ]      dtshd
[In ]         dv
[In ]     dvbsub
[In ]     dvbtxt
[In ]        dxa
[In ]         ea
[In ]   ea_cdata
[In ]       eac3
[In ]       epaf
[In ] ffmetadata
[In ]  filmstrip
[In ]       fits
[In ]       flac
[In ]       flic
[In ]        flv
[In ]   live_flv
[In ]        4xm
[In ]        frm
[In ]        fsb
[In ]       fwse
[In ]       g722
[In ]     g723_1
[In ]       g726
[In ]     g726le
[In ]       g729
[In ]        gdv
[In ]       genh
[In ]        gif
[In ]        gsm
[In ]        gxf
[In ]       h261
[In ]       h263
[In ]       h264
[In ]        hca
[In ]       hcom
[In ]       hevc
[In ]        hls
[In ]        hnm
[In ]        ico
[In ]      idcin
[In ]        idf
[In ]        iff
[In ]        ifv
[In ]       ilbc
[In ]     image2
[In ] image2pipe
[In ]  alias_pix
[In ] brender_pix
[In ]  ingenient
[In ]    ipmovie
[In ]      ircam
[In ]        iss
[In ]        iv8
[In ]        ivf
[In ]        ivr
[In ]    jacosub
[In ]         jv
[In ]        kux
[In ]       kvag
[In ]      lmlm4
[In ]       loas
[In ]        lrc
[In ]        lvf
[In ]        lxf
[In ]        m4v
[In ] matroska,webm
[In ]      mgsts
[In ]   microdvd
[In ]      mjpeg
[In ] mjpeg_2000
[In ]        mlp
[In ]        mlv
[In ]         mm
[In ]        mmf
[In ] mov,mp4,m4a,3gp,3g2,mj2
[In ]        mp3
[In ]        mpc
[In ]       mpc8
[In ]       mpeg
[In ]     mpegts
[In ]  mpegtsraw
[In ]  mpegvideo
[In ]     mpjpeg
[In ]       mpl2
[In ]      mpsub
[In ]        msf
[In ]   msnwctcp
[In ]       mtaf
[In ]        mtv
[In ]       musx
[In ]         mv
[In ]        mvi
[In ]        mxf
[In ]        mxg
[In ]         nc
[In ] nistsphere
[In ]        nsp
[In ]        nsv
[In ]        nut
[In ]        nuv
[In ]        ogg
[In ]        oma
[In ]        paf
[In ]       alaw
[In ]      mulaw
[In ]       vidc
[In ]      f64be
[In ]      f64le
[In ]      f32be
[In ]      f32le
[In ]      s32be
[In ]      s32le
[In ]      s24be
[In ]      s24le
[In ]      s16be
[In ]      s16le
[In ]         s8
[In ]      u32be
[In ]      u32le
[In ]      u24be
[In ]      u24le
[In ]      u16be
[In ]      u16le
[In ]         u8
[In ]        pjs
[In ]        pmp
[In ]     pp_bnk
[In ]        pva
[In ]        pvf
[In ]        qcp
[In ]        r3d
[In ]   rawvideo
[In ]   realtext
[In ]   redspark
[In ]        rl2
[In ]         rm
[In ]        roq
[In ]        rpl
[In ]        rsd
[In ]        rso
[In ]        rtp
[In ]       rtsp
[In ]      s337m
[In ]       sami
[In ]        sap
[In ]        sbc
[In ]        sbg
[In ]        scc
[In ]        sdp
[In ]       sdr2
[In ]        sds
[In ]        sdx
[In ]   film_cpk
[In ]        ser
[In ]        shn
[In ]       siff
[In ]        sln
[In ]        smk
[In ]     smjpeg
[In ]      smush
[In ]        sol
[In ]        sox
[In ]      spdif
[In ]        srt
[In ]     psxstr
[In ]        stl
[In ] subviewer1
[In ]  subviewer
[In ]        sup
[In ]       svag
[In ]        swf
[In ]        tak
[In ] tedcaptions
[In ]        thp
[In ]     3dostr
[In ] tiertexseq
[In ]        tmv
[In ]     truehd
[In ]        tta
[In ]        txd
[In ]        tty
[In ]         ty
[In ]       v210
[In ]      v210x
[In ]        vag
[In ]        vc1
[In ]    vc1test
[In ]    vividas
[In ]       vivo
[In ]        vmd
[In ]     vobsub
[In ]        voc
[In ]        vpk
[In ]    vplayer
[In ]        vqf
[In ]        w64
[In ]        wav
[In ]   wc3movie
[In ] webm_dash_manifest
[In ]     webvtt
[In ]      wsaud
[In ]        wsd
[In ]      wsvqa
[In ]        wtv
[In ]        wve
[In ]         wv
[In ]         xa
[In ]       xbin
[In ]        xmv
[In ]       xvag
[In ]       xwma
[In ]        yop
[In ] yuv4mpegpipe
[In ]   bmp_pipe
[In ]   dds_pipe
[In ]   dpx_pipe
[In ]   exr_pipe
[In ]   gif_pipe
[In ]   j2k_pipe
[In ]  jpeg_pipe
[In ] jpegls_pipe
[In ]   pam_pipe
[In ]   pbm_pipe
[In ]   pcx_pipe
[In ] pgmyuv_pipe
[In ]   pgm_pipe
[In ] pictor_pipe
[In ]   png_pipe
[In ]   ppm_pipe
[In ]   psd_pipe
[In ] qdraw_pipe
[In ]   sgi_pipe
[In ]   svg_pipe
[In ] sunrast_pipe
[In ]  tiff_pipe
[In ]  webp_pipe
[In ]   xpm_pipe
[In ]   xwd_pipe
[In ] libopenmpt
[Out]        a64
[Out]        ac3
[Out]       adts
[Out]        adx
[Out]       aiff
[Out]        amr
[Out]       apng
[Out]       aptx
[Out]    aptx_hd
[Out]        asf
[Out]        ass
[Out]        ast
[Out] asf_stream
[Out]         au
[Out]        avi
[Out]       avm2
[Out]       avs2
[Out]        bit
[Out]        caf
[Out]  cavsvideo
[Out]     codec2
[Out]  codec2raw
[Out]        crc
[Out]       dash
[Out]       data
[Out]       daud
[Out]      dirac
[Out]      dnxhd
[Out]        dts
[Out]         dv
[Out]       eac3
[Out]        f4v
[Out] ffmetadata
[Out]       fifo
[Out]  fifo_test
[Out]  filmstrip
[Out]       fits
[Out]       flac
[Out]        flv
[Out]   framecrc
[Out]  framehash
[Out]   framemd5
[Out]       g722
[Out]     g723_1
[Out]       g726
[Out]     g726le
[Out]        gif
[Out]        gsm
[Out]        gxf
[Out]       h261
[Out]       h263
[Out]       h264
[Out]       hash
[Out]        hds
[Out]       hevc
[Out]        hls
[Out]        ico
[Out]       ilbc
[Out]     image2
[Out] image2pipe
[Out]       ipod
[Out]      ircam
[Out]       ismv
[Out]        ivf
[Out]    jacosub
[Out]       kvag
[Out]       latm
[Out]        lrc
[Out]        m4v
[Out]        md5
[Out]   matroska
[Out]   matroska
[Out]   microdvd
[Out]      mjpeg
[Out]        mlp
[Out]        mmf
[Out]        mov
[Out]        mp2
[Out]        mp3
[Out]        mp4
[Out]       mpeg
[Out]        vcd
[Out] mpeg1video
[Out]        dvd
[Out]       svcd
[Out] mpeg2video
[Out]        vob
[Out]     mpegts
[Out]     mpjpeg
[Out]        mxf
[Out]    mxf_d10
[Out] mxf_opatom
[Out]       null
[Out]        nut
[Out]        oga
[Out]        ogg
[Out]        ogv
[Out]        oma
[Out]       opus
[Out]       alaw
[Out]      mulaw
[Out]       vidc
[Out]      f64be
[Out]      f64le
[Out]      f32be
[Out]      f32le
[Out]      s32be
[Out]      s32le
[Out]      s24be
[Out]      s24le
[Out]      s16be
[Out]      s16le
[Out]         s8
[Out]      u32be
[Out]      u32le
[Out]      u24be
[Out]      u24le
[Out]      u16be
[Out]      u16le
[Out]         u8
[Out]        psp
[Out]   rawvideo
[Out]         rm
[Out]        roq
[Out]        rso
[Out]        rtp
[Out] rtp_mpegts
[Out]       rtsp
[Out]        sap
[Out]        sbc
[Out]        scc
[Out]   film_cpk
[Out]    segment
[Out] stream_segment,ssegment
[Out] singlejpeg
[Out]     smjpeg
[Out] smoothstreaming
[Out]        sox
[Out]        spx
[Out]      spdif
[Out]        srt
[Out] streamhash
[Out]        sup
[Out]        swf
[Out]        tee
[Out]        3g2
[Out]        3gp
[Out] mkvtimestamp_v2
[Out]     truehd
[Out]        tta
[Out] uncodedframecrc
[Out]        vc1
[Out]    vc1test
[Out]        voc
[Out]        w64
[Out]        wav
[Out]       webm
[Out] webm_dash_manifest
[Out] webm_chunk
[Out]       webp
[Out]     webvtt
[Out]        wtv
[Out]         wv
[Out] yuv4mpegpipe

AVCodec信息格式如下所示。

<<AVCodecinfo>>
[Enc][Video]   a64multi
[Enc][Video]  a64multi5
[Enc][Video]  alias_pix
[Enc][Video]        amv
[Enc][Video]       apng
[Enc][Video]       asv1
[Enc][Video]       asv2
[Enc][Video]       avrp
[Enc][Video]       avui
[Enc][Video]       ayuv
[Enc][Video]        bmp
[Enc][Video]    cinepak
[Enc][Video]       cljr
[Enc][Audio] comfortnoise
[Enc][Video]      dnxhd
[Enc][Video]        dpx
[Enc][Video]    dvvideo
[Enc][Video]       ffv1
[Enc][Video]    ffvhuff
[Enc][Video]       fits
[Enc][Video]    flashsv
[Enc][Video]   flashsv2
[Enc][Video]        flv
[Enc][Video]        gif
[Enc][Video]       h261
[Enc][Video]       h263
[Enc][Video]      h263p
[Enc][Video]        hap
[Enc][Video]    huffyuv
[Enc][Video]   jpeg2000
[Enc][Video]     jpegls
[Enc][Video]      ljpeg
[Enc][Video]   magicyuv
[Enc][Video]      mjpeg
[Enc][Video] mpeg1video
[Enc][Video] mpeg2video
[Enc][Video]      mpeg4
[Enc][Video]  msmpeg4v2
[Enc][Video]    msmpeg4
[Enc][Video]   msvideo1
[Enc][Video]        pam
[Enc][Video]        pbm
[Enc][Video]        pcx
[Enc][Video]        pgm
[Enc][Video]     pgmyuv
[Enc][Video]        png
[Enc][Video]        ppm
[Enc][Video]     prores
[Enc][Video]  prores_aw
[Enc][Video]  prores_ks
[Enc][Video]      qtrle
[Enc][Video]       r10k
[Enc][Video]       r210
[Enc][Video]   rawvideo
[Enc][Video]   roqvideo
[Enc][Video]       rv10
[Enc][Video]       rv20
[Enc][Audio]      s302m
[Enc][Video]        sgi
[Enc][Video]       snow
[Enc][Video]    sunrast
[Enc][Video]       svq1
[Enc][Video]      targa
[Enc][Video]       tiff
[Enc][Video]    utvideo
[Enc][Video]       v210
[Enc][Video]       v308
[Enc][Video]       v408
[Enc][Video]       v410
[Enc][Video]        vc2
[Enc][Video] wrapped_avframe
[Enc][Video]       wmv1
[Enc][Video]       wmv2
[Enc][Video]        xbm
[Enc][Video]      xface
[Enc][Video]        xwd
[Enc][Video]       y41p
[Enc][Video]       yuv4
[Enc][Video]       zlib
[Enc][Video]       zmbv
[Enc][Audio]        aac
[Enc][Audio]        ac3
[Enc][Audio]  ac3_fixed
[Enc][Audio]       alac
[Enc][Audio]       aptx
[Enc][Audio]    aptx_hd
[Enc][Audio]        dca
[Enc][Audio]       eac3
[Enc][Audio]       flac
[Enc][Audio]     g723_1
[Enc][Audio]        mlp
[Enc][Audio]        mp2
[Enc][Audio]   mp2fixed
[Enc][Audio] nellymoser
[Enc][Audio]       opus
[Enc][Audio]   real_144
[Enc][Audio]        sbc
[Enc][Audio]      sonic
[Enc][Audio]    sonicls
[Enc][Audio]     truehd
[Enc][Audio]        tta
[Enc][Audio]     vorbis
[Enc][Audio]    wavpack
[Enc][Audio]      wmav1
[Enc][Audio]      wmav2
[Enc][Audio]   pcm_alaw
[Enc][Audio]    pcm_dvd
[Enc][Audio]  pcm_f32be
[Enc][Audio]  pcm_f32le
[Enc][Audio]  pcm_f64be
[Enc][Audio]  pcm_f64le
[Enc][Audio]  pcm_mulaw
[Enc][Audio]     pcm_s8
[Enc][Audio] pcm_s8_planar
[Enc][Audio]  pcm_s16be
[Enc][Audio] pcm_s16be_planar
[Enc][Audio]  pcm_s16le
[Enc][Audio] pcm_s16le_planar
[Enc][Audio]  pcm_s24be
[Enc][Audio] pcm_s24daud
[Enc][Audio]  pcm_s24le
[Enc][Audio] pcm_s24le_planar
[Enc][Audio]  pcm_s32be
[Enc][Audio]  pcm_s32le
[Enc][Audio] pcm_s32le_planar
[Enc][Audio]  pcm_s64be
[Enc][Audio]  pcm_s64le
[Enc][Audio]     pcm_u8
[Enc][Audio]  pcm_u16be
[Enc][Audio]  pcm_u16le
[Enc][Audio]  pcm_u24be
[Enc][Audio]  pcm_u24le
[Enc][Audio]  pcm_u32be
[Enc][Audio]  pcm_u32le
[Enc][Audio]   pcm_vidc
[Enc][Audio]   roq_dpcm
[Enc][Audio]  adpcm_adx
[Enc][Audio]       g722
[Enc][Audio]       g726
[Enc][Audio]     g726le
[Enc][Audio] adpcm_ima_qt
[Enc][Audio] adpcm_ima_ssi
[Enc][Audio] adpcm_ima_wav
[Enc][Audio]   adpcm_ms
[Enc][Audio]  adpcm_swf
[Enc][Audio] adpcm_yamaha
[Enc][Other]        ssa
[Enc][Other]        ass
[Enc][Other]     dvbsub
[Enc][Other]     dvdsub
[Enc][Other]   mov_text
[Enc][Other]        srt
[Enc][Other]     subrip
[Enc][Other]       text
[Enc][Other]     webvtt
[Enc][Other]       xsub
[Enc][Audio]     aac_mf
[Enc][Audio]     ac3_mf
[Enc][Audio]     mp3_mf
[Enc][Video] libaom-av1
[Enc][Audio]     libgsm
[Enc][Audio]  libgsm_ms
[Enc][Audio] libmp3lame
[Enc][Audio] libopencore_amrnb
[Enc][Video] libopenjpeg
[Enc][Audio]    libopus
[Enc][Audio]   libshine
[Enc][Audio]   libspeex
[Enc][Video]  libtheora
[Enc][Audio] libtwolame
[Enc][Audio] libvo_amrwbenc
[Enc][Audio]  libvorbis
[Enc][Video]     libvpx
[Enc][Video] libvpx-vp9
[Enc][Audio] libwavpack
[Enc][Video] libwebp_anim
[Enc][Video]    libwebp
[Enc][Video]    libx264
[Enc][Video] libx264rgb
[Enc][Video]    libx265
[Enc][Video]    libxvid
[Enc][Video]   h264_amf
[Enc][Video]    h264_mf
[Enc][Video] h264_nvenc
[Enc][Video]   h264_qsv
[Enc][Video]      nvenc
[Enc][Video] nvenc_h264
[Enc][Video] nvenc_hevc
[Enc][Video]   hevc_amf
[Enc][Video]    hevc_mf
[Enc][Video] hevc_nvenc
[Enc][Video]   hevc_qsv
[Enc][Video]  mjpeg_qsv
[Enc][Video]  mpeg2_qsv
[Enc][Video]    vp9_qsv
[Dec][Video]       aasc
[Dec][Video]        aic
[Dec][Video]  alias_pix
[Dec][Video]        agm
[Dec][Video]        amv
[Dec][Video]        anm
[Dec][Video]       ansi
[Dec][Video]       apng
[Dec][Video]       arbc
[Dec][Video]       asv1
[Dec][Video]       asv2
[Dec][Video]       aura
[Dec][Video]      aura2
[Dec][Video]       avrp
[Dec][Video]       avrn
[Dec][Video]        avs
[Dec][Video]       avui
[Dec][Video]       ayuv
[Dec][Video] bethsoftvid
[Dec][Video]        bfi
[Dec][Video]  binkvideo
[Dec][Video]  bitpacked
[Dec][Video]        bmp
[Dec][Video]  bmv_video
[Dec][Video] brender_pix
[Dec][Video]        c93
[Dec][Video]       cavs
[Dec][Video] cdgraphics
[Dec][Video]    cdtoons
[Dec][Video]       cdxl
[Dec][Video]       cfhd
[Dec][Video]    cinepak
[Dec][Video] clearvideo
[Dec][Video]       cljr
[Dec][Video]       cllc
[Dec][Audio] comfortnoise
[Dec][Video]       cpia
[Dec][Video]  camstudio
[Dec][Video]       cyuv
[Dec][Video]        dds
[Dec][Video]        dfa
[Dec][Video]      dirac
[Dec][Video]      dnxhd
[Dec][Video]        dpx
[Dec][Video] dsicinvideo
[Dec][Audio]    dvaudio
[Dec][Video]    dvvideo
[Dec][Video]        dxa
[Dec][Video]     dxtory
[Dec][Video]        dxv
[Dec][Video]      eacmv
[Dec][Video]      eamad
[Dec][Video]      eatgq
[Dec][Video]      eatgv
[Dec][Video]      eatqi
[Dec][Video]       8bps
[Dec][Audio]   8svx_exp
[Dec][Audio]   8svx_fib
[Dec][Video]  escape124
[Dec][Video]  escape130
[Dec][Video]        exr
[Dec][Video]       ffv1
[Dec][Video]    ffvhuff
[Dec][Video]        fic
[Dec][Video]       fits
[Dec][Video]    flashsv
[Dec][Video]   flashsv2
[Dec][Video]       flic
[Dec][Video]        flv
[Dec][Video]       fmvc
[Dec][Video]        4xm
[Dec][Video]      fraps
[Dec][Video]       frwu
[Dec][Video]        g2m
[Dec][Video]        gdv
[Dec][Video]        gif
[Dec][Video]       h261
[Dec][Video]       h263
[Dec][Video]      h263i
[Dec][Video]      h263p
[Dec][Video]       h264
[Dec][Video]   h264_qsv
[Dec][Video]        hap
[Dec][Video]       hevc
[Dec][Video]   hevc_qsv
[Dec][Video]  hnm4video
[Dec][Video]     hq_hqa
[Dec][Video]        hqx
[Dec][Video]    huffyuv
[Dec][Video]       hymt
[Dec][Video] idcinvideo
[Dec][Video]        iff
[Dec][Video]       imm4
[Dec][Video]       imm5
[Dec][Video]     indeo2
[Dec][Video]     indeo3
[Dec][Video]     indeo4
[Dec][Video]     indeo5
[Dec][Video] interplayvideo
[Dec][Video]   jpeg2000
[Dec][Video]     jpegls
[Dec][Video]         jv
[Dec][Video]       kgv1
[Dec][Video]       kmvc
[Dec][Video]   lagarith
[Dec][Video]       loco
[Dec][Video]       lscr
[Dec][Video]       m101
[Dec][Video]   magicyuv
[Dec][Video]       mdec
[Dec][Video]      mimic
[Dec][Video]      mjpeg
[Dec][Video]     mjpegb
[Dec][Video]    mmvideo
[Dec][Video] motionpixels
[Dec][Video] mpeg1video
[Dec][Video] mpeg2video
[Dec][Video]      mpeg4
[Dec][Video]  mpegvideo
[Dec][Video]  mpeg2_qsv
[Dec][Video]       msa1
[Dec][Video]       mscc
[Dec][Video]  msmpeg4v1
[Dec][Video]  msmpeg4v2
[Dec][Video]    msmpeg4
[Dec][Video]      msrle
[Dec][Video]       mss1
[Dec][Video]       mss2
[Dec][Video]   msvideo1
[Dec][Video]       mszh
[Dec][Video]       mts2
[Dec][Video]       mv30
[Dec][Video]       mvc1
[Dec][Video]       mvc2
[Dec][Video]       mvdv
[Dec][Video]       mvha
[Dec][Video]       mwsc
[Dec][Video]      mxpeg
[Dec][Video]    notchlc
[Dec][Video]        nuv
[Dec][Video]  paf_video
[Dec][Video]        pam
[Dec][Video]        pbm
[Dec][Video]        pcx
[Dec][Video]        pfm
[Dec][Video]        pgm
[Dec][Video]     pgmyuv
[Dec][Video]     pictor
[Dec][Video]     pixlet
[Dec][Video]        png
[Dec][Video]        ppm
[Dec][Video]     prores
[Dec][Video]   prosumer
[Dec][Video]        psd
[Dec][Video]        ptx
[Dec][Video]      qdraw
[Dec][Video]       qpeg
[Dec][Video]      qtrle
[Dec][Video]       r10k
[Dec][Video]       r210
[Dec][Video]       rasc
[Dec][Video]   rawvideo
[Dec][Video]        rl2
[Dec][Video]   roqvideo
[Dec][Video]       rpza
[Dec][Video]       rscc
[Dec][Video]       rv10
[Dec][Video]       rv20
[Dec][Video]       rv30
[Dec][Video]       rv40
[Dec][Audio]      s302m
[Dec][Video]       sanm
[Dec][Video]       scpr
[Dec][Video] screenpresso
[Dec][Video]        sgi
[Dec][Video]     sgirle
[Dec][Video] sheervideo
[Dec][Video]   smackvid
[Dec][Video]        smc
[Dec][Video]    smvjpeg
[Dec][Video]       snow
[Dec][Video]       sp5x
[Dec][Video]    speedhq
[Dec][Video]       srgc
[Dec][Video]    sunrast
[Dec][Video]       svq1
[Dec][Video]       svq3
[Dec][Video]      targa
[Dec][Video] targa_y216
[Dec][Video]       tdsc
[Dec][Video]     theora
[Dec][Video]        thp
[Dec][Video] tiertexseqvideo
[Dec][Video]       tiff
[Dec][Video]        tmv
[Dec][Video] truemotion1
[Dec][Video] truemotion2
[Dec][Video] truemotion2rt
[Dec][Video]   camtasia
[Dec][Video]      tscc2
[Dec][Video]        txd
[Dec][Video] ultimotion
[Dec][Video]    utvideo
[Dec][Video]       v210
[Dec][Video]      v210x
[Dec][Video]       v308
[Dec][Video]       v408
[Dec][Video]       v410
[Dec][Video]         vb
[Dec][Video]       vble
[Dec][Video]        vc1
[Dec][Video]   vc1image
[Dec][Video]    vc1_qsv
[Dec][Video]       vcr1
[Dec][Video]   vmdvideo
[Dec][Video]       vmnc
[Dec][Video]        vp3
[Dec][Video]        vp4
[Dec][Video]        vp5
[Dec][Video]        vp6
[Dec][Video]       vp6a
[Dec][Video]       vp6f
[Dec][Video]        vp7
[Dec][Video]        vp8
[Dec][Video]        vp9
[Dec][Video]   vqavideo
[Dec][Video]       webp
[Dec][Video]       wcmv
[Dec][Video] wrapped_avframe
[Dec][Video]       wmv1
[Dec][Video]       wmv2
[Dec][Video]       wmv3
[Dec][Video]  wmv3image
[Dec][Video]       wnv1
[Dec][Video]    xan_wc3
[Dec][Video]    xan_wc4
[Dec][Video]        xbm
[Dec][Video]      xface
[Dec][Video]         xl
[Dec][Video]        xpm
[Dec][Video]        xwd
[Dec][Video]       y41p
[Dec][Video]        ylc
[Dec][Video]        yop
[Dec][Video]       yuv4
[Dec][Video]       012v
[Dec][Video]  zerocodec
[Dec][Video]       zlib
[Dec][Video]       zmbv
[Dec][Audio]        aac
[Dec][Audio]  aac_fixed
[Dec][Audio]   aac_latm
[Dec][Audio]        ac3
[Dec][Audio]  ac3_fixed
[Dec][Audio] acelp.kelvin
[Dec][Audio]       alac
[Dec][Audio]        als
[Dec][Audio]      amrnb
[Dec][Audio]      amrwb
[Dec][Audio]        ape
[Dec][Audio]       aptx
[Dec][Audio]    aptx_hd
[Dec][Audio]     atrac1
[Dec][Audio]     atrac3
[Dec][Audio]   atrac3al
[Dec][Audio] atrac3plus
[Dec][Audio] atrac3plusal
[Dec][Audio]     atrac9
[Enc][Audio] binkaudio_dct
[Enc][Audio] binkaudio_rdft
[Dec][Audio]  bmv_audio
[Dec][Audio]       cook
[Dec][Audio]        dca
[Dec][Audio]    dolby_e
[Dec][Audio]   dsd_lsbf
[Dec][Audio]   dsd_msbf
[Dec][Audio] dsd_lsbf_planar
[Dec][Audio] dsd_msbf_planar
[Dec][Audio] dsicinaudio
[Dec][Audio]     dss_sp
[Dec][Audio]        dst
[Dec][Audio]       eac3
[Dec][Audio]       evrc
[Dec][Audio]  wavesynth
[Dec][Audio]       flac
[Dec][Audio]     g723_1
[Dec][Audio]       g729
[Dec][Audio]        gsm
[Dec][Audio]     gsm_ms
[Dec][Audio]        hca
[Dec][Audio]       hcom
[Dec][Audio]        iac
[Dec][Audio]       ilbc
[Dec][Audio]        imc
[Dec][Audio] interplayacm
[Dec][Audio]      mace3
[Dec][Audio]      mace6
[Dec][Audio]  metasound
[Dec][Audio]        mlp
[Dec][Audio]        mp1
[Dec][Audio]   mp1float
[Dec][Audio]        mp2
[Dec][Audio]   mp2float
[Dec][Audio]   mp3float
[Dec][Audio]        mp3
[Dec][Audio] mp3adufloat
[Dec][Audio]     mp3adu
[Dec][Audio] mp3on4float
[Dec][Audio]     mp3on4
[Dec][Audio]       mpc7
[Dec][Audio]       mpc8
[Dec][Audio] nellymoser
[Dec][Audio]     on2avc
[Dec][Audio]       opus
[Dec][Audio]  paf_audio
[Dec][Audio]      qcelp
[Dec][Audio]       qdm2
[Dec][Audio]       qdmc
[Dec][Audio]   real_144
[Dec][Audio]   real_288
[Dec][Audio]       ralf
[Dec][Audio]        sbc
[Dec][Audio]    shorten
[Dec][Audio]       sipr
[Dec][Audio]      siren
[Dec][Audio]   smackaud
[Dec][Audio]      sonic
[Dec][Audio]        tak
[Dec][Audio]     truehd
[Dec][Audio] truespeech
[Dec][Audio]        tta
[Dec][Audio]     twinvq
[Dec][Audio]   vmdaudio
[Dec][Audio]     vorbis
[Dec][Audio]    wavpack
[Dec][Audio] wmalossless
[Dec][Audio]     wmapro
[Dec][Audio]      wmav1
[Dec][Audio]      wmav2
[Dec][Audio]   wmavoice
[Dec][Audio]    ws_snd1
[Dec][Audio]       xma1
[Dec][Audio]       xma2
[Dec][Audio]   pcm_alaw
[Dec][Audio] pcm_bluray
[Dec][Audio]    pcm_dvd
[Dec][Audio]  pcm_f16le
[Dec][Audio]  pcm_f24le
[Dec][Audio]  pcm_f32be
[Dec][Audio]  pcm_f32le
[Dec][Audio]  pcm_f64be
[Dec][Audio]  pcm_f64le
[Dec][Audio]    pcm_lxf
[Dec][Audio]  pcm_mulaw
[Dec][Audio]     pcm_s8
[Dec][Audio] pcm_s8_planar
[Dec][Audio]  pcm_s16be
[Dec][Audio] pcm_s16be_planar
[Dec][Audio]  pcm_s16le
[Dec][Audio] pcm_s16le_planar
[Dec][Audio]  pcm_s24be
[Dec][Audio] pcm_s24daud
[Dec][Audio]  pcm_s24le
[Dec][Audio] pcm_s24le_planar
[Dec][Audio]  pcm_s32be
[Dec][Audio]  pcm_s32le
[Dec][Audio] pcm_s32le_planar
[Dec][Audio]  pcm_s64be
[Dec][Audio]  pcm_s64le
[Dec][Audio]     pcm_u8
[Dec][Audio]  pcm_u16be
[Dec][Audio]  pcm_u16le
[Dec][Audio]  pcm_u24be
[Dec][Audio]  pcm_u24le
[Dec][Audio]  pcm_u32be
[Dec][Audio]  pcm_u32le
[Dec][Audio]   pcm_vidc
[Dec][Audio]  derf_dpcm
[Dec][Audio] gremlin_dpcm
[Dec][Audio] interplay_dpcm
[Dec][Audio]   roq_dpcm
[Dec][Audio]  sdx2_dpcm
[Dec][Audio]   sol_dpcm
[Dec][Audio]   xan_dpcm
[Dec][Audio]  adpcm_4xm
[Dec][Audio]  adpcm_adx
[Dec][Audio]  adpcm_afc
[Dec][Audio]  adpcm_agm
[Dec][Audio] adpcm_aica
[Dec][Audio] adpcm_argo
[Dec][Audio]   adpcm_ct
[Dec][Audio]  adpcm_dtk
[Dec][Audio]   adpcm_ea
[Dec][Audio] adpcm_ea_maxis_xa
[Dec][Audio] adpcm_ea_r1
[Dec][Audio] adpcm_ea_r2
[Dec][Audio] adpcm_ea_r3
[Dec][Audio] adpcm_ea_xas
[Dec][Audio]       g722
[Dec][Audio]       g726
[Dec][Audio]     g726le
[Dec][Audio] adpcm_ima_amv
[Dec][Audio] adpcm_ima_alp
[Dec][Audio] adpcm_ima_apc
[Dec][Audio] adpcm_ima_apm
[Dec][Audio] adpcm_ima_cunning
[Dec][Audio] adpcm_ima_dat4
[Dec][Audio] adpcm_ima_dk3
[Dec][Audio] adpcm_ima_dk4
[Dec][Audio] adpcm_ima_ea_eacs
[Dec][Audio] adpcm_ima_ea_sead
[Dec][Audio] adpcm_ima_iss
[Dec][Audio] adpcm_ima_mtf
[Dec][Audio] adpcm_ima_oki
[Dec][Audio] adpcm_ima_qt
[Dec][Audio] adpcm_ima_rad
[Dec][Audio] adpcm_ima_ssi
[Dec][Audio] adpcm_ima_smjpeg
[Dec][Audio] adpcm_ima_wav
[Dec][Audio] adpcm_ima_ws
[Dec][Audio]   adpcm_ms
[Dec][Audio] adpcm_mtaf
[Dec][Audio]  adpcm_psx
[Dec][Audio] adpcm_sbpro_2
[Dec][Audio] adpcm_sbpro_3
[Dec][Audio] adpcm_sbpro_4
[Dec][Audio]  adpcm_swf
[Dec][Audio]  adpcm_thp
[Dec][Audio] adpcm_thp_le
[Dec][Audio] adpcm_vima
[Dec][Audio]   adpcm_xa
[Dec][Audio] adpcm_yamaha
[Dec][Audio] adpcm_zork
[Dec][Other]        ssa
[Dec][Other]        ass
[Dec][Other]     cc_dec
[Dec][Other]     dvbsub
[Dec][Other]     dvdsub
[Dec][Other]    jacosub
[Dec][Other]   microdvd
[Dec][Other]   mov_text
[Dec][Other]       mpl2
[Dec][Other]     pgssub
[Dec][Other]        pjs
[Dec][Other]   realtext
[Dec][Other]       sami
[Dec][Other]        srt
[Dec][Other]        stl
[Dec][Other]     subrip
[Dec][Other]  subviewer
[Dec][Other] subviewer1
[Dec][Other]       text
[Dec][Other]    vplayer
[Dec][Other]     webvtt
[Dec][Other]       xsub
[Enc][Video]   libdav1d
[Dec][Audio]     libgsm
[Dec][Audio]  libgsm_ms
[Dec][Audio] libopencore_amrnb
[Dec][Audio] libopencore_amrwb
[Dec][Video] libopenjpeg
[Dec][Audio]    libopus
[Dec][Audio]   libspeex
[Dec][Audio]  libvorbis
[Dec][Video]     libvpx
[Dec][Video] libvpx-vp9
[Dec][Video]    bintext
[Dec][Video]       xbin
[Dec][Video]        idf
[Dec][Video] libaom-av1
[Dec][Video] h264_cuvid
[Dec][Video] hevc_cuvid
[Dec][Video] mjpeg_cuvid
[Dec][Video]  mjpeg_qsv
[Dec][Video] mpeg1_cuvid
[Dec][Video] mpeg2_cuvid
[Dec][Video] mpeg4_cuvid
[Dec][Video]  vc1_cuvid
[Dec][Video]  vp8_cuvid
[Dec][Video]    vp8_qsv
[Dec][Video]  vp9_cuvid
[Dec][Video]    vp9_qsv

AVFilterinfo信息格式如下所示。

<<AVFilterinfo>>
 [         abench]
 [    acompressor]
 [      acontrast]
 [          acopy]
 [           acue]
 [     acrossfade]
 [     acrossover]
 [       acrusher]
 [       adeclick]
 [        adeclip]
 [         adelay]
 [    aderivative]
 [          aecho]
 [      aemphasis]
 [          aeval]
 [          afade]
 [         afftdn]
 [       afftfilt]
 [           afir]
 [        aformat]
 [          agate]
 [           aiir]
 [      aintegral]
 [    ainterleave]
 [       alimiter]
 [        allpass]
 [          aloop]
 [         amerge]
 [      ametadata]
 [           amix]
 [      amultiply]
 [    anequalizer]
 [         anlmdn]
 [          anlms]
 [          anull]
 [           apad]
 [         aperms]
 [        aphaser]
 [      apulsator]
 [      arealtime]
 [      aresample]
 [       areverse]
 [         arnndn]
 [        aselect]
 [       asendcmd]
 [   asetnsamples]
 [        asetpts]
 [       asetrate]
 [         asettb]
 [      ashowinfo]
 [      asidedata]
 [      asoftclip]
 [         asplit]
 [         astats]
 [  astreamselect]
 [      asubboost]
 [         atempo]
 [          atrim]
 [    axcorrelate]
 [       bandpass]
 [     bandreject]
 [           bass]
 [         biquad]
 [     channelmap]
 [   channelsplit]
 [         chorus]
 [        compand]
 [compensationdelay]
 [      crossfeed]
 [    crystalizer]
 [        dcshift]
 [        deesser]
 [        drmeter]
 [     dynaudnorm]
 [         earwax]
 [        ebur128]
 [      equalizer]
 [    extrastereo]
 [   firequalizer]
 [        flanger]
 [           haas]
 [           hdcd]
 [      headphone]
 [       highpass]
 [      highshelf]
 [           join]
 [       loudnorm]
 [        lowpass]
 [       lowshelf]
 [       mcompand]
 [            pan]
 [     replaygain]
 [sidechaincompress]
 [  sidechaingate]
 [  silencedetect]
 [  silenceremove]
 [      sofalizer]
 [    stereotools]
 [    stereowiden]
 [ superequalizer]
 [       surround]
 [         treble]
 [        tremolo]
 [        vibrato]
 [         volume]
 [   volumedetect]
 [       aevalsrc]
 [        afirsrc]
 [      anoisesrc]
 [       anullsrc]
 [        hilbert]
 [           sinc]
 [           sine]
 [      anullsink]
 [         addroi]
 [   alphaextract]
 [     alphamerge]
 [        amplify]
 [            ass]
 [     atadenoise]
 [        avgblur]
 [           bbox]
 [          bench]
 [      bilateral]
 [  bitplanenoise]
 [    blackdetect]
 [     blackframe]
 [          blend]
 [           bm3d]
 [        boxblur]
 [          bwdif]
 [            cas]
 [     chromahold]
 [      chromakey]
 [    chromashift]
 [       ciescope]
 [      codecview]
 [   colorbalance]
 [colorchannelmixer]
 [       colorkey]
 [      colorhold]
 [    colorlevels]
 [    colormatrix]
 [     colorspace]
 [    convolution]
 [       convolve]
 [           copy]
 [     cover_rect]
 [           crop]
 [     cropdetect]
 [            cue]
 [         curves]
 [      datascope]
 [          dblur]
 [       dctdnoiz]
 [         deband]
 [        deblock]
 [       decimate]
 [     deconvolve]
 [          dedot]
 [        deflate]
 [      deflicker]
 [deinterlace_qsv]
 [       dejudder]
 [         delogo]
 [         derain]
 [        deshake]
 [        despill]
 [     detelecine]
 [       dilation]
 [       displace]
 [ dnn_processing]
 [    doubleweave]
 [        drawbox]
 [      drawgraph]
 [       drawgrid]
 [       drawtext]
 [     edgedetect]
 [           elbg]
 [        entropy]
 [             eq]
 [        erosion]
 [  extractplanes]
 [           fade]
 [       fftdnoiz]
 [        fftfilt]
 [          field]
 [      fieldhint]
 [     fieldmatch]
 [     fieldorder]
 [    fillborders]
 [      find_rect]
 [      floodfill]
 [         format]
 [            fps]
 [      framepack]
 [      framerate]
 [      framestep]
 [   freezedetect]
 [   freezeframes]
 [           fspp]
 [          gblur]
 [            geq]
 [        gradfun]
 [   graphmonitor]
 [       greyedge]
 [       haldclut]
 [          hflip]
 [         histeq]
 [      histogram]
 [         hqdn3d]
 [            hqx]
 [         hstack]
 [            hue]
 [     hwdownload]
 [          hwmap]
 [       hwupload]
 [  hwupload_cuda]
 [     hysteresis]
 [           idet]
 [             il]
 [        inflate]
 [      interlace]
 [     interleave]
 [      kerndeint]
 [         lagfun]
 [ lenscorrection]
 [        libvmaf]
 [        limiter]
 [           loop]
 [        lumakey]
 [            lut]
 [          lut1d]
 [           lut2]
 [          lut3d]
 [         lutrgb]
 [         lutyuv]
 [    maskedclamp]
 [      maskedmax]
 [    maskedmerge]
 [      maskedmin]
 [maskedthreshold]
 [        maskfun]
 [        mcdeint]
 [         median]
 [    mergeplanes]
 [      mestimate]
 [       metadata]
 [   midequalizer]
 [   minterpolate]
 [            mix]
 [     mpdecimate]
 [         negate]
 [        nlmeans]
 [          nnedi]
 [       noformat]
 [          noise]
 [      normalize]
 [           null]
 [   oscilloscope]
 [        overlay]
 [    overlay_qsv]
 [   overlay_cuda]
 [      owdenoise]
 [            pad]
 [     palettegen]
 [     paletteuse]
 [          perms]
 [    perspective]
 [          phase]
 [photosensitivity]
 [    pixdesctest]
 [       pixscope]
 [             pp]
 [            pp7]
 [    premultiply]
 [        prewitt]
 [    pseudocolor]
 [           psnr]
 [         pullup]
 [             qp]
 [         random]
 [     readeia608]
 [       readvitc]
 [       realtime]
 [          remap]
 [    removegrain]
 [     removelogo]
 [   repeatfields]
 [        reverse]
 [      rgbashift]
 [        roberts]
 [         rotate]
 [            sab]
 [          scale]
 [     scale_cuda]
 [      scale_qsv]
 [      scale2ref]
 [          scdet]
 [         scroll]
 [         select]
 [ selectivecolor]
 [        sendcmd]
 [ separatefields]
 [         setdar]
 [       setfield]
 [      setparams]
 [         setpts]
 [       setrange]
 [         setsar]
 [          settb]
 [       showinfo]
 [    showpalette]
 [  shuffleframes]
 [  shuffleplanes]
 [       sidedata]
 [    signalstats]
 [      signature]
 [      smartblur]
 [          sobel]
 [          split]
 [            spp]
 [             sr]
 [           ssim]
 [       stereo3d]
 [   streamselect]
 [      subtitles]
 [     super2xsai]
 [       swaprect]
 [         swapuv]
 [         tblend]
 [       telecine]
 [     thistogram]
 [      threshold]
 [      thumbnail]
 [ thumbnail_cuda]
 [           tile]
 [     tinterlace]
 [          tlut2]
 [        tmedian]
 [           tmix]
 [        tonemap]
 [           tpad]
 [      transpose]
 [           trim]
 [  unpremultiply]
 [        unsharp]
 [         untile]
 [           uspp]
 [           v360]
 [  vaguedenoiser]
 [    vectorscope]
 [          vflip]
 [         vfrdet]
 [       vibrance]
 [  vidstabdetect]
 [vidstabtransform]
 [       vignette]
 [     vmafmotion]
 [        vpp_qsv]
 [         vstack]
 [         w3fdif]
 [       waveform]
 [          weave]
 [            xbr]
 [          xfade]
 [        xmedian]
 [         xstack]
 [          yadif]
 [     yadif_cuda]
 [       yaepblur]
 [        zoompan]
 [         zscale]
 [         allrgb]
 [         allyuv]
 [       cellauto]
 [          color]
 [      gradients]
 [    haldclutsrc]
 [           life]
 [     mandelbrot]
 [      mptestsrc]
 [        nullsrc]
 [      pal75bars]
 [     pal100bars]
 [     rgbtestsrc]
 [     sierpinski]
 [      smptebars]
 [    smptehdbars]
 [        testsrc]
 [       testsrc2]
 [     yuvtestsrc]
 [       nullsink]
 [      abitscope]
 [     adrawgraph]
 [  agraphmonitor]
 [     ahistogram]
 [    aphasemeter]
 [   avectorscope]
 [         concat]
 [        showcqt]
 [      showfreqs]
 [    showspatial]
 [   showspectrum]
 [showspectrumpic]
 [     showvolume]
 [      showwaves]
 [   showwavespic]
 [  spectrumsynth]
 [         amovie]
 [          movie]
 [          afifo]
 [           fifo]
 [        abuffer]
 [         buffer]
 [    abuffersink]
 [     buffersink]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我来简单回答一下。 首先,要明确的是,FFmpeg 是一个开源的跨平台音视频处理库,支持包括解码、编码、封装、解封装等功能。而解封装(Demuxing)是指将音视频封装格式中的音视频流解析出来,以便后续对音视频流进行解码、编码等操作。 在 Android 基于 FFmpeg 开发简易播放器中,我们可以使用 FFmpeg 提供的 API 来进行解封装。具体步骤如下: 1. 打开输入文件 使用 FFmpeg 的 avformat_open_input() 函数打开要解封装的音视频文件,该函数返回一个 AVFormatContext 结构体指针,该指针包含了输入文件的相关信息。 2. 寻找音视频流 使用 FFmpeg 的 avformat_find_stream_info() 函数读取输入文件的文件头信息,并寻找其中包含的音视频流。该函数会将每个音视频流的信息保存在 AVStream 结构体中。 3. 选择音视频流 根据需要播放的音视频流类型,在所有寻找到的音视频流中选择对应的流。可以通过判断 AVStream 结构体中的 codecpar->codec_type 来确定该流是音频流还是视频流。 4. 获取解码器 使用 FFmpeg 的 avcodec_find_decoder() 函数获取对应的解码器,并使用 avcodec_open2() 函数打开解码器。 5. 循环读取数据包 使用 FFmpeg 的 av_read_frame() 函数循环读取音视频数据包(AVPacket 结构体),并将数据包送到解码器进行解码。 6. 关闭解码器和输入文件 在播放完成后,需要使用 avcodec_free_context() 函数释放解码器占用的资源,并使用 avformat_close_input() 函数关闭输入文件。 以上就是基于 FFmpeg 进行解封装的大致步骤。当然,在实际开发中还有很多细节需要注意,比如错误处理、内存管理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值