• 最简单的基于FFMPEG的Helloworld程序


    =====================================================

    最简单的基于FFmpeg的视频播放器系列文章列表:

    100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)

    最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0)

    最简单的基于FFmpeg的解码器-纯净版(不包括libavformat)

    最简单的基于FFMPEG+SDL的视频播放器:拆分-解码器和播放器

    最简单的基于FFMPEG的Helloworld程序

    =====================================================



    本文记录一个基于FFmpeg的HelloWorld程序。该程序能够打印出FFmpeg类库的基本信息。

    使用该程序通常能够验证FFmpeg是否正确的安装配置。


    源码

    /**
     * 最简单的FFmpeg Helloworld程序
     * Simplest FFmpeg HelloWorld
     *
     * 雷霄骅 Lei Xiaohua
     * leixiaohua1020@126.com
     * 中国传媒大学/数字电视技术
     * Communication University of China / Digital TV Technology
     * http://blog.csdn.net/leixiaohua1020
     *
     * 
     * 本程序是基于FFmpeg函数的最简单的程序。它能够打印出FFmpeg类库的下列信息:
     * Protocol:  FFmpeg类库支持的协议
     * AVFormat:  FFmpeg类库支持的封装格式
     * AVCodec:   FFmpeg类库支持的编解码器
     * AVFilter:  FFmpeg类库支持的滤镜
     * Configure: FFmpeg类库的配置信息
     * 
     * This is the simplest program based on FFmpeg API. It can show following 
     * informations about FFmpeg library:
     * Protocol:  Protocols supported by FFmpeg.
     * AVFormat:  Container format supported by FFmpeg.
     * AVCodec:   Encoder/Decoder supported by FFmpeg.
     * AVFilter:  Filters supported by FFmpeg.
     * Configure: configure information of FFmpeg.
     *
     */
    
    #include <stdio.h>
    
    #define __STDC_CONSTANT_MACROS
    
    #ifdef _WIN32
    //Windows
    extern "C"
    {
    #include "libavcodec/avcodec.h"
    #include "libavformat/avformat.h"
    #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
    
    //FIX
    struct URLProtocol;
    /**
     * Protocol Support Information
     */
    char * urlprotocolinfo(){
    	
    	char *info=(char *)malloc(40000);
    	memset(info,0,40000);
    
    	av_register_all();
    
    	struct URLProtocol *pup = NULL;
    	//Input
    	struct URLProtocol **p_temp = &pup;
    	avio_enum_protocols((void **)p_temp, 0);
    	while ((*p_temp) != NULL){
    		sprintf(info, "%s[In ][%10s]
    ", info, avio_enum_protocols((void **)p_temp, 0));
    	}
    	pup = NULL;
    	//Output
    	avio_enum_protocols((void **)p_temp, 1);
    	while ((*p_temp) != NULL){
    		sprintf(info, "%s[Out][%10s]
    ", info, avio_enum_protocols((void **)p_temp, 1));
    	}
    
    	return info;
    }
    
    /**
     * AVFormat Support Information
     */
    char * avformatinfo(){
    
    	char *info=(char *)malloc(40000);
    	memset(info,0,40000);
    
    	av_register_all();
    
    	AVInputFormat *if_temp = av_iformat_next(NULL);
    	AVOutputFormat *of_temp = av_oformat_next(NULL);
    	//Input
    	while(if_temp!=NULL){
    		sprintf(info, "%s[In ] %10s
    ", info, if_temp->name);
    		if_temp=if_temp->next;
    	}
    	//Output
    	while (of_temp != NULL){
    		sprintf(info, "%s[Out] %10s
    ", info, of_temp->name);
    		of_temp = of_temp->next;
    	}
    	return info;
    }
    
    /**
     * AVCodec Support Information
     */
    char * avcodecinfo()
    {
    	char *info=(char *)malloc(40000);
    	memset(info,0,40000);
    
    	av_register_all();
    
    	AVCodec *c_temp = av_codec_next(NULL);
    
    	while(c_temp!=NULL){
    		if (c_temp->decode!=NULL){
    			sprintf(info, "%s[Dec]", info);
    		}
    		else{
    			sprintf(info, "%s[Enc]", info);
    		}
    		switch (c_temp->type){
    		case AVMEDIA_TYPE_VIDEO:
    			sprintf(info, "%s[Video]", info);
    			break;
    		case AVMEDIA_TYPE_AUDIO:
    			sprintf(info, "%s[Audio]", info);
    			break;
    		default:
    			sprintf(info, "%s[Other]", info);
    			break;
    		}
    
    		sprintf(info, "%s %10s
    ", info, c_temp->name);
    
    		c_temp=c_temp->next;
    	}
    	return info;
    }
    
    /**
     * AVFilter Support Information
     */
    char * avfilterinfo()
    {
    	char *info=(char *)malloc(40000);
    	memset(info,0,40000);
    
    	avfilter_register_all();
    
    	AVFilter *f_temp = (AVFilter *)avfilter_next(NULL);
    	
    	while (f_temp != NULL){
    		sprintf(info, "%s[%15s]
    ", info, f_temp->name);
    		f_temp=f_temp->next;
    	}
    	return info;
    }
    
    /**
     * Configuration Information
     */
    char * configurationinfo()
    {
    	char *info=(char *)malloc(40000);
    	memset(info,0,40000);
    
    	av_register_all();
    
    	sprintf(info, "%s
    ", avcodec_configuration());
    
    	return info;
    }
    
    int main(int argc, char* argv[])
    {
    	char *infostr=NULL;
    	infostr=configurationinfo();
    	printf("
    <<Configuration>>
    %s",infostr);
    	free(infostr);
    
    	infostr=urlprotocolinfo();
    	printf("
    <<URLProtocol>>
    %s",infostr);
    	free(infostr);
    
    	infostr=avformatinfo();
    	printf("
    <<AVFormat>>
    %s",infostr);
    	free(infostr);
    
    	infostr=avcodecinfo();
    	printf("
    <<AVCodec>>
    %s",infostr);
    	free(infostr);
    
    	infostr=avfilterinfo();
    	printf("
    <<AVFilter>>
    %s",infostr);
    	free(infostr);
    
    	return 0;
    }



    执行结果


    Configure信息格式例如以下所看到的。

    --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib

    Protocol信息格式例如以下所看到的。

    [In ][     cache]
    [In ][    concat]
    [In ][    crypto]
    [In ][      data]
    [In ][      file]
    [In ][       ftp]
    [In ][    gopher]
    [In ][       hls]
    [In ][      http]
    [In ][ httpproxy]
    [In ][     https]
    [In ][      mmsh]
    [In ][      mmst]
    [In ][      pipe]
    [In ][       rtp]
    [In ][      srtp]
    [In ][   subfile]
    [In ][       tcp]
    [In ][       tls]
    [In ][       udp]
    [In ][      rtmp]
    [In ][     rtmpe]
    [In ][     rtmps]
    [In ][     rtmpt]
    [In ][    rtmpte]
    [In ][    (null)]
    [Out][       ftp]
    [Out][    gopher]
    [Out][      http]
    [Out][ httpproxy]
    [Out][     https]
    [Out][       md5]
    [Out][      pipe]
    [Out][       rtp]
    [Out][      srtp]
    [Out][       tcp]
    [Out][       tls]
    [Out][       udp]
    [Out][      rtmp]
    [Out][     rtmpe]
    [Out][     rtmps]
    [Out][     rtmpt]
    [Out][    rtmpte]
    [Out][    (null)]
    
    


    AVFormat信息格式例如以下所看到的。

    [In ]        aac
    [In ]        ac3
    [In ]        act
    [In ]        adf
    [In ]        adp
    [In ]        adx
    [In ]        aea
    [In ]        afc
    [In ]       aiff
    [In ]        amr
    [In ]        anm
    [In ]        apc
    [In ]        ape
    [In ]    aqtitle
    [In ]        asf
    [In ]        ass
    [In ]        ast
    [In ]         au
    [In ]        avi
    [In ]   avisynth
    [In ]        avr
    [In ]        avs
    [In ] bethsoftvid
    [In ]        bfi
    [In ]        bin
    [In ]       bink
    [In ]        bit
    [In ]        bmv
    [In ]      brstm
    [In ]        boa
    [In ]        c93
    [In ]        caf
    [In ]  cavsvideo
    [In ]        cdg
    [In ]       cdxl
    [In ]       cine
    [In ]     concat
    [In ]       data
    [In ]       daud
    [In ]        dfa
    [In ]      dirac
    [In ]      dnxhd
    [In ]        dsf
    [In ]     dsicin
    [In ]        dts
    [In ]      dtshd
    [In ]         dv
    [In ]        dxa
    [In ]         ea
    [In ]   ea_cdata
    [In ]       eac3
    [In ]       epaf
    [In ]        ffm
    [In ] ffmetadata
    [In ]  filmstrip
    [In ]       flac
    [In ]       flic
    [In ]        flv
    [In ]        4xm
    [In ]        frm
    [In ]       g722
    [In ]     g723_1
    [In ]       g729
    [In ]        gif
    [In ]        gsm
    [In ]        gxf
    [In ]       h261
    [In ]       h263
    [In ]       h264
    [In ]       hevc
    [In ] hls,applehttp
    [In ]        hnm
    [In ]        ico
    [In ]      idcin
    [In ]        idf
    [In ]        iff
    [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 ]    jacosub
    [In ]         jv
    [In ]       latm
    [In ]      lmlm4
    [In ]       loas
    [In ]        lvf
    [In ]        lxf
    [In ]        m4v
    [In ] matroska,webm
    [In ]      mgsts
    [In ]   microdvd
    [In ]      mjpeg
    [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 ]       mpl2
    [In ]      mpsub
    [In ]   msnwctcp
    [In ]        mtv
    [In ]         mv
    [In ]        mvi
    [In ]        mxf
    [In ]        mxg
    [In ]         nc
    [In ] nistsphere
    [In ]        nsv
    [In ]        nut
    [In ]        nuv
    [In ]        ogg
    [In ]        oma
    [In ]        paf
    [In ]       alaw
    [In ]      mulaw
    [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 ]        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 ]       sami
    [In ]        sap
    [In ]        sbg
    [In ]        sdp
    [In ]       sdr2
    [In ]   film_cpk
    [In ]        shn
    [In ]       siff
    [In ]        smk
    [In ]     smjpeg
    [In ]      smush
    [In ]        sol
    [In ]        sox
    [In ]      spdif
    [In ]        srt
    [In ]     psxstr
    [In ] subviewer1
    [In ]  subviewer
    [In ]        swf
    [In ]        tak
    [In ] tedcaptions
    [In ]        thp
    [In ] tiertexseq
    [In ]        tmv
    [In ]     truehd
    [In ]        tta
    [In ]        txd
    [In ]        tty
    [In ]        vc1
    [In ]    vc1test
    [In ]       vivo
    [In ]        vmd
    [In ]     vobsub
    [In ]        voc
    [In ]    vplayer
    [In ]        vqf
    [In ]        w64
    [In ]        wav
    [In ]   wc3movie
    [In ]     webvtt
    [In ]      wsaud
    [In ]      wsvqa
    [In ]        wtv
    [In ]         wv
    [In ]         xa
    [In ]       xbin
    [In ]        xmv
    [In ]       xwma
    [In ]        yop
    [In ] yuv4mpegpipe
    [In ] libmodplug
    [Out]        a64
    [Out]        ac3
    [Out]       adts
    [Out]        adx
    [Out]       aiff
    [Out]        amr
    [Out]        asf
    [Out]        ass
    [Out]        ast
    [Out] asf_stream
    [Out]         au
    [Out]        avi
    [Out]       avm2
    [Out]        bit
    [Out]        caf
    [Out]  cavsvideo
    [Out]        crc
    [Out]       data
    [Out]       daud
    [Out]      dirac
    [Out]      dnxhd
    [Out]        dts
    [Out]         dv
    [Out]       eac3
    [Out]        f4v
    [Out]        ffm
    [Out] ffmetadata
    [Out]  filmstrip
    [Out]       flac
    [Out]        flv
    [Out]   framecrc
    [Out]   framemd5
    [Out]       g722
    [Out]     g723_1
    [Out]        gif
    [Out]        gxf
    [Out]       h261
    [Out]       h263
    [Out]       h264
    [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]       latm
    [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]       null
    [Out]        nut
    [Out]        oga
    [Out]        ogg
    [Out]        oma
    [Out]       opus
    [Out]       alaw
    [Out]      mulaw
    [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]       rtsp
    [Out]        sap
    [Out]    segment
    [Out] stream_segment,ssegment
    [Out]     smjpeg
    [Out] smoothstreaming
    [Out]        sox
    [Out]      spdif
    [Out]      speex
    [Out]        srt
    [Out]        swf
    [Out]        tee
    [Out]        3g2
    [Out]        3gp
    [Out] mkvtimestamp_v2
    [Out]     truehd
    [Out] uncodedframecrc
    [Out]        vc1
    [Out]    vc1test
    [Out]        voc
    [Out]        w64
    [Out]        wav
    [Out]       webm
    [Out]     webvtt
    [Out]        wtv
    [Out]         wv
    [Out] yuv4mpegpipe


    AVCodec信息格式例如以下所看到的。
    [Enc][Video]   a64multi
    [Enc][Video]  a64multi5
    [Dec][Video]       aasc
    [Dec][Video]        aic
    [Enc][Video]  alias_pix
    [Dec][Video]  alias_pix
    [Enc][Video]        amv
    [Dec][Video]        amv
    [Dec][Video]        anm
    [Dec][Video]       ansi
    [Enc][Video]       asv1
    [Dec][Video]       asv1
    [Enc][Video]       asv2
    [Dec][Video]       asv2
    [Dec][Video]       aura
    [Dec][Video]      aura2
    [Enc][Video]       avrp
    [Dec][Video]       avrp
    [Dec][Video]       avrn
    [Dec][Video]        avs
    [Enc][Video]       avui
    [Dec][Video]       avui
    [Enc][Video]       ayuv
    [Dec][Video]       ayuv
    [Dec][Video] bethsoftvid
    [Dec][Video]        bfi
    [Dec][Video]  binkvideo
    [Enc][Video]        bmp
    [Dec][Video]        bmp
    [Dec][Video]  bmv_video
    [Dec][Video] brender_pix
    [Dec][Video]        c93
    [Dec][Video]       cavs
    [Dec][Video] cdgraphics
    [Dec][Video]       cdxl
    [Enc][Video]    cinepak
    [Dec][Video]    cinepak
    [Enc][Video]       cljr
    [Dec][Video]       cljr
    [Dec][Video]       cllc
    [Enc][Audio] comfortnoise
    [Dec][Audio] comfortnoise
    [Dec][Video]       cpia
    [Dec][Video]  camstudio
    [Dec][Video]       cyuv
    [Dec][Video]        dfa
    [Dec][Video]      dirac
    [Enc][Video]      dnxhd
    [Dec][Video]      dnxhd
    [Enc][Video]        dpx
    [Dec][Video]        dpx
    [Dec][Video] dsicinvideo
    [Enc][Video]    dvvideo
    [Dec][Video]    dvvideo
    [Dec][Video]        dxa
    [Dec][Video]     dxtory
    [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
    [Enc][Video]       ffv1
    [Dec][Video]       ffv1
    [Enc][Video]    ffvhuff
    [Dec][Video]    ffvhuff
    [Dec][Video]        fic
    [Enc][Video]    flashsv
    [Dec][Video]    flashsv
    [Enc][Video]   flashsv2
    [Dec][Video]   flashsv2
    [Dec][Video]       flic
    [Enc][Video]        flv
    [Dec][Video]        flv
    [Dec][Video]        4xm
    [Dec][Video]      fraps
    [Dec][Video]       frwu
    [Dec][Video]        g2m
    [Enc][Video]        gif
    [Dec][Video]        gif
    [Enc][Video]       h261
    [Dec][Video]       h261
    [Enc][Video]       h263
    [Dec][Video]       h263
    [Dec][Video]      h263i
    [Enc][Video]      h263p
    [Dec][Video]      h263p
    [Dec][Video]       h264
    [Dec][Video]       hevc
    [Dec][Video]  hnm4video
    [Enc][Video]    huffyuv
    [Dec][Video]    huffyuv
    [Dec][Video] idcinvideo
    [Dec][Video]        iff
    [Dec][Video]        iff
    [Dec][Video]     indeo2
    [Dec][Video]     indeo3
    [Dec][Video]     indeo4
    [Dec][Video]     indeo5
    [Dec][Video] interplayvideo
    [Enc][Video]   jpeg2000
    [Dec][Video]   jpeg2000
    [Enc][Video]     jpegls
    [Dec][Video]     jpegls
    [Dec][Video]         jv
    [Dec][Video]       kgv1
    [Dec][Video]       kmvc
    [Dec][Video]   lagarith
    [Enc][Video]      ljpeg
    [Dec][Video]       loco
    [Dec][Video]       mdec
    [Dec][Video]      mimic
    [Enc][Video]      mjpeg
    [Dec][Video]      mjpeg
    [Dec][Video]     mjpegb
    [Dec][Video]    mmvideo
    [Dec][Video] motionpixels
    [Enc][Video] mpeg1video
    [Dec][Video] mpeg1video
    [Enc][Video] mpeg2video
    [Dec][Video] mpeg2video
    [Enc][Video]      mpeg4
    [Dec][Video]      mpeg4
    [Dec][Video]  mpegvideo
    [Dec][Video]       msa1
    [Dec][Video]  msmpeg4v1
    [Enc][Video]  msmpeg4v2
    [Dec][Video]  msmpeg4v2
    [Enc][Video]    msmpeg4
    [Dec][Video]    msmpeg4
    [Dec][Video]      msrle
    [Dec][Video]       mss1
    [Dec][Video]       mss2
    [Enc][Video]   msvideo1
    [Dec][Video]   msvideo1
    [Dec][Video]       mszh
    [Dec][Video]       mts2
    [Dec][Video]       mvc1
    [Dec][Video]       mvc2
    [Dec][Video]      mxpeg
    [Dec][Video]        nuv
    [Dec][Video]  paf_video
    [Enc][Video]        pam
    [Dec][Video]        pam
    [Enc][Video]        pbm
    [Dec][Video]        pbm
    [Enc][Video]        pcx
    [Dec][Video]        pcx
    [Enc][Video]        pgm
    [Dec][Video]        pgm
    [Enc][Video]     pgmyuv
    [Dec][Video]     pgmyuv
    [Dec][Video]     pictor
    [Enc][Video]        png
    [Dec][Video]        png
    [Enc][Video]        ppm
    [Dec][Video]        ppm
    [Enc][Video]     prores
    [Dec][Video]     prores
    [Enc][Video]  prores_aw
    [Enc][Video]  prores_ks
    [Dec][Video] prores_lgpl
    [Dec][Video]        ptx
    [Dec][Video]      qdraw
    [Dec][Video]       qpeg
    [Enc][Video]      qtrle
    [Dec][Video]      qtrle
    [Enc][Video]       r10k
    [Dec][Video]       r10k
    [Enc][Video]       r210
    [Dec][Video]       r210
    [Enc][Video]   rawvideo
    [Dec][Video]   rawvideo
    [Dec][Video]        rl2
    [Enc][Video]   roqvideo
    [Dec][Video]   roqvideo
    [Dec][Video]       rpza
    [Enc][Video]       rv10
    [Dec][Video]       rv10
    [Enc][Video]       rv20
    [Dec][Video]       rv20
    [Dec][Video]       rv30
    [Dec][Video]       rv40
    [Enc][Audio]      s302m
    [Dec][Audio]      s302m
    [Dec][Video]       sanm
    [Enc][Video]        sgi
    [Dec][Video]        sgi
    [Dec][Video]     sgirle
    [Dec][Video]   smackvid
    [Dec][Video]        smc
    [Dec][Video]    smvjpeg
    [Enc][Video]       snow
    [Dec][Video]       snow
    [Dec][Video]       sp5x
    [Enc][Video]    sunrast
    [Dec][Video]    sunrast
    [Enc][Video]       svq1
    [Dec][Video]       svq1
    [Dec][Video]       svq3
    [Enc][Video]      targa
    [Dec][Video]      targa
    [Dec][Video] targa_y216
    [Dec][Video]     theora
    [Dec][Video]        thp
    [Dec][Video] tiertexseqvideo
    [Enc][Video]       tiff
    [Dec][Video]       tiff
    [Dec][Video]        tmv
    [Dec][Video] truemotion1
    [Dec][Video] truemotion2
    [Dec][Video]   camtasia
    [Dec][Video]      tscc2
    [Dec][Video]        txd
    [Dec][Video] ultimotion
    [Enc][Video]    utvideo
    [Dec][Video]    utvideo
    [Enc][Video]       v210
    [Dec][Video]       v210
    [Dec][Video]      v210x
    [Enc][Video]       v308
    [Dec][Video]       v308
    [Enc][Video]       v408
    [Dec][Video]       v408
    [Enc][Video]       v410
    [Dec][Video]       v410
    [Dec][Video]         vb
    [Dec][Video]       vble
    [Dec][Video]        vc1
    [Dec][Video]   vc1image
    [Dec][Video]       vcr1
    [Dec][Video]   vmdvideo
    [Dec][Video]       vmnc
    [Dec][Video]        vp3
    [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
    [Enc][Video]       wmv1
    [Dec][Video]       wmv1
    [Enc][Video]       wmv2
    [Dec][Video]       wmv2
    [Dec][Video]       wmv3
    [Dec][Video]  wmv3image
    [Dec][Video]       wnv1
    [Dec][Video]    xan_wc3
    [Dec][Video]    xan_wc4
    [Enc][Video]        xbm
    [Dec][Video]        xbm
    [Enc][Video]      xface
    [Dec][Video]      xface
    [Dec][Video]         xl
    [Enc][Video]        xwd
    [Dec][Video]        xwd
    [Enc][Video]       y41p
    [Dec][Video]       y41p
    [Dec][Video]        yop
    [Enc][Video]       yuv4
    [Dec][Video]       yuv4
    [Dec][Video]       012v
    [Dec][Video]  zerocodec
    [Enc][Video]       zlib
    [Dec][Video]       zlib
    [Enc][Video]       zmbv
    [Dec][Video]       zmbv
    [Enc][Audio]        aac
    [Dec][Audio]        aac
    [Dec][Audio]   aac_latm
    [Enc][Audio]        ac3
    [Dec][Audio]        ac3
    [Enc][Audio]  ac3_fixed
    [Dec][Audio]  ac3_fixed
    [Enc][Audio]       alac
    [Dec][Audio]       alac
    [Dec][Audio]        als
    [Dec][Audio]      amrnb
    [Dec][Audio]      amrwb
    [Dec][Audio]        ape
    [Dec][Audio]     atrac1
    [Dec][Audio]     atrac3
    [Dec][Audio] atrac3plus
    [Dec][Audio] binkaudio_dct
    [Dec][Audio] binkaudio_rdft
    [Dec][Audio]  bmv_audio
    [Dec][Audio]       cook
    [Enc][Audio]        dca
    [Dec][Audio]        dca
    [Dec][Audio]   dsd_lsbf
    [Dec][Audio]   dsd_msbf
    [Dec][Audio] dsd_lsbf_planar
    [Dec][Audio] dsd_msbf_planar
    [Dec][Audio] dsicinaudio
    [Enc][Audio]       eac3
    [Dec][Audio]       eac3
    [Dec][Audio]       evrc
    [Dec][Audio]  wavesynth
    [Enc][Audio]       flac
    [Dec][Audio]       flac
    [Enc][Audio]     g723_1
    [Dec][Audio]     g723_1
    [Dec][Audio]       g729
    [Dec][Audio]        gsm
    [Dec][Audio]     gsm_ms
    [Dec][Audio]        iac
    [Dec][Audio]        imc
    [Dec][Audio]      mace3
    [Dec][Audio]      mace6
    [Dec][Audio]  metasound
    [Dec][Audio]        mlp
    [Dec][Audio]        mp1
    [Dec][Audio]   mp1float
    [Enc][Audio]        mp2
    [Dec][Audio]        mp2
    [Dec][Audio]   mp2float
    [Enc][Audio]   mp2fixed
    [Dec][Audio]        mp3
    [Dec][Audio]   mp3float
    [Dec][Audio]     mp3adu
    [Dec][Audio] mp3adufloat
    [Dec][Audio]     mp3on4
    [Dec][Audio] mp3on4float
    [Dec][Audio]       mpc7
    [Dec][Audio]       mpc8
    [Enc][Audio] nellymoser
    [Dec][Audio] nellymoser
    [Dec][Audio]     on2avc
    [Dec][Audio]  paf_audio
    [Dec][Audio]      qcelp
    [Dec][Audio]       qdm2
    [Enc][Audio]   real_144
    [Dec][Audio]   real_144
    [Dec][Audio]   real_288
    [Dec][Audio]       ralf
    [Dec][Audio]    shorten
    [Dec][Audio]       sipr
    [Dec][Audio]   smackaud
    [Enc][Audio]      sonic
    [Dec][Audio]      sonic
    [Enc][Audio]    sonicls
    [Dec][Audio]        tak
    [Dec][Audio]     truehd
    [Dec][Audio] truespeech
    [Enc][Audio]        tta
    [Dec][Audio]        tta
    [Dec][Audio]     twinvq
    [Dec][Audio]   vmdaudio
    [Enc][Audio]     vorbis
    [Dec][Audio]     vorbis
    [Enc][Audio]    wavpack
    [Dec][Audio]    wavpack
    [Dec][Audio] wmalossless
    [Dec][Audio]     wmapro
    [Enc][Audio]      wmav1
    [Dec][Audio]      wmav1
    [Enc][Audio]      wmav2
    [Dec][Audio]      wmav2
    [Dec][Audio]   wmavoice
    [Dec][Audio]    ws_snd1
    [Enc][Audio]   pcm_alaw
    [Dec][Audio]   pcm_alaw
    [Dec][Audio] pcm_bluray
    [Dec][Audio]    pcm_dvd
    [Enc][Audio]  pcm_f32be
    [Dec][Audio]  pcm_f32be
    [Enc][Audio]  pcm_f32le
    [Dec][Audio]  pcm_f32le
    [Enc][Audio]  pcm_f64be
    [Dec][Audio]  pcm_f64be
    [Enc][Audio]  pcm_f64le
    [Dec][Audio]  pcm_f64le
    [Dec][Audio]    pcm_lxf
    [Enc][Audio]  pcm_mulaw
    [Dec][Audio]  pcm_mulaw
    [Enc][Audio]     pcm_s8
    [Dec][Audio]     pcm_s8
    [Enc][Audio] pcm_s8_planar
    [Dec][Audio] pcm_s8_planar
    [Enc][Audio]  pcm_s16be
    [Dec][Audio]  pcm_s16be
    [Enc][Audio] pcm_s16be_planar
    [Dec][Audio] pcm_s16be_planar
    [Enc][Audio]  pcm_s16le
    [Dec][Audio]  pcm_s16le
    [Enc][Audio] pcm_s16le_planar
    [Dec][Audio] pcm_s16le_planar
    [Enc][Audio]  pcm_s24be
    [Dec][Audio]  pcm_s24be
    [Enc][Audio] pcm_s24daud
    [Dec][Audio] pcm_s24daud
    [Enc][Audio]  pcm_s24le
    [Dec][Audio]  pcm_s24le
    [Enc][Audio] pcm_s24le_planar
    [Dec][Audio] pcm_s24le_planar
    [Enc][Audio]  pcm_s32be
    [Dec][Audio]  pcm_s32be
    [Enc][Audio]  pcm_s32le
    [Dec][Audio]  pcm_s32le
    [Enc][Audio] pcm_s32le_planar
    [Dec][Audio] pcm_s32le_planar
    [Enc][Audio]     pcm_u8
    [Dec][Audio]     pcm_u8
    [Enc][Audio]  pcm_u16be
    [Dec][Audio]  pcm_u16be
    [Enc][Audio]  pcm_u16le
    [Dec][Audio]  pcm_u16le
    [Enc][Audio]  pcm_u24be
    [Dec][Audio]  pcm_u24be
    [Enc][Audio]  pcm_u24le
    [Dec][Audio]  pcm_u24le
    [Enc][Audio]  pcm_u32be
    [Dec][Audio]  pcm_u32be
    [Enc][Audio]  pcm_u32le
    [Dec][Audio]  pcm_u32le
    [Dec][Audio]   pcm_zork
    [Dec][Audio] interplay_dpcm
    [Enc][Audio]   roq_dpcm
    [Dec][Audio]   roq_dpcm
    [Dec][Audio]   sol_dpcm
    [Dec][Audio]   xan_dpcm
    [Dec][Audio]  adpcm_4xm
    [Enc][Audio]  adpcm_adx
    [Dec][Audio]  adpcm_adx
    [Dec][Audio]  adpcm_afc
    [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
    [Enc][Audio]       g722
    [Dec][Audio]       g722
    [Enc][Audio]       g726
    [Dec][Audio]       g726
    [Dec][Audio]     g726le
    [Dec][Audio] adpcm_ima_amv
    [Dec][Audio] adpcm_ima_apc
    [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_oki
    [Enc][Audio] adpcm_ima_qt
    [Dec][Audio] adpcm_ima_qt
    [Dec][Audio] adpcm_ima_rad
    [Dec][Audio] adpcm_ima_smjpeg
    [Enc][Audio] adpcm_ima_wav
    [Dec][Audio] adpcm_ima_wav
    [Dec][Audio] adpcm_ima_ws
    [Enc][Audio]   adpcm_ms
    [Dec][Audio]   adpcm_ms
    [Dec][Audio] adpcm_sbpro_2
    [Dec][Audio] adpcm_sbpro_3
    [Dec][Audio] adpcm_sbpro_4
    [Enc][Audio]  adpcm_swf
    [Dec][Audio]  adpcm_swf
    [Dec][Audio]  adpcm_thp
    [Dec][Audio] adpcm_vima
    [Dec][Audio]   adpcm_xa
    [Enc][Audio] adpcm_yamaha
    [Dec][Audio] adpcm_yamaha
    [Dec][Audio]       vima
    [Enc][Other]        ssa
    [Dec][Other]        ssa
    [Enc][Other]        ass
    [Dec][Other]        ass
    [Enc][Other]     dvbsub
    [Dec][Other]     dvbsub
    [Enc][Other]     dvdsub
    [Dec][Other]     dvdsub
    [Dec][Other]    jacosub
    [Dec][Other]   microdvd
    [Enc][Other]   mov_text
    [Dec][Other]   mov_text
    [Dec][Other]       mpl2
    [Dec][Other]     pgssub
    [Dec][Other]        pjs
    [Dec][Other]   realtext
    [Dec][Other]       sami
    [Enc][Other]        srt
    [Dec][Other]        srt
    [Enc][Other]     subrip
    [Dec][Other]     subrip
    [Dec][Other]  subviewer
    [Dec][Other] subviewer1
    [Dec][Other]       text
    [Dec][Other]    vplayer
    [Dec][Other]     webvtt
    [Enc][Other]       xsub
    [Dec][Other]       xsub
    [Enc][Audio]     libgsm
    [Dec][Audio]     libgsm
    [Enc][Audio]  libgsm_ms
    [Dec][Audio]  libgsm_ms
    [Enc][Audio]    libilbc
    [Dec][Audio]    libilbc
    [Enc][Audio] libmp3lame
    [Enc][Audio] libopencore_amrnb
    [Dec][Audio] libopencore_amrnb
    [Dec][Audio] libopencore_amrwb
    [Enc][Video] libopenjpeg
    [Dec][Video] libopenjpeg
    [Enc][Audio]    libopus
    [Dec][Audio]    libopus
    [Enc][Video] libschroedinger
    [Dec][Video] libschroedinger
    [Enc][Audio]   libspeex
    [Dec][Audio]   libspeex
    [Enc][Video]  libtheora
    [Enc][Audio] libtwolame
    [Enc][Audio] libvo_aacenc
    [Enc][Audio] libvo_amrwbenc
    [Enc][Audio]  libvorbis
    [Dec][Audio]  libvorbis
    [Enc][Video]     libvpx
    [Dec][Video]     libvpx
    [Enc][Video] libvpx-vp9
    [Dec][Video] libvpx-vp9
    [Enc][Audio] libwavpack
    [Enc][Video]    libx264
    [Enc][Video] libx264rgb
    [Enc][Video]    libx265
    [Enc][Video]    libxavs
    [Enc][Video]    libxvid
    [Dec][Video]    bintext
    [Dec][Video]       xbin
    [Dec][Video]        idf
    


    下载


    Simplest FFmpeg Player


    项目主页

    SourceForge:https://sourceforge.net/projects/simplestffmpegplayer/

    Github:https://github.com/leixiaohua1020/simplest_ffmpeg_player

    开源中国:http://git.oschina.net/leixiaohua1020/simplest_ffmpeg_player

    CSDN下载地址:http://download.csdn.net/detail/leixiaohua1020/8924321


    本程序实现了视频文件的解码和显示(支持HEVC。H.264,MPEG2等)。


    是最简单的FFmpeg视频解码方面的教程。
    通过学习本样例能够了解FFmpeg的解码流程。
    项目包括6个工程:

    simplest_ffmpeg_player:标准版,FFmpeg学习的開始。
    simplest_ffmpeg_player_su:SU(SDL Update)版,增加了简单的SDL的Event。
    simplest_ffmpeg_decoder:一个包括了封装格式处理功能的解码器。使用了libavcodec和libavformat。
    simplest_ffmpeg_decoder_pure:一个纯净的解码器。仅仅使用libavcodec(没有使用libavformat)。
    simplest_video_play_sdl2:使用SDL2播放YUV的样例。


    simplest_ffmpeg_helloworld:输出FFmpeg类库的信息。

  • 相关阅读:
    Linux进程间通信:父子进程通过信号通信,实现交替数数,时间间隔1秒
    Ubuntu18 给terminal改个漂亮的命令行提示符
    int型、char*、string、的swap算法
    C++中的友元函数的总结
    C++内联函数
    static作用,静态成员变量和静态成员函数
    9——对象的创建和撤销,构造函数和析构函数
    如何用敏捷搞垮一个团队?
    .Net核心中间件httpContext不支持并发读写 Concurrent reads or writes are not supported.
    CentOS 7 MySQL5.7 多实例(多端口)
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6794533.html
Copyright © 2020-2023  润新知