我原先的配置是这样的:
./configure \
--enable-shared \
--enable-static \
--prefix=$PWD/_install \
--cross-prefix=aarch64-mix210-linux- \
--arch=arm \
--target-os=linux \
--enable-gpl \
--extra-cflags=-I/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/include \
--extra-ldflags=-L/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/lib \
--enable-ffmpeg \
--enable-libx264
配置报错:
查看/ffbuild/config.log
"unsatisfied condition: defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4"
WARNING: aarch64-mix210-linux-pkg-config not found, library detection may fail.
aarch64-mix210-linux-gcc: error: missing argument to '-mcpu='
后面发现是我--arch
参数没写对,应该是--arch=arm64
,而不是--arch=arm
改成这样,就能成功配置了
./configure \
--enable-shared \
--enable-static \
--prefix=$PWD/_install \
--cross-prefix=aarch64-mix210-linux- \
--arch=arm64 \
--target-os=linux \
--enable-gpl \
--extra-cflags=-I/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/include \
--extra-ldflags=-L/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/lib \
--enable-ffmpeg \
--enable-libx264
结果:
root@ddb1c49f7457:/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/FFmpeg-n4.3.5# ./configure \
> --enable-shared \
> --enable-static \
> --prefix=$PWD/_install \
> --cross-prefix=aarch64-mix210-linux- \
> --arch=arm64 \
> --target-os=linux \
> --enable-gpl \
> --extra-cflags=-I/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/include \
> --extra-ldflags=-L/heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/x264-master/_install/lib \
> --enable-ffmpeg \
> --enable-libx264
install prefix /heop/workspace/hik_h9v1.2_code_20220618/hik_h9v1.2_code/demo/ky_x264FFmpegCompile/FFmpeg-n4.3.5/_install
source path .
C compiler aarch64-mix210-linux-gcc
C library glibc
host C compiler gcc
host C library glibc
ARCH aarch64 (generic)
big-endian no
runtime cpu detection yes
NEON enabled yes
VFP enabled yes
debug symbols yes
strip symbols yes
optimize for size no
optimizations yes
static yes
shared yes
postprocessing support yes
network support yes
threading support pthreads
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled yes
makeinfo enabled no
makeinfo supports HTML noExternal libraries:
iconv libx264External libraries providing hardware acceleration:
v4l2_m2mLibraries:
avcodec avdevice avfilter avformat avutil postproc swresample swscalePrograms:
ffmpeg ffprobeEnabled decoders:
aac adpcm_ima_wav avrp dsd_msbf gsm loco mss2 pcm_s64le rv10 tiff wavpack
aac_fixed adpcm_ima_ws avs dsd_msbf_planar gsm_ms m101 msvideo1 pcm_s8 rv20 tmv webp
aac_latm adpcm_ms avui dsicinaudio h261 mace3 mszh pcm_s8_planar rv30 truehd webvtt
aasc adpcm_mtaf ayuv dsicinvideo h263 mace6 mts2 pcm_u16be rv40 truemotion1 wmalossless
ac3 adpcm_psx bethsoftvid dss_sp h263_v4l2m2m magicyuv mv30 pcm_u16le s302m truemotion2 wmapro
ac3_fixed adpcm_sbpro_2 bfi dst h263i mdec mvc1 pcm_u24be sami truemotion2rt wmav1
acelp_kelvin adpcm_sbpro_3 bink dvaudio h263p metasound mvc2 pcm_u24le sanm truespeech wmav2
adpcm_4xm adpcm_sbpro_4 binkaudio_dct dvbsub h264 microdvd mvdv pcm_u32be sbc tscc2 wmavoice
adpcm_adx adpcm_swf binkaudio_rdft dvdsub h264_v4l2m2m mimic mxpeg pcm_u32le scpr tta wmv1
adpcm_afc adpcm_thp bintext dvvideo hap mjpeg nellymoser pcm_u8 sdx2_dpcm twinvq wmv2
adpcm_agm adpcm_thp_le bitpacked dxtory hca mjpegb notchlc pcm_vidc sgi txd wmv3
adpcm_aica adpcm_vima bmp dxv hcom mlp nuv pcx sgirle ulti wmv3image
adpcm_argo adpcm_xa bmv_audio eac3 hevc mmvideo on2avc pfm sheervideo utvideo wnv1
adpcm_ct adpcm_yamaha bmv_video eacmv hevc_v4l2m2m motionpixels opus pgm shorten v210 wrapped_avframe
adpcm_dtk adpcm_zork brender_pix eamad hnm4_video movtext paf_audio pgmyuv sipr v210x ws_snd1
adpcm_ea agm c93 eatgq hq_hqa mp1 paf_video pgssub siren v308 xan_dpcm
adpcm_ea_maxis_xa aic cavs eatgv hqx mp1float pam pictor smackaud v408 xan_wc3
adpcm_ea_r1 alac ccaption eatqi huffyuv mp2 pbm pixlet smacker v410 xan_wc4
adpcm_ea_r2 alias_pix cdgraphics eightbps hymt mp2float pcm_alaw pjs smc vb xbin
adpcm_ea_r3 als cdtoons eightsvx_exp iac mp3 pcm_bluray ppm smvjpeg vble xbm
adpcm_ea_xas amrnb cdxl eightsvx_fib idcin mp3adu pcm_dvd prores snow vc1 xface
adpcm_g722 amrwb cfhd escape124 idf mp3adufloat pcm_f16le prosumer sol_dpcm vc1_v4l2m2m xl
adpcm_g726 amv cinepak escape130 iff_ilbm mp3float pcm_f24le psd sonic vc1image xma1
adpcm_g726le anm clearvideo evrc ilbc mp3on4 pcm_f32be ptx sp5x vcr1 xma2
adpcm_ima_alp ansi cljr ffv1 imc mp3on4float pcm_f32le qcelp speedhq vmdaudio xpm
adpcm_ima_amv ape cllc ffvhuff imm4 mpc7 pcm_f64be qdm2 srt vmdvideo xsub
adpcm_ima_apc aptx comfortnoise ffwavesynth imm5 mpc8 pcm_f64le qdmc ssa vmnc xwd
adpcm_ima_apm aptx_hd cook fic indeo2 mpeg1_v4l2m2m pcm_lxf qdraw stl vorbis y41p
adpcm_ima_cunning arbc cpia fits indeo3 mpeg1video pcm_mulaw qpeg subrip vp3 ylc
adpcm_ima_dat4 ass cscd flac indeo4 mpeg2_v4l2m2m pcm_s16be qtrle subviewer vp4 yop
adpcm_ima_dk3 asv1 cyuv flic indeo5 mpeg2video pcm_s16be_planar r10k subviewer1 vp5 yuv4
adpcm_ima_dk4 asv2 dca flv interplay_acm mpeg4 pcm_s16le r210 sunrast vp6 zero12v
adpcm_ima_ea_eacs atrac1 dds fmvc interplay_dpcm mpeg4_v4l2m2m pcm_s16le_planar ra_144 svq1 vp6a
adpcm_ima_ea_sead atrac3 derf_dpcm fourxm interplay_video mpegvideo pcm_s24be ra_288 svq3 vp6f
adpcm_ima_iss atrac3al dfa fraps jacosub mpl2 pcm_s24daud ralf tak vp7
adpcm_ima_mtf atrac3p dirac frwu jpeg2000 msa1 pcm_s24le rawvideo targa vp8
adpcm_ima_oki atrac3pal dnxhd g723_1 jpegls msmpeg4v1 pcm_s24le_planar realtext targa_y216 vp8_v4l2m2m
adpcm_ima_qt atrac9 dolby_e g729 jv msmpeg4v2 pcm_s32be rl2 text vp9
adpcm_ima_rad aura dpx gdv kgv1 msmpeg4v3 pcm_s32le roq theora vp9_v4l2m2m
adpcm_ima_smjpeg aura2 dsd_lsbf gif kmvc msrle pcm_s32le_planar roq_dpcm thp vplayer
adpcm_ima_ssi avrn dsd_lsbf_planar gremlin_dpcm lagarith mss1 pcm_s64be rpza tiertexseqvideo vqaEnabled encoders:
a64multi alac dca h263 mp2 pcm_f32be pcm_s32le_planar pgmyuv sbc utvideo xbm
a64multi5 alias_pix dnxhd h263_v4l2m2m mp2fixed pcm_f32le pcm_s64be ppm sgi v210 xface
aac amv dpx h263p mpeg1video pcm_f64be pcm_s64le prores snow v308 xsub
ac3 aptx dvbsub h264_v4l2m2m mpeg2video pcm_f64le pcm_s8 prores_aw sonic v408 xwd
ac3_fixed aptx_hd dvdsub hevc_v4l2m2m mpeg4 pcm_mulaw pcm_s8_planar prores_ks sonic_ls v410 y41p
adpcm_adx ass dvvideo huffyuv mpeg4_v4l2m2m pcm_s16be pcm_u16be qtrle srt vc2 yuv4
adpcm_g722 asv1 eac3 jpeg2000 msmpeg4v2 pcm_s16be_planar pcm_u16le r10k ssa vorbis
adpcm_g726 asv2 ffv1 jpegls msmpeg4v3 pcm_s16le pcm_u24be r210 subrip vp8_v4l2m2m
adpcm_g726le avrp ffvhuff libx264 msvideo1 pcm_s16le_planar pcm_u24le ra_144 sunrast wavpack
adpcm_ima_qt avui fits libx264rgb nellymoser pcm_s24be pcm_u32be rawvideo svq1 webvtt
adpcm_ima_ssi ayuv flac ljpeg opus pcm_s24daud pcm_u32le roq targa wmav1
adpcm_ima_wav bmp flv magicyuv pam pcm_s24le pcm_u8 roq_dpcm text wmav2
adpcm_ms cinepak g723_1 mjpeg pbm pcm_s24le_planar pcm_vidc rv10 tiff wmv1
adpcm_swf cljr gif mlp pcm_alaw pcm_s32be pcx rv20 truehd wmv2
adpcm_yamaha comfortnoise h261 movtext pcm_dvd pcm_s32le pgm s302m tta wrapped_avframeEnabled hwaccels:Enabled parsers:
aac avs2 dirac dvd_nav gif hevc mpegaudio rv30 vc1 webp
aac_latm bmp dnxhd dvdsub gsm jpeg2000 mpegvideo rv40 vorbis xma
ac3 cavsvideo dpx flac h261 mjpeg opus sbc vp3
adx cook dvaudio g723_1 h263 mlp png sipr vp8
av1 dca dvbsub g729 h264 mpeg4video pnm tak vp9Enabled demuxers:
aa ass dcstr fwse image2pipe ircam mpc8 pcm_f32le redspark sox vmd
aac ast derf g722 image_bmp_pipe iss mpegps pcm_f64be rl2 spdif vobsub
ac3 au dfa g723_1 image_dds_pipe iv8 mpegts pcm_f64le rm srt voc
acm av1 dhav g726 image_dpx_pipe ivf mpegtsraw pcm_mulaw roq stl vpk
act avi dirac g726le image_exr_pipe ivr mpegvideo pcm_s16be rpl str vplayer
adf avr dnxhd g729 image_gif_pipe jacosub mpjpeg pcm_s16le rsd subviewer vqf
adp avs dsf gdv image_j2k_pipe jv mpl2 pcm_s24be rso subviewer1 w64
ads avs2 dsicin genh image_jpeg_pipe kux mpsub pcm_s24le rtp sup wav
adx bethsoftvid dss gif image_jpegls_pipe kvag msf pcm_s32be rtsp svag wc3
aea bfi dts gsm image_pam_pipe live_flv msnwc_tcp pcm_s32le s337m swf webm_dash_manifest
afc bfstm dtshd gxf image_pbm_pipe lmlm4 mtaf pcm_s8 sami tak webvtt
aiff bink dv h261 image_pcx_pipe loas mtv pcm_u16be sap tedcaptions wsaud
aix bintext dvbsub h263 image_pgm_pipe lrc musx pcm_u16le sbc thp wsd
alp bit dvbtxt h264 image_pgmyuv_pipe lvf mv pcm_u24be sbg threedostr wsvqa
amr bmv dxa hca image_pictor_pipe lxf mvi pcm_u24le scc tiertexseq wtv
amrnb boa ea hcom image_png_pipe m4v mxf pcm_u32be sdp tmv wv
amrwb brstm ea_cdata hevc image_ppm_pipe matroska mxg pcm_u32le sdr2 truehd wve
anm c93 eac3 hls image_psd_pipe mgsts nc pcm_u8 sds tta xa
apc caf epaf hnm image_qdraw_pipe microdvd nistsphere pcm_vidc sdx tty xbin
ape cavsvideo ffmetadata ico image_sgi_pipe mjpeg nsp pjs segafilm txd xmv
apm cdg filmstrip idcin image_sunrast_pipe mjpeg_2000 nsv pmp ser ty xvag
apng cdxl fits idf image_svg_pipe mlp nut pp_bnk shorten v210 xwma
aptx cine flac iff image_tiff_pipe mlv nuv pva siff v210x yop
aptx_hd codec2 flic ifv image_webp_pipe mm ogg pvf sln vag yuv4mpegpipe
aqtitle codec2raw flv ilbc image_xpm_pipe mmf oma qcp smacker vc1
argo_asf concat fourxm image2 image_xwd_pipe mov paf r3d smjpeg vc1t
asf data frm image2_alias_pix ingenient mp3 pcm_alaw rawvideo smush vividas
asf_o daud fsb image2_brender_pix ipmovie mpc pcm_f32be realtext sol vivoEnabled muxers:
a64 avm2 eac3 g726le ipod mlp mxf pcm_mulaw pcm_vidc smjpeg uncodedframecrc
ac3 avs2 f4v gif ircam mmf mxf_d10 pcm_s16be psp smoothstreaming vc1
adts bit ffmetadata gsm ismv mov mxf_opatom pcm_s16le rawvideo sox vc1t
adx caf fifo gxf ivf mp2 null pcm_s24be rm spdif voc
aiff cavsvideo fifo_test h261 jacosub mp3 nut pcm_s24le roq spx w64
amr codec2 filmstrip h263 kvag mp4 oga pcm_s32be rso srt wav
apng codec2raw fits h264 latm mpeg1system ogg pcm_s32le rtp stream_segment webm
aptx crc flac hash lrc mpeg1vcd ogv pcm_s8 rtp_mpegts streamhash webm_chunk
aptx_hd dash flv hds m4v mpeg1video oma pcm_u16be rtsp sup webm_dash_manifest
asf data framecrc hevc matroska mpeg2dvd opus pcm_u16le sap swf webp
asf_stream daud framehash hls matroska_audio mpeg2svcd pcm_alaw pcm_u24be sbc tee webvtt
ass dirac framemd5 ico md5 mpeg2video pcm_f32be pcm_u24le scc tg2 wtv
ast dnxhd g722 ilbc microdvd mpeg2vob pcm_f32le pcm_u32be segafilm tgp wv
au dts g723_1 image2 mjpeg mpegts pcm_f64be pcm_u32le segment truehd yuv4mpegpipe
avi dv g726 image2pipe mkvtimestamp_v2 mpjpeg pcm_f64le pcm_u8 singlejpeg ttaEnabled protocols:
async crypto file hls icecast mmst rtmp srtp tee unix
cache data ftp http md5 pipe rtmpt subfile udp
concat ffrtmphttp gopher httpproxy mmsh prompeg rtp tcp udpliteEnabled filters:
abench aloop astreamselect colorkey displace freezedetect lenscorrection noformat repeatfields sidechaingate tlut2
abitscope alphaextract asubboost colorlevels dnn_processing freezeframes life noise replaygain sidedata tmedian
acompressor alphamerge atadenoise colormatrix doubleweave fspp limiter normalize reverse sierpinski tmix
acontrast amerge atempo colorspace drawbox gblur loop null rgbashift signalstats tonemap
acopy ametadata atrim compand drawgraph geq loudnorm nullsink rgbtestsrc signature tpad
acrossfade amix avectorscope compensationdelay drawgrid gradfun lowpass nullsrc roberts silencedetect transpose
acrossover amovie avgblur concat drmeter gradients lowshelf oscilloscope rotate silenceremove treble
acrusher amplify axcorrelate convolution dynaudnorm graphmonitor lumakey overlay sab sinc tremolo
acue amultiply bandpass convolve earwax greyedge lut owdenoise scale sine trim
addroi anequalizer bandreject copy ebur128 haas lut1d pad scale2ref smartblur unpremultiply
adeclick anlmdn bass cover_rect edgedetect haldclut lut2 pal100bars scdet smptebars unsharp
adeclip anlms bbox crop elbg haldclutsrc lut3d pal75bars scroll smptehdbars untile
adelay anoisesrc bench cropdetect entropy hdcd lutrgb palettegen select sobel uspp
aderivative anull bilateral crossfeed eq headphone lutyuv paletteuse selectivecolor spectrumsynth v360
adrawgraph anullsink biquad crystalizer equalizer hflip mandelbrot pan sendcmd split vaguedenoiser
aecho anullsrc bitplanenoise cue erosion highpass maskedclamp perms separatefields spp vectorscope
aemphasis apad blackdetect curves extractplanes highshelf maskedmax perspective setdar sr vflip
aeval aperms blackframe datascope extrastereo hilbert maskedmerge phase setfield ssim vfrdet
aevalsrc aphasemeter blend dblur fade histeq maskedmin photosensitivity setparams stereo3d vibrance
afade aphaser bm3d dcshift fftdnoiz histogram maskedthreshold pixdesctest setpts stereotools vibrato
afftdn apulsator boxblur dctdnoiz fftfilt hqdn3d maskfun pixscope setrange stereowiden vignette
afftfilt arealtime bwdif deband field hqx mcdeint pp setsar streamselect vmafmotion
afifo aresample cas deblock fieldhint hstack mcompand pp7 settb super2xsai volume
afir areverse cellauto decimate fieldmatch hue median premultiply showcqt superequalizer volumedetect
afirsrc arnndn channelmap deconvolve fieldorder hwdownload mergeplanes prewitt showfreqs surround vstack
aformat aselect channelsplit dedot fifo hwmap mestimate pseudocolor showinfo swaprect w3fdif
agate asendcmd chorus deesser fillborders hwupload metadata psnr showpalette swapuv waveform
agraphmonitor asetnsamples chromahold deflate find_rect hysteresis midequalizer pullup showspatial tblend weave
ahistogram asetpts chromakey deflicker firequalizer idet minterpolate qp showspectrum telecine xbr
aiir asetrate chromashift dejudder flanger il mix random showspectrumpic testsrc xfade
aintegral asettb ciescope delogo floodfill inflate movie readeia608 showvolume testsrc2 xmedian
ainterleave ashowinfo codecview derain format interlace mpdecimate readvitc showwaves thistogram xstack
alimiter asidedata color deshake fps interleave mptestsrc realtime showwavespic threshold yadif
allpass asoftclip colorbalance despill framepack join negate remap shuffleframes thumbnail yaepblur
allrgb asplit colorchannelmixer detelecine framerate kerndeint nlmeans removegrain shuffleplanes tile yuvtestsrc
allyuv astats colorhold dilation framestep lagfun nnedi removelogo sidechaincompress tinterlace zoompanEnabled bsfs:
aac_adtstoasc chomp extract_extradata h264_redundant_pps imx_dump_header mp3_header_decompress null remove_extradata vp9_metadata
av1_frame_merge dca_core filter_units hapqa_extract mjpeg2jpeg mpeg2_metadata opus_metadata text2movsub vp9_raw_reorder
av1_frame_split dump_extradata h264_metadata hevc_metadata mjpega_dump_header mpeg4_unpack_bframes pcm_rechunk trace_headers vp9_superframe
av1_metadata eac3_core h264_mp4toannexb hevc_mp4toannexb mov2textsub noise prores_metadata truehd_core vp9_superframe_splitEnabled indevs:
fbdev lavfi oss v4l2Enabled outdevs:
fbdev oss v4l2License: GPL version 2 or laterWARNING: aarch64-mix210-linux-pkg-config not found, library detection may fail.
WARNING: using libx264 without pkg-config
参考文章:海康H9 docker环境交叉编译ffmpeg x264