分类目录归档:Android
Android音视频开发实战02-Jni
一 JNI
1.1 什么是JNI
JNI是Java Native Interface的缩写,是Java提供的一种机制,用于在Java代码中调用本地(C/C++)代码。它允许Java代码与本地代码进行交互,通过JNI,Java应用程序可以调用一些原生库或者操作系统API,以获取更好的性能和更强的功能支持。
使用JNI需要编写一些Native方法,并将其实现在本地代码(如C/C++)中。这些本地方法可以直接从Java代码中调用,从而获得更高的性能和更灵活的控制权。通常情况下,为了方便和可维护性… 查看全文
Android音视频开发实战01-环境搭建
一,FFmpeg介绍
FFmpeg 是一款流行的开源多媒体处理工具,它可以用于转换、编辑、录制和流式传输音视频文件。FFmpeg 具有广泛的应用场景,包括视频编解码、格式转换、裁剪、合并、滤镜等等。官网:https://ffmpeg.org/
FFmpeg 支持各种常见的音视频格式,例如 MP4、AVI、FLV、MOV、AAC、MP3、M4A 等等,并且可以通过添加插件支持更多的格式。与其他视频处理软件相比,FFmpeg 优势在于它的跨平台性能好,可以在 Windows、macOS 和 Linux … 查看全文
Android给视频添加背景音乐的解决方案
源码地址:https://github.com/bookzhan/bzmedia (BackgroundMusicUtil.cpp)
在处理视频背景音乐的时候一般有两种方案:
- 在视频原声的基础上添加背景音乐
- 用背景音乐替换掉视频原声
方案一,在视频原声的基础上添加背景音乐,同时支持调整视频原声与背景音乐声音的大小:
思路用FFmpeg调用命令行的方式来做就好了,但是需要区分视频是否有音频,这个需要分开处理,这种对输入的背景音乐格式没有严格的要求,取决于FFmpeg编译的时候选择支持的音频… 查看全文
开源一个Android 音视频库,包含了视频录制,编解码,以及编辑,和常见的OpenGL,FFmpeg操作
BZMedia 是一个Android 音视频库,包含视频录制,视频编解码,视频编辑,常见的OpenGL操作
项目介绍:这套音视频库包含了常见的音视频处理技术,服务于用户量高达到8亿的APP,里面使用的技术在市场上深度验证过,现在逐步整理出来然后开源,共大家学习交流
完整工程地址:https://github.com/bookzhan/bzmedia.git
版本更新记录:
V1.0.4 :
- 支持添加背景音乐
- 支持完全替换掉背景音乐
V1.0.3 支持的主要功能是视频录制:
- 支持的采集源有YUVI42
Android裁剪YUV同时支持Camera1 Camera2
在Android中使用Camera避免不了操作YUV,但是我们经常会遇到在不同手机上Camera出来的尺寸不是我们想要的,这个时候就需要裁剪了,最优办法当然是从源头YUV进行处理,一是YUV相对来说数据量较小,二是在源头上处理了,可以为后续流程节省CPU算力开销。如果你们在整个工程中用的是Texture,我也有解决方案,稍后放出来。
源码地址与Demo:https://github.com/bookzhan/bzyuvlib
首先我们要知道Android 中常见的YUV数据结构:
Y… 查看全文
Android FFmpeg命令行工具支持进度回调
本工程是基于FFmpeg4.2.3,在工程里面也有一个3.3.2的版本,有需要的可以自己去Git库里面checkout,工程17年就做好了,一直没有开源,原谅我懒,哈哈哈
源码地址:https://github.com/bookzhan/bzffmpegcmd.git
工程支持进度回调,移动端常用的的功能都支持,如果需要支持更多的功能需要重新编译FFmpeg,请参考我之前的编译工程:https://120.27.239.50/wordpress/index.php/2020/05… 查看全文