小码哥_WS
码龄10年
关注
提问 私信
  • 博客:676,232
    社区:88
    问答:4,197
    680,517
    总访问量
  • 138
    原创
  • 890,423
    排名
  • 1,267
    粉丝
  • 4
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 目前就职: 腾讯科技
  • 加入CSDN时间: 2015-01-04
博客简介:

WangShuo的专栏

博客描述:
不积跬步,无以至千里;不积小流,无以成江海!
查看详细资料
个人成就
  • 博客专家认证
  • 获得241次点赞
  • 内容获得243次评论
  • 获得646次收藏
  • 代码片获得377次分享
创作历程
  • 1篇
    2021年
  • 2篇
    2020年
  • 3篇
    2019年
  • 3篇
    2018年
  • 95篇
    2017年
  • 35篇
    2016年
  • 1篇
    2015年
成就勋章
TA的专栏
  • ffmpeg实战教程
    12篇
  • Android Multimedia实战
    8篇
  • Java/JavaWeb
    11篇
  • Android自定义View
    9篇
  • Android第三方SDK以及自动化测试
    10篇
  • Android进阶之路
    52篇
  • Android OS 源码分析
    12篇
  • Android Camera
    10篇
  • 音视频
    26篇
  • 流媒体-直播-编解码
    15篇
  • ffmpeg
    28篇
  • openGL/Vulkan
    7篇
  • C/C++
    5篇
  • python/Kotlin
    1篇
兴趣领域 设置
  • 软件工程
    性能优化
联系方式

github: 点击进入GitHub

简 书: 点击进入简书

android高阶开发群:364886309

  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

WebRtc音频处理

原创
发布博客 2021.02.02 ·
615 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

国际化开发 - 时区知识

时区概念:时区是地球上具有统一的法定标准时间的区域。由于区域的法律定义可能千差万别且经常更改,因此通常需要数据库或查找表才能正确应用时区规则。时区数据库目前通常使用两种不同的时区数据库:1.Microsoft Windows时区数据库由Microsoft维护在Windows平台实现。Windows API获取本机时区key示例: "China Standard Time"2.IANA /奥尔森时区数据库也称为ZoneInfo,TZDB或TZ数据库,国际标准时区在Linux,Ma
原创
发布博客 2020.07.09 ·
1147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android 音频系统播放延迟时间获取(latency)

