ffmpeg 视频过度滤镜 gltransition

上次随笔中提到的 ffmpeg-concat 可以处理视频过度,但是缺点是临时文件超大。
经过查找 ffmpeg 还有 gltransition 滤镜,但是 ffmpeg 的正式版中还没有加进去。
github 上有 ffmpeg-gl-transition 项目,有详细的添加滤镜的说明,参见以下地址
https://github.com/transitive-bullshit/ffmpeg-gl-transition 这个滤镜依赖的库包括 GLEW + glfw3
想静态编译 GLEW 需要加 #define GLEW_STATIC ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "gltransition=duration=4:offset=1.5:source=crosswarp.glsl" -y out.mp4 通过下面的脚本可以使用不同视频过度方式
-------------------------------------------------------------------------------------------------
ffmpeg-gl-transition-concat.sh
-------------------------------------------------------------------------------------------------
#!/bin/bash
# Example of concatenating 3 mp4s together with 1-second transitions between them. tpath="/ffmpeg/transitions/"
x264="-look_ahead 0 -ac 2 -c:v h264_qsv -profile:v high -level 3.1 -preset:v veryfast"
ki="-keyint_min 72 -g 72 -sc_threshold 0"
br="-b:v 3000k -minrate 3000k -maxrate 6000k -bufsize 6000k -b:a 128k" ffmpeg -hide_banner \
-i 1.mp4 \
-i 2.mp4 \
-i 3.mp4 \
-filter_complex " \
[0:a] atrim=0:5 [a0]; \
[1:a] atrim=0:5 [a1]; \
[2:a] atrim=0:6 [a2]; \
\
[0:v] split [v000] [v010]; \
[1:v] split [v100] [v110]; \
[2:v] split [v200] [v210]; \
\
[v000] trim=0:5 [v001]; \
[v010] trim=5:6 [v011t]; \
[v011t] setpts=PTS-STARTPTS [v011]; \
\
[v100] trim=0:5 [v101]; \
[v110] trim=5:6 [v111t]; \
[v111t] setpts=PTS-STARTPTS [v111]; \
\
[v200] trim=0:5 [v201]; \
[v210] trim=5:6 [v211t]; \
[v211t] setpts=PTS-STARTPTS [v211]; \
\
[v011] [v101] gltransition=duration=1:source=${tpath}WaterDrop.glsl [vt0]; \
[v111] [v201] gltransition=duration=1:source=${tpath}crosswarp.glsl [vt1]; \
\
[v001] [vt0] [vt1] [v211] concat=n=4 [outv]; \
[a0] [a1] [a2] concat=n=3:v=0:a=1 [outa]" \
-map [outv] -map [outa] \
${x264} ${ki} ${br} \
-y ffmpeg-gl-transition-concat.mp4
-------------------------------------------------------------------------------------------------

  

ffmpeg 视频过度滤镜 gltransition的更多相关文章

  1. FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM

    FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...

  2. FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照

    1 FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照 2016.02.18 by 1CM 2 T.. = Timeline support 3 支持时间轴 4 .S. = ...

  3. 视频编解码的理论和实践2:Ffmpeg视频编解码

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

  4. FFmpeg frei0r water 滤镜

    FFmpeg frei0r water 滤镜, 在 linux 环境中很流畅,但在 XP 环境中抛出异常 研究一段时间修改了代码,能在 XP 里跑得动. sample.water.avi water. ...

  5. c# ffmpeg视频转换

    c#  ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...

  6. iOS8 Core Image In Swift:视频实时滤镜

    iOS8 Core Image In Swift:自己主动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift:更复杂的滤镜 iOS8 Core Image In Swift: ...

  7. c# ffmpeg视频转换【转载】

    c#  ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...

  8. Android 音视频深入 二十一 FFmpeg视频剪切

    视频剪切我意外的发现上一次的视频压缩的代码能够运行FFmpeg视频剪切的命令,但是不能做视频合并的命令,因为不能读取记录了几个视频的路径的txt文件. 这里我就说直说视频剪切的过程,不说代码,只说lo ...

  9. C# 使用ffmpeg视频截图

    <appSettings> <add key="ffmpeg" value="E:\ffmpeg\ffmpeg-20141012-git-20df026 ...

随机推荐

  1. linux系统很卡的基本排查方法

    1. 查看内存使用情况 free -g 当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧(释放内存参考上篇文章) 2. 查看磁盘使用情况 df -h 当发现磁盘使用率很高时,那就要 ...

  2. Android APK 手动签名

    首先,如果没有签名密钥,先生成密钥: keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore and ...

  3. 前端js之BOM和DOM操作

    目录 引入 BOM操作 window对象 history对象 location对象(重点) 弹出框 定时器 计时器相关 DOM 查找标签 直接查找 间接查找 节点操作 创建节点及添加节点 删除节点 替 ...

  4. 《Python 3标准库》

    在本书中,你会看到用来处理文本.数据类型.算法.数学计算.文件系统.网络通信.Internet.XML.Email.加密.并发性.运行时和语言服务等各个方面的实用代码和解决方案.在内容安排上,每一节都 ...

  5. 【NOIP2017提高A组模拟9.5】心灵治愈

    题目 好吧,我表示比赛时完全看不懂题目 题目解释 良心的出题人为一道两三句可以讲清楚的题目,又写了一大坨恶心的解释. 容斥 其实题目就是有个数组a[1~n+1],已知a[n+1]=m,1<=a[ ...

  6. Python CGI编程Ⅷ

    通过CGI程序传递checkbox数据 checkbox用于提交一个或者多个选项数据,HTML代码如下: 以下为 checkbox.py 文件的代码: 修改 checkbox.py 权限: 通过CGI ...

  7. mongodb性能测试:long时间戳与string格式时间

    string格式时间写入数据: { "_id" : ObjectId("5d314731a96f332d6c3193d4"), "news_id&qu ...

  8. [HG]走夜路 题解

    前言 整个机房就我一个人在想动态规划. 想了半天发现一堆性质,结果由于DP中出现折线挂了. 题目描述 某NOIP普及组原题加强版. \(Jim\) 非常怕黑,他有一个手电筒,设手电筒的电量上限为 \( ...

  9. django + jquery 实现二级联动

    二级联动用ajax还是很好实现的,下面简单给个例子 jquery代码 $("#id_sel").change(function(){ $.get("/browser/ge ...

  10. 《Effective C++》结语

    九月的这三周把<Effective C++>重读了一遍,尽量以自己的理解,用最简单的(其实太深入也不会写)的语言把书里面的重点都写了下来. 由于之前找实习占用了大量的时间,写的博客都比较水 ...