摘要:来源:简书 梅芳姑 最近项目一直在做这个,对标是抖音,剪影,微视以及b站的必剪。陆陆续续看了不少项目,按开发历程记录如下 1.https://github.com/shaopx/VideoClipEditViewTest 用原生MediaCodec, Opengl对视频进行处理,裁剪,滤镜,特效,抽
阅读全文
摘要:1.绿屏 由于渲染支持的是RGB,而不是YUV,解码一般输出YUV,如果解码报错,一般YUV都是0; YUV转RGB的时候 Y = 0.299 R + 0.587 G + 0.114 B U = -0.1687 R - 0.3313 G + 0.5 B + 128 V = 0.5 R - 0.418
阅读全文
摘要:基于:https://www.cnblogs.com/8335IT/p/16438589.html #version 330 core out vec4 FragColor; in vec2 tex_coord; uniform sampler2D tex; void main() { //Frag
阅读全文
摘要:与很多教程是一样的 第一步初始化:SDL_Init(SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS); 第二步,配置音频参数 SDL_AudioSpec audioSpec;创建设备ID:SDL_OpenAudio
阅读全文
摘要:1 安装Cmake,下载GLFW 源代码 2 通过命令行(不要用带界面的工具)--https://blog.csdn.net/pythonandjava/article/details/122777144 # 切换至下载解压后的GLFW源码目录 cd glfw-3.3.6 # 创建 build 文件
阅读全文
摘要:1GDI- bitblt方法 BitBlt 用于从原设备中复制位图到目标设备,弊端,做投屏抓屏时候可能会比较慢,帧率比较低 头文件:(代码来源于网络,目前无法溯源) #pragma once #include <windows.h> #include <string> #include<wingdi
阅读全文
摘要:提供接口,送PCM到输出设备; 接口: 1 构造析构:QAudioOutput/~QAudioOutput() 2 获取设备缓冲大小,就是在不会被覆盖的情况下,你可以向QIODevice一次性送多少字节 int bufferSize() const; 3 设备缓冲的空闲字节数,int bytesFr
阅读全文
摘要:sonic调用: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sonic.h" #include <time.h> #include<Foundation/Foundation.h> int main()
阅读全文
摘要:基于上篇博文OpenGL画球面(6) - 邗影 - 博客园 (cnblogs.com),我们画了一颗球,那我想画半颗???? 顶点:(上半球) 顶点(下半球) // Y_SEGMENTS 和 X_SEGMENTS 分别表 示将α 和β 分割了多少份, //y 和 x 分别表示是第几份,以此进行遍历,
阅读全文
摘要:基于前边两篇博文:OpenGL多层纹理叠加_部分区域(九-2) - 邗影 - 博客园 (cnblogs.com) OpenGL多层纹理叠加MIX(九-1) - 邗影 - 博客园 (cnblogs.com) 本篇文章效果类似,也是一个贴图,但是是一个完整小图贴到一张大图上;我们经常看视频的时候会有lo
阅读全文
摘要:有了多层纹理单元叠加,现在我想给一个图片的部分位置附着上另一个图片【的部分位置】(不是叠加logo),本例子仅限下图这种情况: 底图全部显示,顶图在片元着色器中限制显示区域;本质上两个图片的大小还是一样的大小;通过设置透明度,设置顶图的显示区域; 片元着色器: #version 330 core o
阅读全文
摘要:1 前提:两张图片大小一样,进行 MIX混合,两个图片要是24位RGB就都是24位,如果一个是24位RGB,一个是32位RGBA,请加载纹理数据的时候使用同样数量的图层 (图片来源于网络截图,不商用,仅进行博客demo展示) 再譬如: 两个采样器进行采样,之后进行mix混合;参考:(17条消息) O
阅读全文
摘要:上一节写了如何实现全部马赛克 本篇做的是部分马赛克: 需要理解的点:片元着色器,每一个片元(像素)执行一次片元着色器的程序;所以你在片元着色器中写的程序都是针对逐个像素的; 片元着色器代码:(本博客直接修改原图显示的像素,未进行图片叠加,融合,等马赛克方式) 1 #version 330 core
阅读全文
摘要:1我们在YUV纹理贴图的基础上画个马赛克吧!!! 怎么做? 把图片分成若干小像素块,然后修改每个像素块的颜色为某一个点的颜色(就是让这个小像素块内颜色相同) 2 在片元着色器中实现 参考:Jadon_Mao vec2 XYMosaic = vec2(floor(intXY.x / mosaicSiz
阅读全文
摘要:1 画球,先要把球面按照经纬线,分成N等分;在每两条经纬线包着的区域就相当于是一个四边形,这个四边形是两个三角形拼成的; 2 画球要计算球面上顶点的坐标,我们暂时不做球面贴图,不考虑纹理坐标 3本博客根据华科万琳老师的讲义进行编写;如有冒犯,请及时评论联系; 3.1如何计算球面上某一个点P的坐标:
阅读全文
摘要:1立方体,需要将空间坐标转换为人眼坐标,所以需要一系列的矩阵运算;需要用到glm;请自行安装 2 本次直接使用RGB贴图 3立方体贴图中的每一个纹理图(正方体贴图),RGB图片也要是正方形的 4 介绍一个中文OpenGL学习网站 http://learnopengl.com 5 立方体贴相当于在不同
阅读全文
摘要:看了前三节,你学会了渲染RGB; 本节,是YUV渲染; 1 YUV类型: 4:4:4 4:2:2 4:2:0 444: 一个Y分量,就有一个U,一个V; 422: 两个Y分量,有一个U,一个V; 420:四个Y分量,有一个U,一个V; 这个博客说的很详细:YUV 格式详解-史上最全 - 掘金 (ju
阅读全文
摘要:这是一个优秀的维护人员的github,上边的例子 https://github.com/kcat/openal-soft/blob/master/examples/alstream.c /* * OpenAL Audio Stream Example * * Copyright (c) 2011 b
阅读全文
摘要:(不定期更新。。。。) 1 在硬解码中,当你使用回调的方式拿解码后的数据,又想解码前传一个东西(结构体,指针等等),解码后仍然能拿到这个东西,用来操作解码后数据的时候: VT_EXPORT OSStatus VTDecompressionSessionDecodeFrame( CM_NONNULL
阅读全文