[FFmpeg-user] FFmpeg compile error
Ram Shaffir
ram at ram.sh
Sat Dec 5 13:20:55 EET 2020
Hello all,
I have never compiled FFmpeg and have zero knowledge nor experience with the process; I use 32bit FFmpeg version 4.1.6 on a 32bit raspberry pi, I wanted to use h264_v4l2m2m for hardware-accelerated encoding using 64 bit FFmpeg v4.3 instead of the 32bit h264_omx, my steps were as follow:
I updated the PI to 64bit, now running:
Linux Dev 5.4.79-v8+ #1373 SMP PREEMPT Mon Nov 23 13:32:41 GMT 2020 aarch64 GNU/Linux
I then cloned the FFmpeg:
git clone --depth 1 --branch release/4.3 https://github.com/FFmpeg/FFmpeg.git
and lastly, I have configured and ran the script with the following parameters:
sudo ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --extra-libs="-lpthread -lm" --bindir="$HOME/bin" --enable-gpl --enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --arch=aarch64 --enable-libxml2 --enable-libwebp --enable-libdrm
install prefix /home/pi/ffmpeg_build
source path .
C compiler gcc
C library glibc
ARCH aarch64 (generic)
big-endian no
runtime cpu detection yes
NEON enabled no
VFP enabled no
debug symbols yes
strip symbols yes
optimize for size no
optimizations yes
static yes
shared no
postprocessing support yes
network support yes
threading support pthreads
safe bitstream reader yes
texi2html enabled no
perl enabled yes
pod2man enabled yes
makeinfo enabled yes
makeinfo supports HTML yes
External libraries:
alsa libdrm libvorbis libxcb lzma
gnutls libfdk_aac libvpx libxcb_shape sdl2
iconv libfreetype libwebp libxcb_shm sndio
libaom libmp3lame libx264 libxcb_xfixes xlib
libass libopus libx265 libxml2 zlib
External libraries providing hardware acceleration:
v4l2_m2m vaapi vdpau
Libraries:
avcodec avfilter avutil swresample
avdevice avformat postproc swscale
Programs:
ffmpeg ffplay ffprobe
Enabled decoders:
aac atrac9 flic mp3 pgm truemotion2
aac_fixed aura flv mp3adu pgmyuv truemotion2rt
aac_latm aura2 fmvc mp3adufloat pgssub truespeech
aasc avrn fourxm mp3float pictor tscc
ac3 avrp fraps mp3on4 pixlet tscc2
ac3_fixed avs frwu mp3on4float pjs tta
acelp_kelvin avui g2m mpc7 png twinvq
adpcm_4xm ayuv g723_1 mpc8 ppm txd
adpcm_adx bethsoftvid g729 mpeg1_v4l2m2m prores ulti
adpcm_afc bfi gdv mpeg1video prosumer utvideo
adpcm_agm bink gif mpeg2_v4l2m2m psd v210
adpcm_aica binkaudio_dct gremlin_dpcm mpeg2video ptx v210x
adpcm_argo binkaudio_rdft gsm mpeg4 qcelp v308
adpcm_ct bintext gsm_ms mpeg4_v4l2m2m qdm2 v408
adpcm_dtk bitpacked h261 mpegvideo qdmc v410
adpcm_ea bmp h263 mpl2 qdraw vb
adpcm_ea_maxis_xa bmv_audio h263_v4l2m2m msa1 qpeg vble
adpcm_ea_r1 bmv_video h263i mscc qtrle vc1
adpcm_ea_r2 brender_pix h263p msmpeg4v1 r10k vc1_v4l2m2m
adpcm_ea_r3 c93 h264 msmpeg4v2 r210 vc1image
adpcm_ea_xas cavs h264_v4l2m2m msmpeg4v3 ra_144 vcr1
adpcm_g722 ccaption hap msrle ra_288 vmdaudio
adpcm_g726 cdgraphics hca mss1 ralf vmdvideo
adpcm_g726le cdtoons hcom mss2 rasc vmnc
adpcm_ima_alp cdxl hevc msvideo1 rawvideo vorbis
adpcm_ima_amv cfhd hevc_v4l2m2m mszh realtext vp3
adpcm_ima_apc cinepak hnm4_video mts2 rl2 vp4
adpcm_ima_apm clearvideo hq_hqa mv30 roq vp5
adpcm_ima_cunning cljr hqx mvc1 roq_dpcm vp6
adpcm_ima_dat4 cllc huffyuv mvc2 rpza vp6a
adpcm_ima_dk3 comfortnoise hymt mvdv rscc vp6f
adpcm_ima_dk4 cook iac mvha rv10 vp7
adpcm_ima_ea_eacs cpia idcin mwsc rv20 vp8
adpcm_ima_ea_sead cscd idf mxpeg rv30 vp8_v4l2m2m
adpcm_ima_iss cyuv iff_ilbm nellymoser rv40 vp9
adpcm_ima_mtf dca ilbc notchlc s302m vp9_v4l2m2m
adpcm_ima_oki dds imc nuv sami vplayer
adpcm_ima_qt derf_dpcm imm4 on2avc sanm vqa
adpcm_ima_rad dfa imm5 opus sbc wavpack
adpcm_ima_smjpeg dirac indeo2 paf_audio scpr wcmv
adpcm_ima_ssi dnxhd indeo3 paf_video screenpresso webp
adpcm_ima_wav dolby_e indeo4 pam sdx2_dpcm webvtt
adpcm_ima_ws dpx indeo5 pbm sgi wmalossless
adpcm_ms dsd_lsbf interplay_acm pcm_alaw sgirle wmapro
adpcm_mtaf dsd_lsbf_planar interplay_dpcm pcm_bluray sheervideo wmav1
adpcm_psx dsd_msbf interplay_video pcm_dvd shorten wmav2
adpcm_sbpro_2 dsd_msbf_planar jacosub pcm_f16le sipr wmavoice
adpcm_sbpro_3 dsicinaudio jpeg2000 pcm_f24le siren wmv1
adpcm_sbpro_4 dsicinvideo jpegls pcm_f32be smackaud wmv2
adpcm_swf dss_sp jv pcm_f32le smacker wmv3
adpcm_thp dst kgv1 pcm_f64be smc wmv3image
adpcm_thp_le dvaudio kmvc pcm_f64le smvjpeg wnv1
adpcm_vima dvbsub lagarith pcm_lxf snow wrapped_avframe
adpcm_xa dvdsub libaom_av1 pcm_mulaw sol_dpcm ws_snd1
adpcm_yamaha dvvideo libfdk_aac pcm_s16be sonic xan_dpcm
adpcm_zork dxa libopus pcm_s16be_planar sp5x xan_wc3
agm dxtory libvorbis pcm_s16le speedhq xan_wc4
aic dxv libvpx_vp8 pcm_s16le_planar srgc xbin
alac eac3 libvpx_vp9 pcm_s24be srt xbm
alias_pix eacmv loco pcm_s24daud ssa xface
als eamad lscr pcm_s24le stl xl
amrnb eatgq m101 pcm_s24le_planar subrip xma1
amrwb eatgv mace3 pcm_s32be subviewer xma2
amv eatqi mace6 pcm_s32le subviewer1 xpm
anm eightbps magicyuv pcm_s32le_planar sunrast xsub
ansi eightsvx_exp mdec pcm_s64be svq1 xwd
ape eightsvx_fib metasound pcm_s64le svq3 y41p
apng escape124 microdvd pcm_s8 tak ylc
aptx escape130 mimic pcm_s8_planar targa yop
aptx_hd evrc mjpeg pcm_u16be targa_y216 yuv4
arbc exr mjpegb pcm_u16le tdsc zero12v
ass ffv1 mlp pcm_u24be text zerocodec
asv1 ffvhuff mmvideo pcm_u24le theora zlib
asv2 ffwavesynth motionpixels pcm_u32be thp zmbv
atrac1 fic movtext pcm_u32le tiertexseqvideo
atrac3 fits mp1 pcm_u8 tiff
atrac3al flac mp1float pcm_vidc tmv
atrac3p flashsv mp2 pcx truehd
atrac3pal flashsv2 mp2float pfm truemotion1
Enabled encoders:
a64multi comfortnoise libmp3lame pcm_alaw pcx tiff
a64multi5 dca libopus pcm_dvd pgm truehd
aac dnxhd libvorbis pcm_f32be pgmyuv tta
ac3 dpx libvpx_vp8 pcm_f32le png utvideo
ac3_fixed dvbsub libvpx_vp9 pcm_f64be ppm v210
adpcm_adx dvdsub libwebp pcm_f64le prores v308
adpcm_g722 dvvideo libwebp_anim pcm_mulaw prores_aw v408
adpcm_g726 eac3 libx264 pcm_s16be prores_ks v410
adpcm_g726le ffv1 libx264rgb pcm_s16be_planar qtrle vc2
adpcm_ima_qt ffvhuff libx265 pcm_s16le r10k vorbis
adpcm_ima_ssi fits ljpeg pcm_s16le_planar r210 vp8_v4l2m2m
adpcm_ima_wav flac magicyuv pcm_s24be ra_144 vp8_vaapi
adpcm_ms flashsv mjpeg pcm_s24daud rawvideo vp9_vaapi
adpcm_swf flashsv2 mjpeg_vaapi pcm_s24le roq wavpack
adpcm_yamaha flv mlp pcm_s24le_planar roq_dpcm webvtt
alac g723_1 movtext pcm_s32be rv10 wmav1
alias_pix gif mp2 pcm_s32le rv20 wmav2
amv h261 mp2fixed pcm_s32le_planar s302m wmv1
apng h263 mpeg1video pcm_s64be sbc wmv2
aptx h263_v4l2m2m mpeg2_vaapi pcm_s64le sgi wrapped_avframe
aptx_hd h263p mpeg2video pcm_s8 snow xbm
ass h264_v4l2m2m mpeg4 pcm_s8_planar sonic xface
asv1 h264_vaapi mpeg4_v4l2m2m pcm_u16be sonic_ls xsub
asv2 hevc_v4l2m2m msmpeg4v2 pcm_u16le srt xwd
avrp hevc_vaapi msmpeg4v3 pcm_u24be ssa y41p
avui huffyuv msvideo1 pcm_u24le subrip yuv4
ayuv jpeg2000 nellymoser pcm_u32be sunrast zlib
bmp jpegls opus pcm_u32le svq1 zmbv
cinepak libaom_av1 pam pcm_u8 targa
cljr libfdk_aac pbm pcm_vidc text
Enabled hwaccels:
h263_vaapi hevc_vaapi mpeg1_vdpau mpeg4_vaapi vc1_vdpau wmv3_vaapi
h264_vaapi hevc_vdpau mpeg2_vaapi mpeg4_vdpau vp8_vaapi wmv3_vdpau
h264_vdpau mjpeg_vaapi mpeg2_vdpau vc1_vaapi vp9_vaapi
Enabled parsers:
aac cook dvdsub h264 opus vc1
aac_latm dca flac hevc png vorbis
ac3 dirac g723_1 jpeg2000 pnm vp3
adx dnxhd g729 mjpeg rv30 vp8
av1 dpx gif mlp rv40 vp9
avs2 dvaudio gsm mpeg4video sbc webp
bmp dvbsub h261 mpegaudio sipr xma
cavsvideo dvd_nav h263 mpegvideo tak
Enabled demuxers:
aa codec2 hls lrc pcm_s24le srt
aac codec2raw hnm lvf pcm_s32be stl
ac3 concat ico lxf pcm_s32le str
acm dash idcin m4v pcm_s8 subviewer
act data idf matroska pcm_u16be subviewer1
adf daud iff mgsts pcm_u16le sup
adp dcstr ifv microdvd pcm_u24be svag
ads derf ilbc mjpeg pcm_u24le swf
adx dfa image2 mjpeg_2000 pcm_u32be tak
aea dhav image2_alias_pix mlp pcm_u32le tedcaptions
afc dirac image2_brender_pix mlv pcm_u8 thp
aiff dnxhd image2pipe mm pcm_vidc threedostr
aix dsf image_bmp_pipe mmf pjs tiertexseq
alp dsicin image_dds_pipe mov pmp tmv
amr dss image_dpx_pipe mp3 pp_bnk truehd
amrnb dts image_exr_pipe mpc pva tta
amrwb dtshd image_gif_pipe mpc8 pvf tty
anm dv image_j2k_pipe mpegps qcp txd
apc dvbsub image_jpeg_pipe mpegts r3d ty
ape dvbtxt image_jpegls_pipe mpegtsraw rawvideo v210
apm dxa image_pam_pipe mpegvideo realtext v210x
apng ea image_pbm_pipe mpjpeg redspark vag
aptx ea_cdata image_pcx_pipe mpl2 rl2 vc1
aptx_hd eac3 image_pgm_pipe mpsub rm vc1t
aqtitle epaf image_pgmyuv_pipe msf roq vividas
argo_asf ffmetadata image_pictor_pipe msnwc_tcp rpl vivo
asf filmstrip image_png_pipe mtaf rsd vmd
asf_o fits image_ppm_pipe mtv rso vobsub
ass flac image_psd_pipe musx rtp voc
ast flic image_qdraw_pipe mv rtsp vpk
au flv image_sgi_pipe mvi s337m vplayer
av1 fourxm image_sunrast_pipe mxf sami vqf
avi frm image_svg_pipe mxg sap w64
avr fsb image_tiff_pipe nc sbc wav
avs fwse image_webp_pipe nistsphere sbg wc3
avs2 g722 image_xpm_pipe nsp scc webm_dash_manifest
bethsoftvid g723_1 image_xwd_pipe nsv sdp webvtt
bfi g726 ingenient nut sdr2 wsaud
bfstm g726le ipmovie nuv sds wsd
bink g729 ircam ogg sdx wsvqa
bintext gdv iss oma segafilm wtv
bit genh iv8 paf ser wv
bmv gif ivf pcm_alaw shorten wve
boa gsm ivr pcm_f32be siff xa
brstm gxf jacosub pcm_f32le sln xbin
c93 h261 jv pcm_f64be smacker xmv
caf h263 kux pcm_f64le smjpeg xvag
cavsvideo h264 kvag pcm_mulaw smush xwma
cdg hca live_flv pcm_s16be sol yop
cdxl hcom lmlm4 pcm_s16le sox yuv4mpegpipe
cine hevc loas pcm_s24be spdif
Enabled muxers:
a64 dts ico mpeg2dvd pcm_s8 srt
ac3 dv ilbc mpeg2svcd pcm_u16be stream_segment
adts eac3 image2 mpeg2video pcm_u16le streamhash
adx f4v image2pipe mpeg2vob pcm_u24be sup
aiff ffmetadata ipod mpegts pcm_u24le swf
amr fifo ircam mpjpeg pcm_u32be tee
apng fifo_test ismv mxf pcm_u32le tg2
aptx filmstrip ivf mxf_d10 pcm_u8 tgp
aptx_hd fits jacosub mxf_opatom pcm_vidc truehd
asf flac kvag null psp tta
asf_stream flv latm nut rawvideo uncodedframecrc
ass framecrc lrc oga rm vc1
ast framehash m4v ogg roq vc1t
au framemd5 matroska ogv rso voc
avi g722 matroska_audio oma rtp w64
avm2 g723_1 md5 opus rtp_mpegts wav
avs2 g726 microdvd pcm_alaw rtsp webm
bit g726le mjpeg pcm_f32be sap webm_chunk
caf gif mkvtimestamp_v2 pcm_f32le sbc webm_dash_manifest
cavsvideo gsm mlp pcm_f64be scc webp
codec2 gxf mmf pcm_f64le segafilm webvtt
codec2raw h261 mov pcm_mulaw segment wtv
crc h263 mp2 pcm_s16be singlejpeg wv
dash h264 mp3 pcm_s16le smjpeg yuv4mpegpipe
data hash mp4 pcm_s24be smoothstreaming
daud hds mpeg1system pcm_s24le sox
dirac hevc mpeg1vcd pcm_s32be spdif
dnxhd hls mpeg1video pcm_s32le spx
Enabled protocols:
async file https prompeg srtp udplite
cache ftp icecast rtmp subfile unix
concat gopher md5 rtmps tcp
crypto hls mmsh rtmpt tee
data http mmst rtmpts tls
ffrtmphttp httpproxy pipe rtp udp
Enabled filters:
abench asidedata deflate hqdn3d perspective smartblur
abitscope asoftclip deflicker hqx phase smptebars
acompressor asplit deinterlace_vaapi hstack photosensitivity smptehdbars
acontrast ass dejudder hue pixdesctest sobel
acopy astats delogo hwdownload pixscope spectrumsynth
acrossfade astreamselect denoise_vaapi hwmap pp split
acrossover asubboost derain hwupload pp7 spp
acrusher atadenoise deshake hysteresis premultiply sr
acue atempo despill idet prewitt ssim
addroi atrim detelecine il procamp_vaapi stereo3d
adeclick avectorscope dilation inflate pseudocolor stereotools
adeclip avgblur displace interlace psnr stereowiden
adelay axcorrelate dnn_processing interleave pullup streamselect
aderivative bandpass doubleweave join qp subtitles
adrawgraph bandreject drawbox kerndeint random super2xsai
aecho bass drawgraph lagfun readeia608 superequalizer
aemphasis bbox drawgrid lenscorrection readvitc surround
aeval bench drawtext life realtime swaprect
aevalsrc bilateral drmeter limiter remap swapuv
afade biquad dynaudnorm loop removegrain tblend
afftdn bitplanenoise earwax loudnorm removelogo telecine
afftfilt blackdetect ebur128 lowpass repeatfields testsrc
afifo blackframe edgedetect lowshelf replaygain testsrc2
afir blend elbg lumakey reverse thistogram
afirsrc bm3d entropy lut rgbashift threshold
aformat boxblur eq lut1d rgbtestsrc thumbnail
agate bwdif equalizer lut2 roberts tile
agraphmonitor cas erosion lut3d rotate tinterlace
ahistogram cellauto extractplanes lutrgb sab tlut2
aiir channelmap extrastereo lutyuv scale tmedian
aintegral channelsplit fade mandelbrot scale2ref tmix
ainterleave chorus fftdnoiz maskedclamp scale_vaapi tonemap
alimiter chromahold fftfilt maskedmax scdet tonemap_vaapi
allpass chromakey field maskedmerge scroll tpad
allrgb chromashift fieldhint maskedmin select transpose
allyuv ciescope fieldmatch maskedthreshold selectivecolor transpose_vaapi
aloop codecview fieldorder maskfun sendcmd treble
alphaextract color fifo mcdeint separatefields tremolo
alphamerge colorbalance fillborders mcompand setdar trim
amerge colorchannelmixer find_rect median setfield unpremultiply
ametadata colorhold firequalizer mergeplanes setparams unsharp
amix colorkey flanger mestimate setpts untile
amovie colorlevels floodfill metadata setrange uspp
amplify colormatrix format midequalizer setsar v360
amultiply colorspace fps minterpolate settb vaguedenoiser
anequalizer compand framepack mix sharpness_vaapi vectorscope
anlmdn compensationdelay framerate movie showcqt vflip
anlms concat framestep mpdecimate showfreqs vfrdet
anoisesrc convolution freezedetect mptestsrc showinfo vibrance
anull convolve freezeframes negate showpalette vibrato
anullsink copy fspp nlmeans showspatial vignette
anullsrc cover_rect gblur nnedi showspectrum vmafmotion
apad crop geq noformat showspectrumpic volume
aperms cropdetect gradfun noise showvolume volumedetect
aphasemeter crossfeed gradients normalize showwaves vstack
aphaser crystalizer graphmonitor null showwavespic w3fdif
apulsator cue greyedge nullsink shuffleframes waveform
arealtime curves haas nullsrc shuffleplanes weave
aresample datascope haldclut oscilloscope sidechaincompress xbr
areverse dblur haldclutsrc overlay sidechaingate xfade
arnndn dcshift hdcd owdenoise sidedata xmedian
aselect dctdnoiz headphone pad sierpinski xstack
asendcmd deband hflip pal100bars signalstats yadif
asetnsamples deblock highpass pal75bars signature yaepblur
asetpts decimate highshelf palettegen silencedetect yuvtestsrc
asetrate deconvolve hilbert paletteuse silenceremove zoompan
asettb dedot histeq pan sinc
ashowinfo deesser histogram perms sine
Enabled bsfs:
aac_adtstoasc dump_extradata h264_redundant_pps mjpega_dump_header null trace_headers
av1_frame_merge eac3_core hapqa_extract mov2textsub opus_metadata truehd_core
av1_frame_split extract_extradata hevc_metadata mp3_header_decompress pcm_rechunk vp9_metadata
av1_metadata filter_units hevc_mp4toannexb mpeg2_metadata prores_metadata vp9_raw_reorder
chomp h264_metadata imx_dump_header mpeg4_unpack_bframes remove_extradata vp9_superframe
dca_core h264_mp4toannexb mjpeg2jpeg noise text2movsub vp9_superframe_split
Enabled indevs:
alsa kmsgrab oss v4l2
fbdev lavfi sndio xcbgrab
Enabled outdevs:
alsa oss sndio xv
fbdev sdl2 v4l2
License: nonfree and unredistributable
config.h 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
///////////////////////////// END OF OUTPUT /////////////////////////////
The next part was trying to run the make command but here I have encountered the following errors:
pi at Dev:~/FFmpeg $ sudo make -j4
CC libavfilter/vf_curves.o
CC libavfilter/vf_edgedetect.o
CC libavfilter/vf_elbg.o
CC libavfilter/vf_entropy.o
CC libavfilter/vf_eq.o
CC libavfilter/vf_extractplanes.o
In file included from ./libavutil/bswap.h:38,
from ./libavutil/intreadwrite.h:25,
from libavfilter/vf_curves.c:25:
libavfilter/vf_curves.c: In function ‘parse_psfile’:
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
__asm__("rev16 %w0, %w0" : "+r"(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
__asm__("rev16 %w0, %w0" : "+r"(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
__asm__("rev16 %w0, %w0" : "+r"(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
__asm__("rev16 %w0, %w0" : "+r"(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid 'asm': invalid operand for code 'w'
CC libavfilter/vf_fade.o
CC libavfilter/vf_fftdnoiz.o
CC libavfilter/vf_fftfilt.o
make: *** [ffbuild/common.mak:59: libavfilter/vf_curves.o] Error 1
make: *** Waiting for unfinished jobs....
///////////////////////////// END OF OUTPUT /////////////////////////////
What is it that I miss in the process that prevents the make from running without those errors?
Thank you all in advance!
Cheers,
Ram
More information about the ffmpeg-user
mailing list