- 博客(32)
- 收藏
- 关注
原创 FFmpeg开发->PCM转AAC存入本地
流程图ffmpeg初始化大体差不多,说些注意的地方编码器参数的设置,这里以单通道8000的采样率举例 //因为我用的是fdk-aac所以不需要重采样的问题如果用ffmpeg自带的则需要重采样 audioCodecCxt->sample_fmt = AV_SAMPLE_FMT_S16; //采样格式 audioCodecCxt->bit_rate = 96000; //码率 audioCodecCxt->sample_rate = 8000; //采样率
2022-01-05 09:41:07 279
原创 记录记录记录记录记录记录
#ifndef HELMET_AUDIOVIDEO_H#define HELMET_AUDIOVIDEO_H#include <jni.h>#include <android/log.h>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libavfilter/avfilter.h"#include "libavfilter/buffersin
2021-12-27 21:00:51 1255
原创 Android音视频编码 -> 麦克风实时采集PCM转AAC
编码流程注册所有组件 av_register_all()创建封装格式上下文 avformat_alloc_context() 返回一个AVFormatContext初始化输入输出上下文(打开输出文件) avio_open(),可以输出到本地或者网络地址等等创建媒体流 avformat_new_stream()初始化编码器上下文以及设置参数 AVCodecContext查找编码器 avcodec_find_encoder_by_name()打开编码器 avcodec_open2()写入头
2021-12-27 11:31:43 2734
原创 Android音视频开发 ->FFmpeg音频编码本地PCM文件转AAC
编码流程注册所有组件 av_register_all()创建封装格式上下文 avformat_alloc_context() 返回一个AVFormatContext初始化输入输出上下文 avio_open(),可以输出到本地或者网络地址等等创建媒体流 avformat_new_stream()初始化编码器上下文以及设置参数 AVCodecContext查找编码器 avcodec_find_encoder_by_name()打开编码器 avcodec_open2()写入头文件 avfor
2021-12-24 18:39:52 3245
原创 Android音视频开发 -> 本地camera视频采集
直接上代码 private static Camera camera; private SurfaceHolder holder; public CameraUtils(SurfaceView surfaceView) { holder = surfaceView.getHolder(); holder.addCallback(this); } public static CameraUtils cameraUtils; pu
2021-12-22 14:18:07 493
原创 Android音视频开发 -> fdk-aac解码eld-aac为pcm
大体实例fdk-aac 解码初始化fdk-aac 开始解码公共变量//解码器对象实例HANDLE_AACDECODER aacDecoder;fdk-aac解码初始化int FdkAacDecode::fdkAacDecodeInit(JNIEnv *env) { //Java方法初始化 aacDecodeClass = env->FindClass("com/zkzj/aaclib/AacUtil"); aacDecodeId = env->GetM
2021-12-22 14:14:14 1271
原创 Android音视频开发 -> fdk-aac编码pcm为eld-aac
大体思路fdk-aac 编码初始化fdk-aac 开始编码公共变量//编码器实例对象HANDLE_AACENCODER aacEncoder;//编码器实例信息结构体AACENC_InfoStruct info = {0};//采样率int sampleRate = 8000;//码率int bitRate = 64000;//Java实例(调用java里面的方法不需要可以不写)jclass aacClass;jmethodID aacId;fdk-aac初始化int
2021-12-22 14:09:02 992
原创 Android音视频开发 -> 本地音频采集
几个相关概念采样频率 > 以8000为例通道数 > 以单通道为例采样格式 > 以16bit为例直接上代码public class AudioUtil { //音频采集输入源 int audioSource = MediaRecorder.AudioSource.MIC; //音频的采样频率 int sampleRate = 8000; //单通道 int channelConfig = AudioFormat.CHANNE
2021-12-22 13:54:44 975
原创 Android音视频开发 -> ffmpeg+h264+avfilter+camera推流旋转角度
大体思路ffmpeg推流相关组件初始化avFilter初始化264编码器初始化接收摄像头的实时数据开始推流,这个数据格式需要转换摄像头是NV21的需要转换成YUV420P公共变量//解封装全局上下文AVFormatContext *avFormatContext;//流通道,存储音视频流AVStream *video_st;//解码信息上下文AVCodecContext *pCodecCtx;//解码器返回指针对象AVCodec *pCodec;//解码前数据结构体AVPa
2021-12-22 13:42:24 976
原创 Boot整合Mybatis-plus
Boot整合Mybatis-plus导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version></dependency><dependency> <groupId&g
2021-03-09 14:08:25 125
原创 Docker部署启动Mysql
Docker部署启动Mysql下载mysql镜像docker pull mysql:8.0 #不指定版本默认最新版本8.0: Pulling from library/mysqla076a628af6f: Downloading [=====================> ] 11.41MB/27.11MBa076a628af6f: Pull complete f6c208f3f991: Pull complete 88a
2021-03-01 17:25:38 193
原创 Docker常用命令
Docker常用命令帮助命令docker versiondocker info docker --help镜像命令docker images # 查看所有镜像#具体内部成员解释REPOSITORY # 镜像的仓库源TAG # 镜像的标签IMAGE ID # 镜像的IDCREATED # 镜像的创建时间SIZE # 镜像的大小docker images -a # 显示所有镜像docker images -q # 显示镜像IDdocker search XXX # 搜索镜像
2021-02-25 18:02:06 78
原创 Docker安装配置
Linux Centos7安装步骤#1. 卸载旧的版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ d
2021-02-25 16:43:32 91
原创 WebPack安装使用
WebPack安装使用安装//cmd安装即可//命令 npm install -g webpack webpack-cli//查看是否安装成功 webpack -v//新建一个nodejs工程进行接下来的操作webpack合并JS根目录新建webpack.config.js文件写入以下配置//导入path模块(nodejs的内置模块)const path = require("path");//定义打包规则module.exports = { entry: "./
2021-02-25 14:50:48 309
原创 ES6模块化语法
ES6模块化语法导出方法//使用关键字export可以导出公共方法export function getList(){ console.log("获取后台数据")}export function saveList(){ console.log("保存后台数据")}导入方法//使用关键字import可以导入方法,格式如下import {getList,saveList} from './api'getList();saveList();// './api' 引用
2021-02-25 13:14:15 477
原创 Babel安装配置使用
Babel安装配置使用准备工作npm init -y 快速创建nodes工程根目录建立src文件夹将准备转义的代码放在这里本地安装babelnpm install --save-dev babel-cli创建.babelrc配置.babelrc{ "presets": ["es2015"], "plugins": []}安装转义器npm install --save-dev babel-preset-es2015
2021-02-25 12:43:13 273
原创 Npm简单使用
Npm类型Maven快速构建node.js工程快速安装依赖第三方工程如何快速构建node.js工程1. 运行终端2. 执行命令npm init/npm init -y 1. 区别:后者一步到位,描述信息输入默认值前者相反3. 然后依次输入项目信息4. 得到一个pachage.json文件(类似pom.xml文件)如何依赖第三方工程npm install XXX 或者 npm i XXX安装模块会放入node_modules文件夹中如何使用//以使用mysql为例/
2021-02-24 16:28:25 166
原创 let,var,const区别
定义变量传统定义变量和常量都用varEs6定义变量用let定义常量用constvar name = "dasda";var PI = Math.E;-----------------------let pwd = 123;const PI = Math.E;let,var,const区别let和const解决var变量穿透问题和常量修改问题穿透问题<script> for(var i = 0; i <= 5; i++){
2021-02-24 15:50:22 88
原创 初识-NodeJs
NodeJs写一个http服务//写一个http服务const http = require('http')//引用http包http.createServer(function(request,response){//创建一个服务 //浏览器识别内容(告诉浏览器识别的方式) response.writeHead(200,{'Content-type':'text/plain;charset=utf-8'}) //以text/plain来解析数据 //输出内容
2021-02-24 13:28:38 160
原创 java-多线程
多线程Process与Thread注意:很多多线程是模拟出来的,真正的多线程是指多个CPU即多核,如多个服务器,如果是模拟出来的就是在一个CPU的情况下在同一个 时间切换不同的工作,切换时间很短所以照成同时执行的错觉进程与程序相关联,程序师指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念进程是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位一个进程可以包含若干个线程,一个进程必须有一个线程不然这个进程没有意义,线程就是CPU调度和执行的单位继承Thread
2021-02-23 15:46:28 197 4
原创 Java基础
java标识符命名规则java所有的组成部分都需要名字,类名,变量名以及方法名都被成为标识符标识符以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头大小写敏感不能与Java语言的关键字重名不能和Java类库的类名重名不能有空格、@、#、+、-、/ 等符号长度无限制应该使用有意义的名称,达到见名知意的目的不可以是 true 和 false数据类型基本类型整数类型byte(1个字节范围)short(2个字节范围)
2021-02-22 16:19:03 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人