transitive-bullshit / ffmpeg-gl-transition

FFmpeg filter for applying GLSL transitions between video streams.
647 stars 125 forks source link

Compile Error With Debian Stretch #37

Open MotionDesignStudio opened 5 years ago

MotionDesignStudio commented 5 years ago

My configure string :

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./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-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-filter=gltransition \ --enable-libtheora \ --disable-x86asm \ --enable-libxvid \ --enable-opengl \ --enable-cross-compile \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make clean && make

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

My error starts with.

libavfilter/libavfilter.a(vf_gltransition.o): In function apply_transition': /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:368: undefined reference toeglMakeCurrent' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:373: undefined reference to __glewUseProgram' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:378: undefined reference toglewUniform1f' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:382: undefined reference to __glewActiveTexture' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:387: undefined reference toglewActiveTexture' libavfilter/libavfilter.a(vf_gltransition.o): In function setup_gl': /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:294: undefined reference toeglGetDisplay' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:296: undefined reference to eglInitialize' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:307: undefined reference toeglChooseConfig' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:309: undefined reference to eglCreatePbufferSurface' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:312: undefined reference toeglBindAPI' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:314: undefined reference to eglCreateContext' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:315: undefined reference toeglMakeCurrent' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:330: undefined reference to glewExperimental' /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:331: undefined reference toglewInit' libavfilter/libavfilter.a(vf_gltransition.o): In function build_shader': /home/lex/share/ff2/ffmpeg/libavfilter/vf_gltransition.c:142: undefined reference to__glewCreateShader' ...

Packages I Installed :

apt-get update -qq && apt-get -y install \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ pkg-config \ texinfo \ wget \ zlib1g-dev\ libx264-dev\ libx265-dev\ libnuma-dev\ libvpx-dev\ libfdk-aac-dev\ libmp3lame-dev\ libopus-dev\ libglew-dev\ libao-dev\ libgcrypt11-dev\ libfaad-dev\ libmad0-dev\
make\ pkg-config\ libtheora-dev\ libxvidcore-dev\ libglfw3-dev \ nasm

MotionDesignStudio commented 5 years ago

[ SOLVED SOLUTION ]

Edit this file "vf_gltransition.c" before you move it to ffmpeg/libavfilter/ directory and remove this line.

define GL_TRANSITION_USING_EGL // remove this line if you don't want to use EGL

Build ffmpeg with this command. It will create a static binary with two link libraries libfdk-aac1 and libglfw3. YOu will need to install both of those if you want to use the stand alone ffmpeg binary. This binary is located in the source directory of ffmpeg.

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./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-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --disable-shared \ --enable-static \ --enable-runtime-cpudetect \ --enable-filter=gltransition \ --enable-opengl \ --extra-libs='-lGLEW -lglfw' \ --enable-nonfree && \ PATH="$HOME/bin:$PATH" make If you run "make install". This --prefix="$HOME/ffmpeg_build" will install it to your home directory. Change this if you want it to install to a different location.

My environment is.

$ uname -a

Linux trabajar3 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux

Best of luck four days of my life gone.

Thanks