- 博客(219)
- 资源 (6)
- 收藏
- 关注
原创 基于ffmpeg+openGL ES实现的视频编辑工具-添加背景音乐(十一)
通过对AudioAMixFilters类的深入剖析,我们清晰地了解了视频编辑中音频合并滤镜的技术实现。从各类滤镜的初始化,到滤镜图的构建与连接,再到音频混合操作以及音量调节,每一个环节紧密协作,共同实现了将多路音频完美融合为一路音频的功能。在实际应用中,这种音频合并滤镜技术为视频编辑带来了极大的便利与创意空间。视频创作者可以轻松地将背景音乐与视频原声进行混合,并根据需求灵活调整各音频轨道的音量,从而创作出更具感染力和吸引力的视频作品。展望未来,随着视频编辑技术的不断发展,音频合并滤镜技术也将持续演进。
2025-02-23 14:17:31
310
原创 基于ffmpeg+openGL ES实现的视频编辑工具-添加背景音乐(十)
在视频中添加背景音乐,首要步骤是借助 ffmpeg 从视频文件中解析出音频流,并读取背景音乐文件的音频流。随后,运用 ffmpeg 强大的音频合并滤镜,将这两路音频巧妙合并为一路音频。在视频渲染阶段,openGL ES 主要负责处理视频的图像帧,虽然它并不直接参与音频处理,但确保视频图像与合并后的音频能够精准同步播放。整个过程涵盖音视频的读取、音频流的解析、音频合并、时间轴同步以及视频渲染等多个复杂且关键的环节。
2025-02-23 13:35:50
267
原创 基于ffmpeg+openGL ES实现的视频编辑工具-添加转场(九)
视频由一系列连续的图像帧构成,转场的核心目标是实现从一个视频片段的最后一帧到下一个视频片段的第一帧的平滑且富有创意的过渡。这一过程涉及对图像帧的处理与合成,需要精确把控过渡的时间、方式以及最终呈现的效果。从技术层面剖析,转场效果的实现依赖于图像处理算法、时间轴管理以及图形渲染技术。ffmpeg 作为功能强大的多媒体处理框架,能够高效地执行视频的编解码、帧提取等操作。而 openGL ES 专注于图形渲染,为实现各种复杂的转场特效提供了坚实的底层支持。二者相辅相成,使得在视频编辑工具中达成高质量转场成为可能。
2025-02-22 13:32:09
313
原创 基于ffmpeg+openGL ES实现的视频编辑工具-添加滤镜(七)
在我们的视频编辑工具中,综合运用 ffmpeg 和 OpenGL ES 实现对图像和视频添加滤镜的功能。下面将对其核心逻辑以及相关代码进行详细阐释。
2025-02-21 18:01:56
332
原创 实现自动上传bugly所需要的so符号表和mapping文件
在移动应用开发过程中,及时发现并解决应用在用户设备上出现的崩溃问题至关重要。腾讯 Bugly 作为一款强大的崩溃分析工具,为开发者提供了便捷的崩溃监测和分析功能。然而,在集成和使用 Bugly 的过程中,我们也遇到了一些技术挑战,本文将详细阐述其中关于自动上传bugly所需要的so符号表和mapping文件
2025-02-21 11:55:36
843
原创 基于ffmpeg+openGL ES实现的视频编辑工具-字幕添加(六)
在视频编辑领域,字幕的添加是一项极为重要的功能,它能够极大地丰富视频内容,提升观众的观看体验。当我们深入探究如何实现这一功能时,FreeType 开源库成为了强大助力。本文将详细阐述借助 FreeType 库生成字幕数据的过程,以及如何实现字幕的缩放、移动、旋转、颜色修改、对齐、字体切换等多样化编辑操作。
2025-02-19 19:10:18
301
原创 基于ffmpeg+openGL ES实现的视频编辑工具-整体开发思路介绍(二)
视频编辑工具采用分层架构设计,以实现清晰的职责划分和高效的开发维护。最上层为用户界面层,负责与用户进行交互,提供直观的操作界面,此层基于 Java 语言开发,利用 Android SDK 丰富的布局和视图组件搭建。中间层是业务逻辑层,它接收来自用户界面层的操作指令,并将其转化为对底层核心功能的调用,协调不同功能模块间的交互,同样由 Java 语言实现。
2025-02-19 16:29:25
241
原创 基于ffmpeg+openGL ES实现的视频编辑工具(一)
本博客围绕基于 FFmpeg 和 OpenGL ES 开发的 Android 视频编辑成品工具展开。在此,你能学到:视频编辑实操:通过工具操作视频,直观掌握视频裁剪、拼接、添加字幕贴纸及转场效果等实用功能的操作方法。技术原理剖析:深入了解工具开发所依托的 FFmpeg 多媒体处理与 OpenGL ES 图形渲染技术原理。完整开发过程:获取从项目构思到实现的详细开发流程,包括技术选型、功能实现细节及遇到的挑战与解决方案,助力提升音视频编辑开发能力。
2025-02-19 11:04:36
1125
转载 ffmpeg ./configure参数说明
Standard options: 基本选项参数--help 显示此帮助信息|print this message--log[=FILE|yes|no] 记录测试并输出到config.err文件|log tests and output to FILE [config.err]--prefix=PREFIX 安装程序到指定目录(...
2019-04-17 23:31:54
315
转载 Android 沉浸式状态栏的实现
Android 沉浸式状态栏的实现一提到沉浸式状态栏,第一个浮现在脑海里的词就是“碎片化”。碎片化是让 Android 开发者很头疼的问题,相信没有哪位开发者会不喜欢“write once, run anywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否有效。因此以前我一直把沉浸式状态栏看作一块难啃的骨头,�但是该面对的问题迟早还是要面对,所以,不如就此开...
2018-11-22 10:31:38
370
转载 AOP 之 AspectJ 全面剖析 in Android
AspectJ 是 Android 平台上一种比较高效和简单的实现 AOP 技术的方案。相类似的方案有以下几种: AspectJ: 一个 JavaTM 语言的面向切面编程的无缝扩展(适用Android)。 Javassist for Android :用于字节码操作的知名 java 类库 Javassist 的 Android 平台移植版。 DexMaker :Dal...
2018-10-26 14:51:18
460
转载 Android中startActivity中的permission检测与UID机制
我们经常在一个activity中去start另一个activity,或者与另一个acitivity的结果进行交互(startActivityForResult)。但有没有想过可能会出现的permission问题呢?如果你遇到了permission denial的Exception,那么你需要读读这篇文章啦。 我们在同一个application内部,可以随意的startActivity from ...
2018-10-24 19:19:07
1284
转载 如何处理:java . util . concurrent。TimeoutException: android.os.BinderProxy.finalize()在10秒错误后超时?
We're seeing a number of TimeoutExceptions in GcWatcher.finalize, BinderProxy.finalize, and PlainSocketImpl.finalize. 90+% of them happen on Android 4.3. We're getting reports of this from Crittercism...
2018-09-20 16:23:30
17005
转载 Android Studio 3.0中mipmap-anydpi-v26是什么东东
在Android Studio 3.0中一旦我们创建了一个项目,一个名为mipmap-anydpi-v26自动创建的文件夹在res文件夹下。它究竟能干什么?为什么我们需要这个?我们在开发时该如何利用它,下面通过本文给大家介绍下在Android Studio 3.0中一旦我们创建了一个项目,一个名为mipmap-anydpi-v26自动创建的文件夹在res文件夹下。它究竟能干什么?为什么我们...
2018-09-20 15:44:52
5505
2
转载 mac android apk反编译
在mac os系统上反编译android apk,首先需要准备好以下3个文件:1、apktool:https://ibotpeaches.github.io/Apktool/install/ 2、dex2jar:https://github.com/pxb1988/dex2jar 3、jd-gui:http://jd.benow.ca 下载好后,就可以开始我们的反编译之路了:...
2018-09-20 14:26:54
268
转载 Ubuntu 16.04下安装配置SonarQube+MySQL
环境:root@ubuntu:~# uname -aLinux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linuxroot@ubuntu:~# root@ubuntu:~# cat /etc/issueUbuntu 16.04 LTS \n \l ro...
2018-06-04 16:18:36
1031
转载 Android 视频分离和合成(MediaMuxer和MediaExtractor)
Android 视频的分离和合成这方面的资源网上是少之又少,学习的过程也是各种demo的看,各种demo的实验,各种坑的踩,为了让大家能够android的视频的分离和合成又个了解,写了下面的例子,完整例子再最下面。例子写的比较草,中间有较多的容错处理和代码的重构,也就懒得做了。另外导入的项目的时候,需要将工程input.mp4导入sd卡中,放在根目录里,由代码可以知道。 理论上来,我们可以利用的视...
2018-03-29 17:03:11
888
转载 Android硬编码——音频编码、视频编码及音视频混合
视频编解码对许多Android程序员来说都是Android中比较难的一个知识点。在Android 4.1以前,Android并没有提供硬编硬解的API,所以之前基本上都是采用FFMpeg来做视频软件编解码的,现在FFMpeg在Android的编解码上依旧广泛应用。本篇博客主要讲到的是利用Android4.1增加的API MediaCodec和Android 4.3增加的API MediaMuxer...
2018-03-29 13:44:58
329
转载 SIGBUS和SIGSEGV
一、导致SIGSEGV 1.试图对只读映射区域进行写操作 。 2.访问的内存已经被释放,也就是已经不存在或者越界。3.官方说法是:SIGSEGV --- Segment Fault. The possible cases of your encountering this error are: (1)buffer overflow --- usually caused by a po...
2018-03-15 18:08:01
664
转载 分享几个Android摄像头采集的YUV数据旋转与镜像翻转的方法
最近在做直播推流方面的工作,因为需要添加美白,滤镜,AR贴图等效果。所以不能简单的使用SufaceView加Camera的方式进行数据的采集,而是需要对Camera采集到的YUV数据进行相关的处理之后然后再进行推流的操作,YUV数据的返回接口。@Override public void onPreviewFrame(byte[] data, Camera camera) { } 当然,美白,滤...
2018-03-14 14:56:25
4102
转载 Android OpenGL YUV 旋转花屏解决及Camera获取图像
一个自拍app,如何获取我们的surface view的截屏?在Camera的onPreviewFrame回调中(继承的PreviewCallback接口)。我们可以获取到data数组,里面存放着就是实时的图片data数组转文件为null,且转bitmap也为null怎么办?data数组里确实存放的是图片,但是格式不对,是YUV420格式。需要进行一个转换。所以采用open gl包下的YuvIma...
2018-03-14 14:49:02
1374
转载 Android MediaMuxer使用遇到的问题
1.IllegalStateException问题MediaMuxer的使用必须严格遵循如下顺序:addTrack->start->writeSampleData->stop->release如果有顺序冲突或者多次调用start、stop、release,会导致IllegalStateException在使用MediaMuxer时,经常遇到的场景是在两个不同的Thread中...
2018-03-13 16:14:57
1059
转载 GL ES中几个重要函数详细说明
glVertexPointer void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer) Parameters size Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial va...
2018-03-12 15:12:19
1333
转载 Fail to connect to camera service的几种原因和解决方法
在应用开发中涉及到camera相关的操作经常会出现Fail to connect to camera service的问题,相应的也就会出现上面类似的错误异常日志。下面就出现这个错误的场景和原因简单做下分析。1.手机上有安装安全过滤软件。因为camera属于较为敏感的权限,所以,有些手机安全管家会自动拒绝camera的打开操作。 针对这种错误,可以在手机安全管家软件中,降低一下camera的安全...
2018-03-08 15:35:26
27680
2
转载 把图片转换成视频-ffmpeg
http://blog.youkuaiyun.com/huangxiansheng1980/article/details/6819271ffmpeg是一个非常强大的工具,使用他可以转换视频格式,包括视频容器格式,视频编码格式。这里所说的视频,包括了视频和音频。可以更改视频的其他的参数,比如帧率-每秒播放的帧数, 视频的大小-尺寸等等。还可以将图片转换视频。图片转换成视频,实际上是通过内置的视频编码格式将你的...
2018-03-06 22:05:08
13142
3
转载 Android 视频录制中的分辨率问题
视频录制的教程很多了,也不是很复杂。这里不展开了。然而某天搞来一只华为手机开始录制的时候报我MediaRecorder: start failed错误。经过一番折腾,才发现是分辨率的问题。事情是这个样子的:按正常流程,在录制前,我们需要设置camera的分辨率和录制的分辨率。也就是Parameters parameter=camera.getParameters();par
2018-02-01 15:30:36
4859
转载 [原创]HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法
最近在看一个老外写的东西,发现里面有个类,使用这个类可以让任何设备使用HierarchyView。众所周知,市面上卖的Android设备,一般都不能使用HierarchyView,所以借此机会,了解一下HierarchyView的实现原理,并学习一下老外的解决方法。HierarchyView的源码在/sdk/eclipse/plugins/com.android.ide.eclipse.hiera
2018-01-18 21:41:47
284
转载 使用canvas与Paint在View中居中绘制文字
我们在自定义View中有的时候会想自己绘制文字,自己绘制文字的时候,我们通常希望把文字精确定位,文字居中(水平、垂直)是普遍的需求,所以这里就以文字居中为例,看一下android中的文字应该如何绘制,它与Java又有什么区别。先来看看我们的目标,见下图上图是我打开了“显示布局边界”后截的图,所有会有好多框框。仔细观察上图文字区域,我们会发现文字区域中有5条颜色不同的
2017-12-10 11:36:44
455
转载 Android中使用canvas定制控件(控件周围阴影)
首先上一张效果图:基本的思路是:1.绘制圆角矩形。2.四周添加阴影。 开始绘制在onDraw中,首先初始化画笔:1 Paint paint = new Paint();2 paint.setColor(Color.WHITE);3 paint.setShadowLayer(10f, 0, 0, IFUIConstants.BACK
2017-12-05 17:27:43
1515
转载 Android ijkplayer详解使用教程
1 源地址:https://www.cnblogs.com/zhujiabin/p/7211983.html.认识ijkplayer最近公司准备开发一款视频播放及直播的应用,找了许多开源的框架,大部分都是基于ffmpeg开发的。最开始准备用Vitamio框架开发的,相关的文章也比较丰富,结果对于非个人移动应用均需购买Vitamio使用授权。不过B站开源的ijk
2017-11-10 10:23:16
936
转载 重磅教程!帮你全面彻底搞定Material design的学习笔记
编者按:这一年就快完了,你还没搞懂Material design吗?是嫌文档太长,还是觉得自己英文不好?都没关系,我们善良热情的@十萬個為什麽 帮同学们通读了一遍官方的设计指南,去糙取精,整理出这篇干货超多的学习笔记,打包票学完基本就掌握90%了,别错过咯!自从Material design发布以来,可乐橙就在一直收集相关素材与资源,研究别人的作品。这套设计风格非常鲜明,带有浓郁的Goo
2017-09-27 10:31:38
1437
转载 AspectJ基本用法
参考:深入理解Android之AOPAOP虽然是方法论,但就好像OOP中的Java一样,一些先行者也开发了一套语言来支持AOP。目前用得比较火的就是AspectJ了,它是一种几乎和Java完全一样的语言,而且完全兼容Java(AspectJ应该就是一种扩展Java,但它不是像Groovy[1]那样的拓展。)。当然,除了使用AspectJ特殊的语言外,AspectJ还支持原生的Java,只要加上
2017-09-07 09:26:57
337
转载 Android中使用AspectJ
aop学习 深入理解Android之AOP什么是AOPAOP是Aspect Oriented Programming的缩写,即『面向切面编程』。它和我们平时接触到的OOP都是编程的不同思想,OOP,即『面向对象编程』,它提倡的是将功能模块化,对象化,而AOP的思想,则不太一样,它提倡的是针对同一类问题的统一处理,当然,我们在实际编程过程中,不可能单纯的安装AOP或者OOP的思想来编程,
2017-09-07 09:26:01
273
转载 SynchronousQueue、LinkedBlockingQueue、ArrayBlockingQueue性能测试
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://stevex.blog.51cto.com/4300375/1287085听说JDK6对SynchronousQueue做了性能优化,避免对竞争资源加锁,所以想试试到底平时是选择SynchronousQueue还是其他BlockingQueue。
2017-08-31 11:32:12
452
转载 解决组件化开发butterknife 在 library中使用的坑
在Android开发中butterknife是一个很好的对资源初始化的工具,它可以使你的代码简洁通俗易懂,同时配合Android ButterKnife Zelezny插件可以让你写代码的速度提升至少20倍。在一般app中我们都是单组件开发,什么意思呢,你只有一个主moduel,所有代码不管是java,xml,资源,依赖库都在app中,这个时候使用butterknife是非常简单的,如GitH
2017-08-21 11:33:57
745
转载 Android注解使用之注解编译android-apt如何切换到annotationProcessor
前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不再维护该工具了,因为Android Studio推出了官方插件,并且可以通过gradle来简单的配置,它就是annotationProcessor,今天来学习一下如何将原来的android-
2017-08-15 17:08:27
394
OpenGL入门教程(精选)
2022-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人