【gl-transitions配置】原项目dockerfile修改,为视频添加转场效果

gl-transition项目地址https://github.com/transitive-bullshit/ffmpeg-gl-transition

最新84个transitions转场效果地址GitHub - gl-transitions/gl-transitions: The open collection of GL Transitions

加转场脚本地址https://github.com/ice45571/video-transition

主要用到了上述三个项目

gl-transition配置

本人ubuntu系统,看官网在本机的配置有点搞不懂,本机下载各种包的时候还会出错,搞不动了,所以还是用了dockerfile

但是直接跑dockerfile也是有问题的,原因是原dockerfile在安装ffmpeg时,使用的是git方法去下载文件,而这个项目已经过去几年了,其中的ffmpeg.diff与现在的ffmpeg最新版本是不匹配的,因此需要更改下这里

# get ffmpeg sources
# RUN git clone http://source.ffmpeg.org/git/ffmpeg.git ffmpeg
RUN wget http://www.ffmpeg.org/releases/ffmpeg-4.2.2.tar.gz
RUN tar -zxvf ffmpeg-4.2.2.tar.gz && mv ffmpeg-4.2.2 ffmpeg

这样下载就可以通过了

不过先别着急构建镜像,因为下面需要使用python去写脚本合成视频,所以还需要配置下python

python配置

我使用的是 https://github.com/ice45571/video-transition的代码,对其中的transition文件更新了这里最新的转场效果GitHub - gl-transitions/gl-transitions: The open collection of GL Transitions

 首先,上述dockerfile是没有python环境的,所以直接在原文件后面添加python配置相关的命令

RUN apt-get -y install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev
RUN wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz && tar -xf Python-3.9.1.tgz
RUN (cd Python-3.9.1; ./configure --enable-optimizations)
RUN (cd Python-3.9.1; make -j)
RUN (cd Python-3.9.1; make install)
RUN ln -s /usr/local/bin/python3.9 /usr/bin/python

配置完了直接python main.py的话,也会报错

[AVFilterGraph @ 0x55b8de723200] Error initializing filter 'gltransition' with args 'duration=2:source=transitions/BowTieHorizontal.glsl'
Error initializing complex filters.
Operation not permitted

 这里参考ffmpeg编译gl-transitions(centos7环境为基础)_vvshuai的博客-CSDN博客_ffmpeg glsl的解决方法,在容器里需要启动下Xvfb,启动完就能运行成功了

进入docker执行代码

docker image build -t docker-ffmpeg:v1 .
docker run -i -t docker-ffmpeg:v1 /bin/bash
docker run -v /yourpath/Video-gl-transition/:/build/code/ -i -t  docker-ffmpeg:v1 /bin/bash

进入docker后,先进入目录,然后启动下Xvfb,如果退出容器再进入,仍需使用命令启动Xvfb

cd code
nohup Xvfb :1 -screen 0 1920x1080x24 >/dev/null 2>&1 &
export DISPLAY=:1
python main.py

现在就能看到生成了各种转场,但是实测时有的效果无法成功,成功的大概只有60个左右是正常的,可能是因为ffmpeg版本较老的缘故,如果用最新版本,gl-transition又无法直接通过dockerfile配置成功

配置这个也太费劲了哈哈

最后把所有文件整理了一下,上传到gitGitHub - jiafw/video-gl-transition: 让你在pc平台将多个视频合成为一个且在视频与视频之间添加酷炫的转场

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
opengles是一种用于在移动设备和嵌入式系统上实现2D和3D图形渲染的图形库。而gl-transitions是一个开源的OpenGL库,用于创建平滑过渡效果,可以应用于图像、视频等多种媒体内容。 要将gl-transitions移植到opengles上,需要进行以下步骤: 1. 确定opengles版本:gl-transitions可能使用的是OpenGL的较新版本,而opengles可能只支持较旧的版本。因此,首先需要确定opengles版本,并了解其与OpenGL之间的差异。 2. 了解gl-transitions的实现:深入了解gl-transitions的实现方式和代码结构,理解其对OpenGL的使用方式和功能。 3. 理解opengles的API:熟悉opengles的API,包括顶点/片段着色器、缓冲区对象、纹理对象等。理解opengles的渲染管线和数据传递方式,以便能够正确地将gl-transitions移植到opengles上。 4. 逐步移植:根据gl-transitions的实现和opengles的API,逐步将gl-transitions的代码移植为opengles可用的代码。这可能涉及到对着色器代码的修改、纹理对象的创建和绑定、缓冲区对象的使用等。 5. 调试和测试:移植完成后,进行调试和测试以确保移植后的代码在opengles上正常工作,并且能够正确地渲染出所需的过渡效果。 需要注意的是,由于较新版本的OpenGL可能具有一些opengles不支持的功能,因此在移植过程中可能需要做一些功能的调整或替代。此外,移植过程中可能还需要考虑设备的性能和兼容性问题,确保移植后的代码能够在目标设备上流畅地运行。 总结起来,将gl-transitions移植到opengles上需要对opengles的API有很好的了解,并根据它的渲染方式和数据传递方式对gl-transitions的代码进行适当的修改和调整。这样才能确保移植后的代码能够在opengles上正常运行并呈现出所需的过渡效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值