码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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最新版本是不匹配的,因此需要更改下这里

    1. # get ffmpeg sources
    2. # RUN git clone http://source.ffmpeg.org/git/ffmpeg.git ffmpeg
    3. RUN wget http://www.ffmpeg.org/releases/ffmpeg-4.2.2.tar.gz
    4. 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配置相关的命令

    1. RUN apt-get -y install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev
    2. RUN wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz && tar -xf Python-3.9.1.tgz
    3. RUN (cd Python-3.9.1; ./configure --enable-optimizations)
    4. RUN (cd Python-3.9.1; make -j)
    5. RUN (cd Python-3.9.1; make install)
    6. 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执行代码

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

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

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

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

    配置这个也太费劲了哈哈

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

  • 相关阅读:
    2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题
    [Shell详解-5]:test命令与判断符号[]
    历时一年,论文终于被国际顶会接收了
    jmeter源码二次开发
    java中的BigDecimal使用
    数据库编程
    【秋招面经搬运】字节一面
    *算法训练(leetcode)第二十五天 | 134. 加油站、135. 分发糖果、860. 柠檬水找零、406. 根据身高重建队列
    PP-Tracking之C++部署
    市场调查中的信度和效度分析原理及python实现示例
  • 原文地址:https://blog.csdn.net/j_starry/article/details/126055095
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号