分类目录归档: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, FFmpeg | 留下评论

Android音视频开发实战01-环境搭建

一,FFmpeg介绍

FFmpeg 是一款流行的开源多媒体处理工具,它可以用于转换、编辑、录制和流式传输音视频文件。FFmpeg 具有广泛的应用场景,包括视频编解码、格式转换、裁剪、合并、滤镜等等。官网:https://ffmpeg.org/

FFmpeg 支持各种常见的音视频格式,例如 MP4、AVI、FLV、MOV、AAC、MP3、M4A 等等,并且可以通过添加插件支持更多的格式。与其他视频处理软件相比,FFmpeg 优势在于它的跨平台性能好,可以在 Windows、macOS 和 Linux … 查看全文

发表在 Android, FFmpeg | 留下评论

Android给视频添加背景音乐的解决方案

源码地址:https://github.com/bookzhan/bzmedia (BackgroundMusicUtil.cpp)

在处理视频背景音乐的时候一般有两种方案:

  1. 在视频原声的基础上添加背景音乐
  2. 用背景音乐替换掉视频原声

方案一,在视频原声的基础上添加背景音乐,同时支持调整视频原声与背景音乐声音的大小:

思路用FFmpeg调用命令行的方式来做就好了,但是需要区分视频是否有音频,这个需要分开处理,这种对输入的背景音乐格式没有严格的要求,取决于FFmpeg编译的时候选择支持的音频… 查看全文

发表在 Android, FFmpeg | 留下评论

开源一个Android 音视频库,包含了视频录制,编解码,以及编辑,和常见的OpenGL,FFmpeg操作

BZMedia 是一个Android 音视频库,包含视频录制,视频编解码,视频编辑,常见的OpenGL操作

项目介绍:这套音视频库包含了常见的音视频处理技术,服务于用户量高达到8亿的APP,里面使用的技术在市场上深度验证过,现在逐步整理出来然后开源,共大家学习交流

完整工程地址:https://github.com/bookzhan/bzmedia.git

版本更新记录:

V1.0.4 :
  1. 支持添加背景音乐
  2. 支持完全替换掉背景音乐
V1.0.3 支持的主要功能是视频录制:
  1. 支持的采集源有YUVI42
查看全文
发表在 Android, FFmpeg | 2条评论

Android裁剪YUV同时支持Camera1 Camera2

在Android中使用Camera避免不了操作YUV,但是我们经常会遇到在不同手机上Camera出来的尺寸不是我们想要的,这个时候就需要裁剪了,最优办法当然是从源头YUV进行处理,一是YUV相对来说数据量较小,二是在源头上处理了,可以为后续流程节省CPU算力开销。如果你们在整个工程中用的是Texture,我也有解决方案,稍后放出来。

源码地址与Demo:https://github.com/bookzhan/bzyuvlib

首先我们要知道Android 中常见的YUV数据结构:

Y… 查看全文

发表在 Android | 留下评论

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查看全文

发表在 Android, FFmpeg | 留下评论