transitive-bullshit / ffmpeg-gl-transition

FFmpeg filter for applying GLSL transitions between video streams.
650 stars 126 forks source link

Error initializing filter 'gltransition' #5

Closed Snappers-tv closed 6 years ago

Snappers-tv commented 6 years ago

I've managed to build ffmpeg with gltransition and I get the right ffmpeg header

ffmpeg version N-89657-g51027d0 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/home/ubuntu/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/ubuntu/ffmpeg_build/include --extra-ldflags=-L/home/ubuntu/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/ubuntu/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-gnutls --enable-libfribidi --enable-libspeex --enable-opengl --enable-filter=gltransition --extra-libs='-lGLEW -lglfw' --enable-nonfree
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Hyper fast Audio and Video encoder

The problem is that when I run your examples I get

Error initializing filter 'gltransition' Error initializing complex filters. Operation not permitted

Any ideas what's wrong?

transitive-bullshit commented 6 years ago

Hmmm, can you post the ffmpeg command you're trying to run?

I've only tested it on Mac OS, so it may be a minor issue with differences on ubuntu.

I see in the configuration output, it has the --extra-libs flag specified twice, so it's possible one of them is getting overwritten, in which case maybe glew or glfw aren't being included properly?

Also note that depending on your platform, there may be slight variations in how GLEW and glfw are named (with regard to --extra-libs, above), e.g. -lglew or -lglfw3 - check pkg-config.

transitive-bullshit commented 6 years ago

Also, can you try running your command with the -v debug flag which should provide more console output?

Snappers-tv commented 6 years ago

My OS is ubuntu 16.04

I'm running this command: ffmpeg -i media/0.mp4 -i media/1.mp4 -filter_complex gltransition -y out.mp4

I've tried to change to this config but I still get the error:

ffmpeg version N-89657-g51027d0 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/home/ubuntu/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/ubuntu/ffmpeg_build/include --extra-ldflags=-L/home/ubuntu/ffmpeg_build/lib --extra-libs='-lpthread -lm -lGLEW -lglfw3' --bindir=/home/ubuntu/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-gnutls --enable-libfribidi --enable-libspeex --enable-opengl --enable-filter=gltransition --enable-nonfree libavutil 56. 7.100 / 56. 7.100 libavcodec 58. 9.100 / 58. 9.100 libavformat 58. 3.100 / 58. 3.100 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 8.100 / 7. 8.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 libpostproc 55. 0.100 / 55. 0.100 Package config outputs

pkg-config --libs glew -lGLEW -lGLU -lGL

And:

pkg-config --libs glfw3 -L/usr/local/lib -lglfw3

I tried -v debug but there is no additional information about the filters

transitive-bullshit commented 6 years ago

Is this on a headless ubuntu instance?

OpenGL requires either a GPU or something like xbfb+libmesa in order to run, so I'm guessing this is your issue. The gltransition filter is failing to initialize which would only happen if OpenGL isn't supported at runtime.

Check this thread to see if you have OpenGL support on your server.

Snappers-tv commented 6 years ago

Yes,

I've installed xvfb and mesa and it works!

Thanks

sutra commented 6 years ago

More tips for whom reaches here by searching.

Install xvfb: pkg install xorg-vfbserver(FreeBSD) apt install xvfb(Ubuntu)

Run xvfb: Xvfb :1 -screen 0 1280x1024x16 Execute ffmpeg-gl-transition example: env DISPLAY=:1 ffmpeg -i media/0.mp4 -i media/1.mp4 -filter_complex gltransition -y out.mp4

akashdexati commented 5 years ago

Yes,

I've installed xvfb and mesa and it works!

Thanks

@Snappers-tv Can you tell how you installed above packages ? I am doing

sudo apt-get install xvfb
sudo apt-get install xorg-dev libglu1-mesa-dev

but the error prevails

EitanGoldfrad commented 5 years ago

Yes, I've installed xvfb and mesa and it works! Thanks

@Snappers-tv Can you tell how you installed above packages ? I am doing

sudo apt-get install xvfb
sudo apt-get install xorg-dev libglu1-mesa-dev

but the error prevails

Did you run Xvfb like @sutra explained?

akashdexati commented 5 years ago

Yes, I've installed xvfb and mesa and it works! Thanks

@Snappers-tv Can you tell how you installed above packages ? I am doing

sudo apt-get install xvfb
sudo apt-get install xorg-dev libglu1-mesa-dev

but the error prevails

Did you run Xvfb like @sutra explained?

Mine is ubuntu machine. So I installed xvfb similar to the @sutra way. When I type xvfb I get command not found

EitanGoldfrad commented 5 years ago

It's Xvfb (upper case x), read about it before you use it.

akashdexati commented 5 years ago

@EitanGoldfrad I have tried reinstalling everything; even the change is caps doesnot work for me. Can you share the basic System/Processor requirements for the setup to run ?

sunjianan9900 commented 4 years ago

hey , I have same problem by using this dockerfile " https://github.com/transitive-bullshit/ffmpeg-gl-transition/blob/master/Dockerfile " I enter the container and run

apt-get install xvfb
apt-get install xorg-dev libglu1-mesa-dev

but still got

Error initializing filter 'gltransition'
Error initializing complex filters.
Operation not permitted