Page 1 of 1
Apparent libavcodec version detection bug
Posted: Fri Apr 14, 2017 10:37 pm
by GTKNarwhal
A week ago I was able to install MakeMKV 1.10.5 on an Ubuntu 16.04 system without issue. Yesterday, the installation failed while running
configure in the OSS directory, with the error message:
. I was using the latest version (3.3) from ffmpeg.org, so I had a difficult time believing this. The only difference I can detect between now and a week ago is ffmpeg went from 3.2.? to 3.3.
Guessing that
configure is not accurately detecting the libavcodec version number, I commented out the version check (lines 15969 - 15971) from
configure I was able to complete the installation and am currently transcoding the BD of
A Clockwork Orange.
Re: Apparent libavcodec version detection bug
Posted: Wed Apr 26, 2017 11:56 am
by BrionS
I got this exact same problem today. Downloaded and built ffmpeg 3.3, installed, and when I went to build makemkv-oss-1.10.5 it failed to configure claiming libavcodec was too old.
Code: Select all
brion@lightyear:~/Downloads/makemkv/ffmpeg-3.3$ ./configure --prefix=/tmp/ffmpeg --enable-static --disable-shared --enable-pic --disable-yasm
install prefix /tmp/ffmpeg
source path .
C compiler gcc
C library glibc
ARCH x86 (generic)
big-endian no
runtime cpu detection yes
yasm no
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
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 yes
shared no
postprocessing support no
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 no
External libraries:
iconv libxcb libxcb_shape libxcb_xfixes xlib zlib
External libraries providing hardware acceleration:
cuda cuvid nvenc
Libraries:
avcodec avfilter avformat avutil swresample swscale
avdevice
Programs:
ffmpeg ffprobe ffserver
Enabled decoders:
aac aura ffv1 movtext pcm_s8 ssa
aac_fixed aura2 ffvhuff mp1 pcm_s8_planar stl
aac_latm avrn ffwavesynth mp1float pcm_u16be subrip
aasc avrp fic mp2 pcm_u16le subviewer
ac3 avs flac mp2float pcm_u24be subviewer1
ac3_fixed avui flashsv mp3 pcm_u24le sunrast
adpcm_4xm ayuv flashsv2 mp3adu pcm_u32be svq1
adpcm_adx bethsoftvid flic mp3adufloat pcm_u32le svq3
adpcm_afc bfi flv mp3float pcm_u8 tak
adpcm_aica bink fmvc mp3on4 pcm_zork targa
adpcm_ct binkaudio_dct fourxm mp3on4float pcx targa_y216
adpcm_dtk binkaudio_rdft fraps mpc7 pgm tdsc
adpcm_ea bintext frwu mpc8 pgmyuv text
adpcm_ea_maxis_xa bmp g2m mpeg1_cuvid pgssub theora
adpcm_ea_r1 bmv_audio g723_1 mpeg1video pictor thp
adpcm_ea_r2 bmv_video g729 mpeg2_cuvid pixlet tiertexseqvideo
adpcm_ea_r3 brender_pix gif mpeg2video pjs tiff
adpcm_ea_xas c93 gsm mpeg4 png tmv
adpcm_g722 cavs gsm_ms mpeg4_cuvid ppm truehd
adpcm_g726 ccaption h261 mpegvideo prores truemotion1
adpcm_g726le cdgraphics h263 mpl2 prores_lgpl truemotion2
adpcm_ima_amv cdxl h263i msa1 psd truemotion2rt
adpcm_ima_apc cfhd h263p msmpeg4v1 ptx truespeech
adpcm_ima_dat4 cinepak h264 msmpeg4v2 qcelp tscc
adpcm_ima_dk3 clearvideo h264_cuvid msmpeg4v3 qdm2 tscc2
adpcm_ima_dk4 cljr hap msrle qdmc tta
adpcm_ima_ea_eacs cllc hevc mss1 qdraw twinvq
adpcm_ima_ea_sead comfortnoise hevc_cuvid mss2 qpeg txd
adpcm_ima_iss cook hnm4_video msvideo1 qtrle ulti
adpcm_ima_oki cpia hq_hqa mszh r10k utvideo
adpcm_ima_qt cscd hqx mts2 r210 v210
adpcm_ima_rad cyuv huffyuv mvc1 ra_144 v210x
adpcm_ima_smjpeg dca iac mvc2 ra_288 v308
adpcm_ima_wav dds idcin mxpeg ralf v408
adpcm_ima_ws dfa idf nellymoser rawvideo v410
adpcm_ms dirac iff_ilbm nuv realtext vb
adpcm_mtaf dnxhd imc on2avc rl2 vble
adpcm_psx dpx indeo2 opus roq vc1
adpcm_sbpro_2 dsd_lsbf indeo3 paf_audio roq_dpcm vc1_cuvid
adpcm_sbpro_3 dsd_lsbf_planar indeo4 paf_video rpza vc1image
adpcm_sbpro_4 dsd_msbf indeo5 pam rscc vcr1
adpcm_swf dsd_msbf_planar interplay_acm pbm rv10 vmdaudio
adpcm_thp dsicinaudio interplay_dpcm pcm_alaw rv20 vmdvideo
adpcm_thp_le dsicinvideo interplay_video pcm_bluray rv30 vmnc
adpcm_vima dss_sp jacosub pcm_dvd rv40 vorbis
adpcm_xa dst jpeg2000 pcm_f16le s302m vp3
adpcm_yamaha dvaudio jpegls pcm_f24le sami vp5
aic dvbsub jv pcm_f32be sanm vp6
alac dvdsub kgv1 pcm_f32le scpr vp6a
alias_pix dvvideo kmvc pcm_f64be screenpresso vp6f
als dxa lagarith pcm_f64le sdx2_dpcm vp7
amrnb dxtory loco pcm_lxf sgi vp8
amrwb dxv m101 pcm_mulaw sgirle vp8_cuvid
amv eac3 mace3 pcm_s16be sheervideo vp9
anm eacmv mace6 pcm_s16be_planar shorten vp9_cuvid
ansi eamad magicyuv pcm_s16le sipr vplayer
ape eatgq mdec pcm_s16le_planar smackaud vqa
apng eatgv metasound pcm_s24be smacker wavpack
ass eatqi microdvd pcm_s24daud smc webp
asv1 eightbps mimic pcm_s24le smvjpeg webvtt
asv2 eightsvx_exp mjpeg pcm_s24le_planar snow wmalossless
atrac1 eightsvx_fib mjpeg_cuvid pcm_s32be sol_dpcm wmapro
atrac3 escape124 mjpegb pcm_s32le sonic wmav1
atrac3al escape130 mlp pcm_s32le_planar sp5x wmav2
atrac3p evrc mmvideo pcm_s64be speedhq wmavoice
atrac3pal exr motionpixels pcm_s64le srt wmv1
wmv2 xan_dpcm xbm xma2 y41p zero12v
wmv3 xan_wc3 xface xpm ylc zerocodec
wmv3image xan_wc4 xl xsub yop zlib
wnv1 xbin xma1 xwd yuv4 zmbv
ws_snd1
Enabled encoders:
a64multi comfortnoise mjpeg pcm_s16be_planar ppm tiff
a64multi5 dca mlp pcm_s16le prores truehd
aac dnxhd movtext pcm_s16le_planar prores_aw tta
ac3 dpx mp2 pcm_s24be prores_ks utvideo
ac3_fixed dvbsub mp2fixed pcm_s24daud qtrle v210
adpcm_adx dvdsub mpeg1video pcm_s24le r10k v308
adpcm_g722 dvvideo mpeg2video pcm_s24le_planar r210 v408
adpcm_g726 eac3 mpeg4 pcm_s32be ra_144 v410
adpcm_ima_qt ffv1 msmpeg4v2 pcm_s32le rawvideo vc2
adpcm_ima_wav ffvhuff msmpeg4v3 pcm_s32le_planar roq vorbis
adpcm_ms flac msvideo1 pcm_s64be roq_dpcm wavpack
adpcm_swf flashsv nellymoser pcm_s64le rv10 webvtt
adpcm_yamaha flashsv2 nvenc pcm_s8 rv20 wmav1
alac flv nvenc_h264 pcm_s8_planar s302m wmav2
alias_pix g723_1 nvenc_hevc pcm_u16be sgi wmv1
amv gif opus pcm_u16le snow wmv2
apng h261 pam pcm_u24be sonic wrapped_avframe
ass h263 pbm pcm_u24le sonic_ls xbm
asv1 h263p pcm_alaw pcm_u32be srt xface
asv2 h264_nvenc pcm_f32be pcm_u32le ssa xsub
avrp hevc_nvenc pcm_f32le pcm_u8 subrip xwd
avui huffyuv pcm_f64be pcx sunrast y41p
ayuv jpeg2000 pcm_f64le pgm svq1 yuv4
bmp jpegls pcm_mulaw pgmyuv targa zlib
cinepak ljpeg pcm_s16be png text zmbv
cljr
Enabled hwaccels:
h264_cuvid mjpeg_cuvid mpeg2_cuvid vc1_cuvid vp8_cuvid vp9_cuvid
hevc_cuvid mpeg1_cuvid mpeg4_cuvid
Enabled parsers:
aac dca dvdsub hevc png vc1
aac_latm dirac flac mjpeg pnm vorbis
ac3 dnxhd g729 mlp rv30 vp3
adx dpx gsm mpeg4video rv40 vp8
bmp dvaudio h261 mpegaudio sipr vp9
cavsvideo dvbsub h263 mpegvideo tak xma
cook dvd_nav h264 opus
Enabled demuxers:
aa dfa image2_brender_pix mlp pcm_u16be subviewer
aac dirac image2pipe mlv pcm_u16le subviewer1
ac3 dnxhd image_bmp_pipe mm pcm_u24be sup
acm dsf image_dds_pipe mmf pcm_u24le svag
act dsicin image_dpx_pipe mov pcm_u32be swf
adf dss image_exr_pipe mp3 pcm_u32le tak
adp dts image_j2k_pipe mpc pcm_u8 tedcaptions
ads dtshd image_jpeg_pipe mpc8 pjs thp
adx dv image_jpegls_pipe mpegps pmp threedostr
aea dvbsub image_pam_pipe mpegts pva tiertexseq
afc dvbtxt image_pbm_pipe mpegtsraw pvf tmv
aiff dxa image_pcx_pipe mpegvideo qcp truehd
aix ea image_pgm_pipe mpjpeg r3d tta
amr ea_cdata image_pgmyuv_pipe mpl2 rawvideo tty
anm eac3 image_pictor_pipe mpsub realtext txd
apc epaf image_png_pipe msf redspark v210
ape ffm image_ppm_pipe msnwc_tcp rl2 v210x
apng ffmetadata image_psd_pipe mtaf rm vag
aqtitle filmstrip image_qdraw_pipe mtv roq vc1
asf flac image_sgi_pipe musx rpl vc1t
asf_o flic image_sunrast_pipe mv rsd vivo
ass flv image_tiff_pipe mvi rso vmd
ast fourxm image_webp_pipe mxf rtp vobsub
au frm image_xpm_pipe mxg rtsp voc
avi fsb ingenient nc sami vpk
avr g722 ipmovie nistsphere sap vplayer
avs g723_1 ircam nsv sbg vqf
bethsoftvid g729 iss nut scc w64
bfi genh iv8 nuv sdp wav
bfstm gif ivf ogg sdr2 wc3
bink gsm ivr oma sds webm_dash_manifest
bintext gxf jacosub paf sdx webvtt
bit h261 jv pcm_alaw segafilm wsaud
bmv h263 live_flv pcm_f32be shorten wsd
boa h264 lmlm4 pcm_f32le siff wsvqa
brstm hevc loas pcm_f64be sln wtv
c93 hls lrc pcm_f64le smacker wv
caf hnm lvf pcm_mulaw smjpeg wve
cavsvideo ico lxf pcm_s16be smush xa
cdg idcin m4v pcm_s16le sol xbin
cdxl idf matroska pcm_s24be sox xmv
cine iff mgsts pcm_s24le spdif xvag
concat ilbc microdvd pcm_s32be srt xwma
data image2 mjpeg pcm_s32le stl yop
daud image2_alias_pix mjpeg_2000 pcm_s8 str yuv4mpegpipe
dcstr
Enabled muxers:
a64 eac3 image2 mpeg2dvd pcm_s24le sox
ac3 f4v image2pipe mpeg2svcd pcm_s32be spdif
adts ffm ipod mpeg2video pcm_s32le spx
adx ffmetadata ircam mpeg2vob pcm_s8 srt
aiff fifo ismv mpegts pcm_u16be stream_segment
amr filmstrip ivf mpjpeg pcm_u16le swf
apng flac jacosub mxf pcm_u24be tee
asf flv latm mxf_d10 pcm_u24le tg2
asf_stream framecrc lrc mxf_opatom pcm_u32be tgp
ass framehash m4v null pcm_u32le truehd
ast framemd5 matroska nut pcm_u8 tta
au g722 matroska_audio oga psp uncodedframecrc
avi g723_1 md5 ogg rawvideo vc1
avm2 gif microdvd ogv rm vc1t
bit gsm mjpeg oma roq voc
caf gxf mkvtimestamp_v2 opus rso w64
cavsvideo h261 mlp pcm_alaw rtp wav
crc h263 mmf pcm_f32be rtp_mpegts webm
dash h264 mov pcm_f32le rtsp webm_chunk
data hash mp2 pcm_f64be sap webm_dash_manifest
daud hds mp3 pcm_f64le scc webp
dirac hevc mp4 pcm_mulaw segment webvtt
dnxhd hls mpeg1system pcm_s16be singlejpeg wtv
dts ico mpeg1vcd pcm_s16le smjpeg wv
dv ilbc mpeg1video pcm_s24be smoothstreaming yuv4mpegpipe
Enabled protocols:
async ffrtmphttp http mmst rtp tee
cache file httpproxy pipe srtp udp
concat ftp icecast prompeg subfile udplite
crypto gopher md5 rtmp tcp unix
data hls mmsh rtmpt
Enabled filters:
abench asetpts curves highpass palettegen sidechaingate
abitscope asetrate datascope histogram paletteuse sidedata
acompressor asettb dcshift hqx pan signalstats
acrossfade ashowinfo dctdnoiz hstack perms silencedetect
acrusher asidedata deband hue pixdesctest silenceremove
adelay asplit decimate hwdownload premultiply sine
adrawgraph astats deflate hwmap prewitt smptebars
aecho astreamselect dejudder hwupload psnr smptehdbars
aemphasis atadenoise deshake hwupload_cuda qp sobel
aeval atempo detelecine hysteresis random spectrumsynth
aevalsrc atrim dilation idet readeia608 split
afade avectorscope displace il readvitc ssim
afftfilt avgblur drawbox inflate realtime stereotools
aformat bandpass drawgraph interleave remap stereowiden
agate bandreject drawgrid join removegrain streamselect
ahistogram bass dynaudnorm lenscorrection removelogo swaprect
ainterleave bbox earwax life replaygain swapuv
alimiter bench ebur128 loop reverse tblend
allpass biquad edgedetect loudnorm rgbtestsrc telecine
allrgb bitplanenoise elbg lowpass rotate testsrc
allyuv blackdetect equalizer lut scale testsrc2
aloop blend erosion lut2 scale2ref threshold
alphaextract bwdif extractplanes lut3d select thumbnail
alphamerge cellauto extrastereo lutrgb selectivecolor tile
amerge channelmap fade lutyuv sendcmd transpose
ametadata channelsplit fftfilt mandelbrot separatefields treble
amix chorus field maskedclamp setdar tremolo
amovie chromakey fieldhint maskedmerge setfield trim
anequalizer ciescope fieldmatch mergeplanes setpts unsharp
anoisesrc codecview fieldorder mestimate setsar vectorscope
anull color firequalizer metadata settb vflip
anullsink colorbalance flanger midequalizer showcqt vibrato
anullsrc colorchannelmixer format minterpolate showfreqs vignette
apad colorkey fps movie showinfo volume
aperms colorlevels framepack negate showpalette volumedetect
aphasemeter colorspace framerate nlmeans showspectrum vstack
aphaser compand framestep noformat showspectrumpic w3fdif
apulsator compensationdelay gblur noise showvolume waveform
arealtime concat gradfun null showwaves weave
aresample convolution haldclut nullsink showwavespic xbr
areverse copy haldclutsrc nullsrc shuffleframes yadif
aselect crop hdcd overlay shuffleplanes yuvtestsrc
asendcmd crystalizer hflip pad sidechaincompress zoompan
asetnsamples
Enabled bsfs:
aac_adtstoasc dump_extradata hevc_mp4toannexb mjpega_dump_header mpeg4_unpack_bframes text2movsub
chomp extract_extradata imx_dump_header mov2textsub noise vp9_superframe
dca_core h264_mp4toannexb mjpeg2jpeg mp3_header_decompress remove_extradata
Enabled indevs:
dv1394 fbdev lavfi oss v4l2 xcbgrab
Enabled outdevs:
fbdev oss v4l2
License: LGPL version 2.1 or later
Creating configuration files ...
brion@lightyear:~/Downloads/makemkv/ffmpeg-3.3$ make install
HOSTCC doc/print_options.o
...
Code: Select all
...
INSTALL libavutil/ffversion.h
INSTALL libavutil/libavutil.pc
brion@lightyear:~/Downloads/makemkv/ffmpeg-3.3$ cd ../makemkv-oss-1.10.5/
brion@lightyear:~/Downloads/makemkv/makemkv-oss-1.10.5$ PKG_CONFIG_PATH=/tmp/ffmpeg/lib/pkgconfig ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking for gawk... gawk
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for -objcopy... no
checking for objcopy... objcopy
checking for -ld... /usr/bin/ld -m elf_x86_64
checking for a BSD-compatible install... /usr/bin/install -c
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for compress2 in -lz... yes
checking openssl/opensslconf.h usability... yes
checking openssl/opensslconf.h presence... yes
checking for openssl/opensslconf.h... yes
checking for AES_encrypt in -lcrypto... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate in -lexpat... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ffmpeg... yes
checking whether LIBAVCODEC_VERSION_MAJOR is declared... yes
checking LIBAVCODEC_VERSION_MAJOR... 57
checking for AVFrame.nb_samples... yes
checking whether AV_SAMPLE_FMT_U8P is declared... yes
checking for avcodec_encode_audio2... no
configure: error: The libavcodec library is too old. Please get a recent one from http://www.ffmpeg.org
brion@lightyear:~/Downloads/makemkv/makemkv-oss-1.10.5$
avcodec_encode_audio2 is definitely in the code of ffmpeg 3.3
Re: Apparent libavcodec version detection bug
Posted: Wed May 10, 2017 11:06 am
by plittlefield
Same here. I am going to try the previous version of ffmpeg now.
Re: Apparent libavcodec version detection bug
Posted: Wed May 10, 2017 11:29 am
by plittlefield
Re: Apparent libavcodec version detection bug
Posted: Tue Jun 13, 2017 9:27 am
by plittlefield
A month later and still a problem with ffmpeg-3.3.2
Has anyone got a fix for this yet?
Re: Apparent libavcodec version detection bug
Posted: Thu Dec 28, 2017 4:18 am
by snurre
And now, several months later, I decide to upgrade to 1.10.8, not knowing that this will be impossible. Of course ignorant of this issue.
I get the same libavcodec version too old detection fault, or LIBAVCODEC_MAJOR_VERSION wrong.
I have tried several rebuilds of several ffmpeg versions: 3.4.1, 3.3.3, 2.7.4 (?, not sure, it was the one that worked before).
I have tried to roll back to makemkv 1.9.9 - this one worked before. Now this one fails with "application failed to initialize" when I try to start it.
This started because of an attempt to see if makemkv could encode atmos truehd from a file I have here into lpcm. I decided to use ffmpeg command line for this instead, it works fine.
But I need makemkv to be able to get bd disks ripped to the hd, and I need atmos truehd working for this. This does not work without compiling with ffmpeg.
An updated guide for compiling and installing makemkv, one that actually works, would be appreciated.
Re: Apparent libavcodec version detection bug
Posted: Sat Dec 30, 2017 5:34 pm
by snurre
snurre wrote:And now, several months later, I decide to upgrade to 1.10.8, not knowing that this will be impossible. Of course ignorant of this issue.
I get the same libavcodec version too old detection fault, or LIBAVCODEC_MAJOR_VERSION wrong.
I have tried several rebuilds of several ffmpeg versions: 3.4.1, 3.3.3, 2.7.4 (?, not sure, it was the one that worked before).
I have tried to roll back to makemkv 1.9.9 - this one worked before. Now this one fails with "application failed to initialize" when I try to start it.
This started because of an attempt to see if makemkv could encode atmos truehd from a file I have here into lpcm. I decided to use ffmpeg command line for this instead, it works fine.
But I need makemkv to be able to get bd disks ripped to the hd, and I need atmos truehd working for this. This does not work without compiling with ffmpeg.
An updated guide for compiling and installing makemkv, one that actually works, would be appreciated.
If someone is still reading:
Any idea how to roll back to version 1.9.9 using ffmpeg 2.7.2?
Seems the forum and the software is dead, very unfortunate, as this is the only way to legally watch bd movies in a proper way.
Re: Apparent libavcodec version detection bug
Posted: Sat Dec 30, 2017 7:33 pm
by ChrisK
Good News, everyone! I think I found the problem (more or less) and a solution!
The problem: The guide makes you compile a full ffmpeg with a lot of shit that we don't need at all. In this case some CUDA Hardware-Acceleration-Support (used for video-decoding) is somehow getting in the way.
The solution: Disable (almost) everything we don't need when configuring ffmpeg:
Code: Select all
./configure --prefix=/tmp/ffmpeg --enable-static --disable-shared --enable-pic --disable-yasm --disable-all --disable-autodetect --disable-everything --enable-swresample --enable-avcodec --enable-encoder=flac,aac --enable-decoders
This will only build the libraries and the encoders we need, no ffmpeg binaries or documentation. I wasn't really able to figure out which decoders makemkv needs, so I had to enable all of them, but --disable-autodetect still keeps unneeded stuff like CUDA disabled.
Re: Apparent libavcodec version detection bug
Posted: Mon Jan 01, 2018 11:17 pm
by snurre
Excellent, it works. Tried with makemkv 1.10.8 and ffmpeg 3.4.1.
Re: Apparent libavcodec version detection bug
Posted: Sat Jan 20, 2018 7:37 pm
by muddysteel
There is a linker dependency ordering issue at the root of this: When checking on the various bits required to compile the OSS portion of MKV, the library 'libavutil.a' is being injected too far down the link order.
Not sure what controls this as AUTOCONF is used. Trying to peel the onion. The offending (configuration test) sequence that fails to compile is:
Code: Select all
gcc -g -O2 -I/usr/local/ffmpeg/include conftest.c -L/usr/local/ffmpeg/lib -lavcodec -lXv -lX11 -lXext -lSDL2 -lass -lssl -lcrypto -lSDL2 -lvdpau -lX11 -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -lasound -lSDL2 -lssl -lcrypto -lx264 -lvpx -lm -lvpx -lm -lvpx -lm -lvpx -lm -lvorbisenc -lvorbis -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfreetype -lass -lm -ldl -llzma -lbz2 -lz -pthread -lswresample -lm -lavutil -lm -lrt -o conftest
Altering this sequence to:
Code: Select all
gcc -g -O2 -I/usr/local/ffmpeg/include conftest.c -L/usr/local/ffmpeg/lib -lavcodec -lavutil -lXv -lX11 -lXext -lSDL2 -lass -lssl -lcrypto -lSDL2 -lvdpau -lX11 -lva -lva-x11 -lX11 -lva -lva-drm -lva -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lsndio -lasound -lSDL2 -lssl -lcrypto -lx264 -lvpx -lm -lvpx -lm -lvpx -lm -lvpx -lm -lvorbisenc -lvorbis -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfreetype -lass -lm -ldl -llzma -lbz2 -lz -pthread -lswresample -lm -lm -lrt -o conftest
results in a successful pass on the configure step, however, it must then also be passed along to the OSS compilation phase.