ffmpeg windows编译 - Tue, Nov 19, 2019
FFmpeg在windows平台的编译
1. 概述
A complete, cross-platform solution to record, convert and stream audio and video.
官网:http://ffmpeg.org/
2. 编译环境
2.1 mysys
https://www.kaisawind.com/2019/11/19/2019-11-19-mysys/
2.2 必备软件
yasm、pkg-config、diffutils
pacman -S yasm pkg-config diffutils
3. 配置
$ ./configure --enable-shared --arch=x86_64 --prefix=./ffmpeg-4.2.1-mingw-dev
install prefix /usr/local
source path .
C compiler gcc
C library mingw64
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
standalone assembly yes
x86 assembler yasm
MMX enabled yes
MMXEXT enabled yes
3DNow! enabled yes
3DNow! extended enabled yes
SSE enabled yes
SSSE3 enabled yes
AESNI enabled yes
AVX enabled yes
AVX2 enabled yes
AVX-512 enabled yes
XOP enabled yes
FMA3 enabled yes
FMA4 enabled yes
i686 features enabled yes
CMOV is fast yes
EBX available yes
EBP available yes
debug symbols yes
strip symbols yes
optimize for size no
optimizations yes
static no
shared yes
postprocessing support no
network support yes
threading support w32threads
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled no
makeinfo enabled no
makeinfo supports HTML no
External libraries:
bzlib iconv lzma schannel zlib
External libraries providing hardware acceleration:
d3d11va dxva2
Libraries:
avcodec avdevice avfilter avformat avutil swresample swscale
Programs:
ffmpeg ffprobe
Enabled decoders:
aac adpcm_thp bmv_audio eatgv iac mp3adufloat pcm_mulaw r10k subviewer1 vp6a
aac_fixed adpcm_thp_le bmv_video eatqi idcin mp3float pcm_s16be r210 sunrast vp6f
aac_latm adpcm_vima brender_pix eightbps idf mp3on4 pcm_s16be_planar ra_144 svq1 vp7
aasc adpcm_xa c93 eightsvx_exp iff_ilbm mp3on4float pcm_s16le ra_288 svq3 vp8
ac3 adpcm_yamaha cavs eightsvx_fib ilbc mpc7 pcm_s16le_planar ralf tak vp9
ac3_fixed agm ccaption escape124 imc mpc8 pcm_s24be rasc targa vplayer
acelp_kelvin aic cdgraphics escape130 imm4 mpeg1video pcm_s24daud rawvideo targa_y216 vqa
adpcm_4xm alac cdxl evrc imm5 mpeg2video pcm_s24le realtext tdsc wavpack
adpcm_adx alias_pix cfhd exr indeo2 mpeg4 pcm_s24le_planar rl2 text wcmv
adpcm_afc als cinepak ffv1 indeo3 mpegvideo pcm_s32be roq theora webp
adpcm_agm amrnb clearvideo ffvhuff indeo4 mpl2 pcm_s32le roq_dpcm thp webvtt
adpcm_aica amrwb cljr ffwavesynth indeo5 msa1 pcm_s32le_planar rpza tiertexseqvideo wmalossless
adpcm_ct amv cllc fic interplay_acm mscc pcm_s64be rscc tiff wmapro
adpcm_dtk anm comfortnoise fits interplay_dpcm msmpeg4v1 pcm_s64le rv10 tmv wmav1
adpcm_ea ansi cook flac interplay_video msmpeg4v2 pcm_s8 rv20 truehd wmav2
adpcm_ea_maxis_xa ape cpia flashsv jacosub msmpeg4v3 pcm_s8_planar rv30 truemotion1 wmavoice
adpcm_ea_r1 apng cscd flashsv2 jpeg2000 msrle pcm_u16be rv40 truemotion2 wmv1
adpcm_ea_r2 aptx cyuv flic jpegls mss1 pcm_u16le s302m truemotion2rt wmv2
adpcm_ea_r3 aptx_hd dca flv jv mss2 pcm_u24be sami truespeech wmv3
adpcm_ea_xas arbc dds fmvc kgv1 msvideo1 pcm_u24le sanm tscc wmv3image
adpcm_g722 ass dfa fourxm kmvc mszh pcm_u32be sbc tscc2 wnv1
adpcm_g726 asv1 dirac fraps lagarith mts2 pcm_u32le scpr tta wrapped_avframe
adpcm_g726le asv2 dnxhd frwu loco mvc1 pcm_u8 screenpresso twinvq ws_snd1
adpcm_ima_amv atrac1 dolby_e g2m lscr mvc2 pcm_vidc sdx2_dpcm txd xan_dpcm
adpcm_ima_apc atrac3 dpx g723_1 m101 mwsc pcm_zork sgi ulti xan_wc3
adpcm_ima_dat4 atrac3al dsd_lsbf g729 mace3 mxpeg pcx sgirle utvideo xan_wc4
adpcm_ima_dk3 atrac3p dsd_lsbf_planar gdv mace6 nellymoser pgm sheervideo v210 xbin
adpcm_ima_dk4 atrac3pal dsd_msbf gif magicyuv nuv pgmyuv shorten v210x xbm
adpcm_ima_ea_eacs atrac9 dsd_msbf_planar gremlin_dpcm mdec on2avc pgssub sipr v308 xface
adpcm_ima_ea_sead aura dsicinaudio gsm metasound opus pictor smackaud v408 xl
adpcm_ima_iss aura2 dsicinvideo gsm_ms microdvd paf_audio pixlet smacker v410 xma1
adpcm_ima_oki avrn dss_sp h261 mimic paf_video pjs smc vb xma2
adpcm_ima_qt avrp dst h263 mjpeg pam png smvjpeg vble xpm
adpcm_ima_rad avs dvaudio h263i mjpegb pbm ppm snow vc1 xsub
adpcm_ima_smjpeg avui dvbsub h263p mlp pcm_alaw prores sol_dpcm vc1image xwd
adpcm_ima_wav ayuv dvdsub h264 mmvideo pcm_bluray prosumer sonic vcr1 y41p
adpcm_ima_ws bethsoftvid dvvideo hap motionpixels pcm_dvd psd sp5x vmdaudio ylc
adpcm_ms bfi dxa hcom movtext pcm_f16le ptx speedhq vmdvideo yop
adpcm_mtaf bink dxtory hevc mp1 pcm_f24le qcelp srgc vmnc yuv4
adpcm_psx binkaudio_dct dxv hnm4_video mp1float pcm_f32be qdm2 srt vorbis zero12v
adpcm_sbpro_2 binkaudio_rdft eac3 hq_hqa mp2 pcm_f32le qdmc ssa vp3 zerocodec
adpcm_sbpro_3 bintext eacmv hqx mp2float pcm_f64be qdraw stl vp4 zlib
adpcm_sbpro_4 bitpacked eamad huffyuv mp3 pcm_f64le qpeg subrip vp5 zmbv
adpcm_swf bmp eatgq hymt mp3adu pcm_lxf qtrle subviewer vp6
Enabled encoders:
a64multi amv dpx h263p msvideo1 pcm_s24be pcm_u32le roq text wmv2
a64multi5 apng dvbsub huffyuv nellymoser pcm_s24daud pcm_u8 roq_dpcm tiff wrapped_avframe
aac aptx dvdsub jpeg2000 opus pcm_s24le pcm_vidc rv10 truehd xbm
ac3 aptx_hd dvvideo jpegls pam pcm_s24le_planar pcx rv20 tta xface
ac3_fixed ass eac3 ljpeg pbm pcm_s32be pgm s302m utvideo xsub
adpcm_adx asv1 ffv1 magicyuv pcm_alaw pcm_s32le pgmyuv sbc v210 xwd
adpcm_g722 asv2 ffvhuff mjpeg pcm_dvd pcm_s32le_planar png sgi v308 y41p
adpcm_g726 avrp fits mlp pcm_f32be pcm_s64be ppm snow v408 yuv4
adpcm_g726le avui flac movtext pcm_f32le pcm_s64le prores sonic v410 zlib
adpcm_ima_qt ayuv flashsv mp2 pcm_f64be pcm_s8 prores_aw sonic_ls vc2 zmbv
adpcm_ima_wav bmp flashsv2 mp2fixed pcm_f64le pcm_s8_planar prores_ks srt vorbis
adpcm_ms cinepak flv mpeg1video pcm_mulaw pcm_u16be qtrle ssa wavpack
adpcm_swf cljr g723_1 mpeg2video pcm_s16be pcm_u16le r10k subrip webvtt
adpcm_yamaha comfortnoise gif mpeg4 pcm_s16be_planar pcm_u24be r210 sunrast wmav1
alac dca h261 msmpeg4v2 pcm_s16le pcm_u24le ra_144 svq1 wmav2
alias_pix dnxhd h263 msmpeg4v3 pcm_s16le_planar pcm_u32be rawvideo targa wmv1
Enabled hwaccels:
h264_d3d11va h264_dxva2 hevc_d3d11va2 mpeg2_d3d11va mpeg2_dxva2 vc1_d3d11va2 vp9_d3d11va vp9_dxva2 wmv3_d3d11va2
h264_d3d11va2 hevc_d3d11va hevc_dxva2 mpeg2_d3d11va2 vc1_d3d11va vc1_dxva2 vp9_d3d11va2 wmv3_d3d11va wmv3_dxva2
Enabled parsers:
aac avs2 dirac dvd_nav gif hevc mpegvideo rv40 vorbis
aac_latm bmp dnxhd dvdsub gsm mjpeg opus sbc vp3
ac3 cavsvideo dpx flac h261 mlp png sipr vp8
adx cook dvaudio g723_1 h263 mpeg4video pnm tak vp9
av1 dca dvbsub g729 h264 mpegaudio rv30 vc1 xma
Enabled demuxers:
aa avr dss h261 image_pictor_pipe mgsts nsp pva smacker vividas
aac avs dts h263 image_png_pipe microdvd nsv pvf smjpeg vivo
ac3 avs2 dtshd h264 image_ppm_pipe mjpeg nut qcp smush vmd
acm bethsoftvid dv hcom image_psd_pipe mjpeg_2000 nuv r3d sol vobsub
act bfi dvbsub hevc image_qdraw_pipe mlp ogg rawvideo sox voc
adf bfstm dvbtxt hls image_sgi_pipe mlv oma realtext spdif vpk
adp bink dxa hnm image_sunrast_pipe mm paf redspark srt vplayer
ads bintext ea ico image_svg_pipe mmf pcm_alaw rl2 stl vqf
adx bit ea_cdata idcin image_tiff_pipe mov pcm_f32be rm str w64
aea bmv eac3 idf image_webp_pipe mp3 pcm_f32le roq subviewer wav
afc boa epaf iff image_xpm_pipe mpc pcm_f64be rpl subviewer1 wc3
aiff brstm ffmetadata ifv image_xwd_pipe mpc8 pcm_f64le rsd sup webm_dash_manifest
aix c93 filmstrip ilbc ingenient mpegps pcm_mulaw rso svag webvtt
amr caf fits image2 ipmovie mpegts pcm_s16be rtp swf wsaud
amrnb cavsvideo flac image2_alias_pix ircam mpegtsraw pcm_s16le rtsp tak wsd
amrwb cdg flic image2_brender_pix iss mpegvideo pcm_s24be s337m tedcaptions wsvqa
anm cdxl flv image2pipe iv8 mpjpeg pcm_s24le sami thp wtv
apc cine fourxm image_bmp_pipe ivf mpl2 pcm_s32be sap threedostr wv
ape codec2 frm image_dds_pipe ivr mpsub pcm_s32le sbc tiertexseq wve
apng codec2raw fsb image_dpx_pipe jacosub msf pcm_s8 sbg tmv xa
aptx concat g722 image_exr_pipe jv msnwc_tcp pcm_u16be scc truehd xbin
aptx_hd data g723_1 image_gif_pipe kux mtaf pcm_u16le sdp tta xmv
aqtitle daud g726 image_j2k_pipe live_flv mtv pcm_u24be sdr2 tty xvag
asf dcstr g726le image_jpeg_pipe lmlm4 musx pcm_u24le sds txd xwma
asf_o dfa g729 image_jpegls_pipe loas mv pcm_u32be sdx ty yop
ass dhav gdv image_pam_pipe lrc mvi pcm_u32le segafilm v210 yuv4mpegpipe
ast dirac genh image_pbm_pipe lvf mxf pcm_u8 ser v210x
au dnxhd gif image_pcx_pipe lxf mxg pcm_vidc shorten vag
av1 dsf gsm image_pgm_pipe m4v nc pjs siff vc1
avi dsicin gxf image_pgmyuv_pipe matroska nistsphere pmp sln vc1t
Enabled muxers:
a64 bit fifo_test h264 matroska mpeg2video pcm_f64be pcm_vidc sox w64
ac3 caf filmstrip hash matroska_audio mpeg2vob pcm_f64le psp spdif wav
adts cavsvideo fits hds md5 mpegts pcm_mulaw rawvideo spx webm
adx codec2 flac hevc microdvd mpjpeg pcm_s16be rm srt webm_chunk
aiff codec2raw flv hls mjpeg mxf pcm_s16le roq stream_segment webm_dash_manifest
amr crc framecrc ico mkvtimestamp_v2 mxf_d10 pcm_s24be rso streamhash webp
apng dash framehash ilbc mlp mxf_opatom pcm_s24le rtp sup webvtt
aptx data framemd5 image2 mmf null pcm_s32be rtp_mpegts swf wtv
aptx_hd daud g722 image2pipe mov nut pcm_s32le rtsp tee wv
asf dirac g723_1 ipod mp2 oga pcm_s8 sap tg2 yuv4mpegpipe
asf_stream dnxhd g726 ircam mp3 ogg pcm_u16be sbc tgp
ass dts g726le ismv mp4 ogv pcm_u16le scc truehd
ast dv gif ivf mpeg1system oma pcm_u24be segafilm tta
au eac3 gsm jacosub mpeg1vcd opus pcm_u24le segment uncodedframecrc
avi f4v gxf latm mpeg1video pcm_alaw pcm_u32be singlejpeg vc1
avm2 ffmetadata h261 lrc mpeg2dvd pcm_f32be pcm_u32le smjpeg vc1t
avs2 fifo h263 m4v mpeg2svcd pcm_f32le pcm_u8 smoothstreaming voc
Enabled protocols:
async data gopher https mmst rtmps srtp tls
cache ffrtmphttp hls icecast pipe rtmpt subfile udp
concat file http md5 prompeg rtmpts tcp udplite
crypto ftp httpproxy mmsh rtmp rtp tee
Enabled filters:
abench aloop astats compand dynaudnorm hdcd maskedclamp prewitt showspatial threshold
abitscope alphaextract astreamselect compensationdelay earwax headphone maskedmax pseudocolor showspectrum thumbnail
acompressor alphamerge atadenoise concat ebur128 hflip maskedmerge psnr showspectrumpic tile
acontrast amerge atempo convolution edgedetect highpass maskedmin qp showvolume tlut2
acopy ametadata atrim convolve elbg highshelf maskfun random showwaves tmix
acrossfade amix avectorscope copy entropy hilbert mcompand readeia608 showwavespic tonemap
acrossover amovie avgblur crop equalizer histogram median readvitc shuffleframes tpad
acrusher amplify bandpass crossfeed erosion hqx mergeplanes realtime shuffleplanes transpose
acue amultiply bandreject crystalizer extractplanes hstack mestimate remap sidechaincompress treble
addroi anequalizer bass cue extrastereo hue metadata removegrain sidechaingate tremolo
adeclick anlmdn bbox curves fade hwdownload midequalizer removelogo sidedata trim
adeclip anlms bench datascope fftdnoiz hwmap minterpolate replaygain sierpinski unpremultiply
adelay anoisesrc bilateral dcshift fftfilt hwupload mix reverse signalstats unsharp
aderivative anull biquad dctdnoiz field hysteresis movie rgbashift silencedetect v360
adrawgraph anullsink bitplanenoise deband fieldhint idet negate rgbtestsrc silenceremove vectorscope
aecho anullsrc blackdetect deblock fieldmatch il nlmeans roberts sinc vflip
aemphasis apad blend decimate fieldorder inflate noformat rotate sine vfrdet
aeval aperms bm3d deconvolve fifo interleave noise scale smptebars vibrance
aevalsrc aphasemeter bwdif dedot fillborders join normalize scale2ref smptehdbars vibrato
afade aphaser cellauto deesser firequalizer lagfun null scroll sobel vignette
afftdn apulsator channelmap deflate flanger lenscorrection nullsink select spectrumsynth vmafmotion
afftfilt arealtime channelsplit deflicker floodfill life nullsrc selectivecolor split volume
afifo aresample chorus dejudder format limiter oscilloscope sendcmd sr volumedetect
afir areverse chromahold derain fps loop overlay separatefields ssim vstack
aformat arnndn chromakey deshake framepack loudnorm pad setdar stereotools w3fdif
agate aselect chromashift despill framerate lowpass pal100bars setfield stereowiden waveform
agraphmonitor asendcmd ciescope detelecine framestep lowshelf pal75bars setparams streamselect weave
ahistogram asetnsamples codecview dilation freezedetect lumakey palettegen setpts superequalizer xbr
aiir asetpts color displace gblur lut paletteuse setrange surround xmedian
aintegral asetrate colorbalance dnn_processing gradfun lut1d pan setsar swaprect xstack
ainterleave asettb colorchannelmixer doubleweave graphmonitor lut2 perms settb swapuv yadif
alimiter ashowinfo colorhold drawbox greyedge lut3d photosensitivity showcqt tblend yuvtestsrc
allpass asidedata colorkey drawgraph haas lutrgb pixdesctest showfreqs telecine zoompan
allrgb asoftclip colorlevels drawgrid haldclut lutyuv pixscope showinfo testsrc
allyuv asplit colorspace drmeter haldclutsrc mandelbrot premultiply showpalette testsrc2
Enabled bsfs:
aac_adtstoasc chomp extract_extradata h264_redundant_pps imx_dump_header mp3_header_decompress null trace_headers vp9_superframe
av1_frame_merge dca_core filter_units hapqa_extract mjpeg2jpeg mpeg2_metadata prores_metadata truehd_core vp9_superframe_split
av1_frame_split dump_extradata h264_metadata hevc_metadata mjpega_dump_header mpeg4_unpack_bframes remove_extradata vp9_metadata
av1_metadata eac3_core h264_mp4toannexb hevc_mp4toannexb mov2textsub noise text2movsub vp9_raw_reorder
Enabled indevs:
dshow gdigrab lavfi vfwcap
Enabled outdevs:
License: LGPL version 2.1 or later
config.asm is unchanged
libavutil/avconfig.h is unchanged
libavfilter/filter_list.c is unchanged
libavcodec/codec_list.c is unchanged
libavcodec/parser_list.c is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/demuxer_list.c is unchanged
libavformat/muxer_list.c is unchanged
libavdevice/indev_list.c is unchanged
libavdevice/outdev_list.c is unchanged
libavformat/protocol_list.c is unchanged
ffbuild/config.sh is unchanged
4. make
fftools/ffprobe.c:2644:41: note: in expansion of macro 'print_val'
2644 | if (stream->codec->rc_max_rate > 0) print_val ("max_bit_rate", stream->codec->rc_max_rate, unit_bit_per_second_str);
| ^~~~~~~~~
In file included from fftools/ffprobe.c:31:
./libavformat/avformat.h:885:21: note: declared here
885 | AVCodecContext *codec;
| ^~~~~
fftools/ffprobe.c: In function 'open_input_file':
fftools/ffprobe.c:2937:13: warning: 'codec' is deprecated [-Wdeprecated-declarations]
2937 | ist->dec_ctx->coded_width = stream->codec->coded_width;
| ^~~
In file included from fftools/ffprobe.c:31:
./libavformat/avformat.h:885:21: note: declared here
885 | AVCodecContext *codec;
| ^~~~~
fftools/ffprobe.c:2938:13: warning: 'codec' is deprecated [-Wdeprecated-declarations]
2938 | ist->dec_ctx->coded_height = stream->codec->coded_height;
| ^~~
In file included from fftools/ffprobe.c:31:
./libavformat/avformat.h:885:21: note: declared here
885 | AVCodecContext *codec;
| ^~~~~
LD ffprobe_g.exe
STRIP ffprobe.exe