transitive-bullshit / ffmpeg-gl-transition

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

use EGL in linux #16

Closed turengege closed 6 years ago

turengege commented 6 years ago

hi Thanks for sharing this project! I have being using ffmpeg-gl-transition in production(headless environment).

But I found Xvfb just ignores my Nvidia GPU devices and use CPU to do the rendering. So I use EGL instead which is more convenient in headless environment and rendering using GPU.

transitive-bullshit commented 6 years ago

This is really awesome, @turengege!

Any idea if this addresses #7 on non-apple environments?

I'll need a bit of time to digest these changes and test things, as I'm not too familiar with EGL, but honestly this looks great and I'm really glad you decided to contribute back!

transitive-bullshit commented 6 years ago

@turengege @gre does EGL no longer require you to use xvfb+libmesa on headless environments?

transitive-bullshit commented 6 years ago

From my understanding, we still need to have libmesa installed on headless linux, but xvfb is no longer necessary. Is this correct?

@turengege would you mind providing (or linking to) headless setup instructions for making sure EGL will work correctly?

Thanks!

turengege commented 6 years ago

@transitive-bullshit Yes it's correct, glfw and Xvfb is not required any more. and glew 2.0 or higher is required.

I used libmesa1.7,libmesaGLU1.7,GLEW 2.1,glvnd1.0. Actually I just add libmesaGLU1.7 and GLEW 2.1 based on nvidia/cudagl:9.0-devel-centos7(docker image)

turengege commented 6 years ago

This commit is only about linux. On mac it's still using AGL and GLFW is required. EGL seems not supported on mac now.

transitive-bullshit commented 6 years ago

@turengege -- awesome, really appreciate your work on this!

Out of curiosity, what are you using this for in production? (totally ok if it's confidential)

turengege commented 6 years ago

It's ok. It's for online video clips.

I will update the readme about how to build the EGL stack.

about #7 I have not encounter this situation. Can you provide some fail example videos so I can help.