1.系统AudioManager类里面有一个隐藏接口:可以用反射获取到系统播放硬件延迟 AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); Method m = am.getClass().getMethod("getOutputLate...
原创
发布博客 2020.03.16 ·
4768 阅读 ·
0 点赞 ·
1 评论 ·
6 收藏

音频处理—SOX音效

音频处理目前软件开发中所做的音频处理主要包括:音频编解码3A(回声消除AEC,降噪ANC,增益AGC)混响,均衡器,压缩器等对于音频编解码,使用成熟的编解码开源库即可。对于3A算法,基本上借鉴webRTC上的3A算法扩展即可。但是对于混响,均衡器,压缩器等音效处理确是没有一种明确的处理方案,目前已知的比较靠谱的开源库就是(SOX,openAL)SOX介绍SOX:一款自称是音频处...
原创
发布博客 2019.09.27 ·
7620 阅读 ·
5 点赞 ·
4 评论 ·
24 收藏

ExoPlayer+FFMpeg软解

概述ExoPlayer是Google开源的Android平台媒体播放器。 它是Android的MediaPlayer API的替代品。相比于IJKPlayer,EXOPlayer更易于拓展,功能更多,bug更少。ExoPlayer虽然不支持软解但是为开发者扩展软解预留了接口。网上竟然搜不到ExoPlayer+软解的扩展实现,那就有必要来一篇了hhh。预先准备:1.下载NDK(要下载NDK...
原创
发布博客 2019.05.21 ·
11000 阅读 ·
1 点赞 ·
5 评论 ·
10 收藏

Android 耳返实践 OpenSL ES AAudio Oboe

耳返概述:耳返主要实现监听的功能,在低延时的情况下可以给主播一个比较真实音频的反馈,在演唱会等专业场景里比较常用。技术实现上来说就是要时时的把录制进的音频数据立刻播放出去,当然这个过程要低延迟。AudioRecord,AudioTrack在Android系统上做耳返,实现一个高性能的音频录制音频播放是一件很痛苦的事;因为我们并不能直接使用系统的AudioRecord,AudioTrack。...
原创
发布博客 2019.02.27 ·
7275 阅读 ·
4 点赞 ·
4 评论 ·
13 收藏

视频录制与编辑架构设计

视频录制模块视频录制由视频预览、伴奏播放、视频录制/暂停、倍速/半速录制四部分组成。(1)视频预览在Android&IOS平台我们可以使用自己的Camera+OpenGL ES进行视频的预览,这里的预览过程一般就是从相机获取纹理ID并进行诸如美颜、贴纸等特效的处理,之后再绘制到相应的View上。(2)伴奏播放伴奏播放是指将一个伴奏文件以m4a或mp3形式下载到本地,随后对文件进...
原创
发布博客 2018.09.29 ·
2704 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

MediaCodec+MediaExtractor+TextureView+AudioTrack实现简易视频播放器

MediaCodec,MediaExtractor,TextureView这三个类的作用就不说了。 https://blog.csdn.net/column/details/15450.html主要思路流程:MediaExtractor解封装,拿到H264数据。 MediaCodec把数据解码到Surface中。 TextureView展示Surface中的数据。当然这个还可以用...
原创
发布博客 2018.07.28 ·
3017 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

Android——直播推流SDK

概述:好像有三个月没有更新博客了,年前实在是忙的累成狗啊。。。本想直播功能稳定了就没那么多事了,没想到又要搞魔法短视频功能,马丹,短视频玩成了花啊,撸起袖子干。 现在把我们项目中的直播SDK开源出来,我们是境外直播平台,百万用户,经过半年迭代,SDK已经相当稳定,大家可以放心使用。https://github.com/WangShuo1143368701/WSLiveDemo 这个sdk是...
原创
发布博客 2018.02.27 ·
34021 阅读 ·
7 点赞 ·
33 评论 ·
42 收藏

Android消息传递机制总结

由于直播项目的推流SDK,拉流SDK已经稳定。所以这段时间一直开发业务层新需求。业务层的核心灵魂就是层层的消息传递,今天就来总结一下andorid的应用层的各种消息传递。1.线程间通讯 ——— Handler,HandlerThread等。 2.组件间通信 ——— BroadcastReceiver,接口回调等。 3. 第三方通信 ——— EventBus,rxBus 4.进程间通
原创
发布博客 2017.11.23 ·
1816 阅读 ·
1 点赞 ·
0 评论 ·
11 收藏

openGL ES进阶教程(六)美颜滤镜之美白,磨皮,红润

网上搜罗了一堆的美颜滤镜效果,可惜尽不如人意。最后偶然看到ios上提供了一个用OC写的美颜滤镜,好吧,改写成Java的试试。好在大学时期搞过一段时间IOS开发,用自己的半吊子的水平,没想到还真改成功了。先上效果图:网上搜涨痘痘的图片,搜到刘涛了,罪过罪过~原图:美颜后:可见有四个可滑动的bar,从上到下分别是,磨皮度,磨皮值,美白,红润。美颜原理磨皮:本质就是让像素点模糊,可以使用高斯模糊,但是可能
原创
发布博客 2017.09.01 ·
19004 阅读 ·
3 点赞 ·
5 评论 ·
35 收藏

openGL ES进阶教程(五)制作一个简单的VR播放器,播放全景视频

之前写过全景(VR)图片,和用openGL ES+MediaPlayer 渲染播放视频+滤镜效果这一篇就在之前的基础上实现一个最简单的VR播放器,播放全景视频。概述:全景视频是一种用3D摄像机进行全方位360度进行拍摄的视频,用户在观看视频的时候,可以随意调节视频上下左右进行观看。展示:“身临其境的枪战” 可见晃动手机,视图也跟着转! 原理:1.用OpenGL绘制一个球。 2.MediaPl
原创
发布博客 2017.08.01 ·
8137 阅读 ·
2 点赞 ·
2 评论 ·
20 收藏

ffmpeg实战教程(十三)iJKPlayer源码简析

要使用封装优化ijk就必须先了解ffmpeg,然后看ijk对ffmpeg的C层封装! 这是我看ijk源码时候的笔记,比较散乱。不喜勿喷~ijk源码简析:1.ijkplayer_jni.c 封装的播放器JNI层 API,对应java层调用。2.ijkplayer.c 封装的播放器API,对应给JNI层调用3.ff_ffplay_options.c 参
原创
发布博客 2017.07.01 ·
6931 阅读 ·
1 点赞 ·
0 评论 ·
13 收藏

openGL ES进阶教程(四)用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频 ,今天再给大家来一篇openGL ES+MediaPlayer来播放视频。。。。当年也曾呆过camera开发组近一年时间,可惜那时候没写博客的意识,没能给自己给大家留下多少干货分享。。。上个效果图吧:用openGL着色器实现黑白(灰度图)效果
原创
发布博客 2017.05.27 ·
10034 阅读 ·
5 点赞 ·
5 评论 ·
21 收藏

AndroidN DisplayManagerService源码简析,亮屏流程分析

PowerManagerService源码分析 :http://blog.csdn.net/king1425/article/details/70224476 Android的亮屏流程从android系统结构层次来分可以分为三个流程。App应用唤醒源;Framework层Power结合Display,Light服务做亮屏绘制准备工作;底层驱动点亮背光灯。这里重点分析一下Framework层亮屏的一
原创
发布博客 2017.05.25 ·
3797 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

openGL ES进阶教程(三)用openGL实现动态壁纸,就是这么简单

网上动态壁纸的实现教程有很多,但是用openGL实现动态壁纸的教程却是寥寥无几,那么今天就带领大家学习用openGL实现动态壁纸,起一个抛砖引玉吧。在之前曾写过一篇 ffmpeg/camera实现最近很火的视频壁纸,相机壁纸 ,动态壁纸的实现套路已经写了,今天就不追述了。老规矩,先看效果图让大家有个概念:大家也看出来了,没错,是基于上篇openGL ES进阶教程(二)之全景图片 实现的。下面就具体说
原创
发布博客 2017.05.24 ·
4055 阅读 ·
1 点赞 ·
1 评论 ·
5 收藏

ffmpeg实战教程(十二)为视频添加/更换背景音乐

2017年,各种关于视频处理的功能层出不穷,现在基本上大多APP都有视频上传播放功能。 然而上传,播放可用的优秀框架有很多,我们在此就不说了。 本篇我们就做一个用ffmpeg给视频添加/更换背景音乐的功能UI界面有两个输入框,第一个填入要加背景音乐的视频文件,第一个要添加音乐的文件。 然后点击按钮。 可见在手机根目录生成了一个合成的视频文件。试播一下,发现已经有了背景音乐。 其实现原理主要是
原创
发布博客 2017.05.22 ·
11475 阅读 ·
1 点赞 ·
4 评论 ·
11 收藏

ffmpeg实战教程(十一)手把手教你实现直播功能,不依赖第三方SDK

直播,2016最火的技术之一了,更多的关于直播的知识:http://blog.csdn.net/king1425/article/details/72489272 …这篇我们就不依赖任何集成好的SDK,自己搭建服务器,用ffmpeg+nginx实现手机直播功能先上图:推流的手机拉流的网页和VL播放器拉流的手机客户端对于nginx服务器的搭建之前有写过:ffmpeg实战教程(九)windows下ff
原创
发布博客 2017.05.19 ·
18946 阅读 ·
7 点赞 ·
1 评论 ·
42 收藏

关于音视频直播技术的总结

流媒体协议 流媒体协议是服务器与客户端之间通信遵循的规定。当前网络上主要的流媒体协议如图所示。直播平台参数对比 主流互联网视音频平台直播服务的参数对比如图所示:直播技术架构图:可以看到直播的流程可以分为如下几步:采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放1.音视频采集采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节
原创
发布博客 2017.05.18 ·
13970 阅读 ·
11 点赞 ·
0 评论 ·
52 收藏

openGL ES进阶教程(二)之全景图片

全景又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体最大的区别是“可操作,可交互”。 全景分为虚拟现实和3D实景两种。虚拟现实是利用maya等软件,制作出来的模拟现实的场景,代表有虚拟紫禁城等;3D实景是利用单反相机或街景车拍摄实景照片,经过特殊的拼合,处理,让作者立于画境中,让最美的一面展现出来。全景顾名思义就是给人以三维立体感觉的实景360度全方位图像~ 此图像最大
原创
发布博客 2017.05.17 ·
6845 阅读 ·
3 点赞 ·
1 评论 ·
15 收藏
加载更多