音视频
文章平均质量分 92
顾修忠
我想要简单的生活,生活却不让我简单。
展开
-
Android音视频【十三】OpenSL ES介绍&基于OpenSL ES实现音频采集
人间观察勿再别人的心中修行自己,勿再自己的心中强求别人。前言最近写文章有点偷懒了,离上次写文章大概一个月了。一般Android音频的采集在java层使用AudioRecord类进行采集。但是为什么要学OpenSL呢?除了C/C++的性能优势(不过其实java的效率也不低)之外,最主要是你如果使用java层的接口,还需要通过一层JNI,比较复杂,性能消耗也大。如果用OpenSL的话就能直接在C/C++里面把事情都处理了。所以有时候为了开发更加高效的 Android 音频应用需要在底层直接进行录.原创 2021-06-07 10:00:14 · 3056 阅读 · 3 评论 -
Android音视频【十二】使用opensles和audiotrack进行播放pcm
人间观察年龄到了,有些事就妥协了,这个世界上没有人可以随心所欲,生活会逼着你选择答案……最困难的是你什么都改变不了……介绍播放pcm的两种方式本节我们学习下如何播放pcm数据,在Android中有两种方法:一种是使用java层的AudioTrack方法,一种是使用底层的OpenSLES直接在jni层调用系统的OpenSLES的c方法实现。使用场景两种使用场景不一样:AudioTrack 一般用于 比如本地播放一个pcm文件/流,又或者播放解码后的音频的pcm流,API较简单。OpenSL原创 2021-04-24 14:22:58 · 2193 阅读 · 1 评论 -
Android音视频【十一】视频混音
人间观察其实人这一辈子 真的遇不到几个真心对你好爱你的人 如果有幸能牵手 那就别并肩 好好的 别老是冷冰冰 说反话简介短视频的编辑功能有很多,比如:添加背景音乐,剪切,拼接视频/音频,特效,贴纸等等。本文介绍为MP4视频增加背景音乐(或者控制视频原始的音量大小),其中涉及到音视频的解码,视频和音频的指定时长的提取,音频视频的分离,混合视频音频生成mp4,音频混音,音量调节以及一些音频处理细节和注意的地方等技术。采用的是Android的硬编解码MediaCodec+ MediaExtractor+原创 2021-03-28 00:28:28 · 1043 阅读 · 0 评论 -
android音视频【十】音频mp3剪切
人间观察为了等你,我错过了等我的人。介绍Android中在一些短视频的制作app软件上,会有给视频增加背景音乐的功能,而背景音乐/歌曲(一般是mp3)是从服务器上下载后,然后本地解码,往往用户会选择一首歌曲的部分的时间段。所以实现方案就是:下载mp3->解码部分mp3为pcm->其它操作(比如文件,pcm处理)。所以此篇主要介绍解码部分的mp3为pcm,可以理解为mp3的剪切。后续会介绍如何给视频增加背景音&视频的剪切等上篇介绍过mp3的解码,这里主要介绍的是对其进行部分.原创 2021-03-07 15:36:55 · 2161 阅读 · 5 评论 -
android音视频【九】音频硬编解码pcm&aac&wav
人间观察时间的流逝总是悄无声息的这篇看下音频的硬编解码(MediaCodec),主要内容包含AudioRecord采集pcm硬编码为aacmp3硬解码为pcmpcm转为wav格式为什么介绍这些呢? 因为在直播中音频基本上都是aac格式的,在短视频中比如:添加背景音进行混音,替换背景音乐,视频文件提取音频,剪切音频,插入音频等等都会涉及。所以比较重要,当然也有软编码,后续介绍。因工作中用不到kotlin,示例代码我采用kotlin进行,顺便练习下AudioRecord采集pcm硬编.原创 2021-02-14 20:15:33 · 3423 阅读 · 0 评论 -
Android音视频【八】音频基础
人间观察今年应该不回家过年了,长这么大还真是一个人第一次在外过年,前些文章讲了视频,我们开始音频。音频的基础概念开始介绍前,先看一个声音的波形图:横轴是时间,纵轴为振幅,两个图像分别代表左右声道。由于声音频率较大,所以在图像中的信号不是“正弦”,而是实心的。声音是一种波声音是一种压力波,当敲击键盘或者撞击物体时,它们的震动会引起空气的震动,使空气产生疏密变化,由此就形成了一种声波。声波的三要素声波的三要素是频率、振幅、和波形,频率代表音阶的高低,振幅代表响度,波形代表音色。频率.原创 2021-01-31 13:53:14 · 646 阅读 · 1 评论 -
Android音视频【七】H265硬编解码&视频通话
人间观察我该如何去表达呢前面介绍了H265的一些知识,本篇实现利用camera采集进行H265硬编码,利用WebSocket来传输H265裸流,接收到H265的码流后进行H265解码渲染到surfaceview上,从而实现简易的视频通话。主要有:摄像头如何处理,如何拿到摄像头的yuv数据,yuv数据怎么处理,实现Android H265硬编码和硬解码,vps,sps,pps怎么处理以及如何在网络上传输。1 .这里用哪种协议不是本文的重点,本文采用java封装好websocket协议的组件,在真.原创 2021-01-26 09:43:26 · 4340 阅读 · 1 评论 -
Android音视频【六】视频数据存储方式YUV
人间观察这个社会很浮躁,千万不要考验人性在视频中的数据保存和传输都是YUV数据格式。主要是为了降低数据大小,如果用argb格式的数据,1px可能需要4个字节,而用YUV可能就需要1.5个字节。YUV简介与RGB类似,YUV也是一种颜色编码方法,主要用于视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,比如这样的设计解决了彩色电视机与黑白电视的兼容问题。YUV,分为三个分量,“Y”表示的是明亮度(Luminance或Luma),也就是灰度值;.原创 2021-01-08 23:23:31 · 756 阅读 · 1 评论 -
Android音视频【五】H265/HEVC&码流结构
人间观察我好像还什么都没有准备好,就到了而立之年的年纪,不是吃一个糖就能开心的年纪了。前面我们了解了H264/AVC的一些知识。今天我们看H265 , 只有了解了这些基础的,什么协议(flv等)啦,什么封装格式(mp4等)啦,网络传输啦等都是很有帮助的。背景知识H265 又被叫做HEVC(全称叫做 Hight Efficiency Video Coding,高效率视频编码),它同H264一样也是ITU-T和ISO两个组织共同制定的视频压缩标准,是H264/AVC标准的继承者。H265/HEVC.原创 2021-01-02 16:21:10 · 3773 阅读 · 2 评论 -
Android音视频【四】H264硬编码
人间观察你什么时候觉得自己好孤独这篇我们介绍如何在Android中实现硬编码为H264,用camera或者其它数据来源也行,我们先不用camera,camera还是蛮复杂的(比如前后置摄像头预览,yuv数据转换,camera2等等)。本篇采用录屏(录制手机屏幕)然后编码h264到文件。如果你看了上篇文章了解了硬编码和h264,这篇就很简单了。代码用kotlin实现,学kotlin中,练练手。。。录屏Android中的录屏功能是在Android 5.0 API 21 上新增的,不需要roo.原创 2020-12-30 19:58:12 · 5135 阅读 · 9 评论 -
Android音视频【三】硬解码播放H264
人间观察穷人家的孩子真的是在社会上瞎混遥远的2020年马上就过去了,天呐!!!前两篇介绍了下H264的知识和码流结构,本篇就拿上篇从抖音/快手抽离的h264文件实现在Android中进行解码播放&以及介绍所涉及的知识。本文代码用kotlin来写,最近在学习ing,加油吧,打工人,你要悄悄打工。视频效果文章搞不了视频,贴个图吧。软硬编解码在介绍前我们需要知道什么是软硬编解码?1.软编解码:是利用软件本身或者说是使用CPU对原视频进行编解码的方式。优点:兼容性好。缺点:C.原创 2020-12-26 13:31:15 · 6257 阅读 · 5 评论 -
Android音视频【二】 H264码流结构
人间观察因为穷,人会放弃体面: 个人形象的体面,工作的体面,社交的体面,尊严的体面。在分析H.264码流前,我们得得先获取一个H.264的码流,两种方法获取:一是自己写个代码编码为h264的码流(后续介绍),二是是直接从视频文件里抽取。我们这里采用方法二。当然也有其它方法。快手抖音的短视频/直播,毫无疑问采取的编码方式肯定是H.264和AAC生成的MP4封装格式的视频,我们下载一个mp4(可以看一下文件的简介中的编解码器是否是H.264,AAC),用如下ffmpeg命令抽取h264和aac://.原创 2020-12-19 13:05:00 · 2461 阅读 · 3 评论 -
Android音视频【一】H264编码基础
音视频编码解码就是指通过特定的压缩/解压技术,将某个音视频格式的数据转换为另一种音视频格式数据。目前在Android中的音视频用的最多的就是H264+aac的方式进行编码和解码,其实不止Android,H264在整个音视频领域都是使用最广泛的编码方式。H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输。当然还有比H264更好的H265编码,H265是基于H264优化的。1.H264标准的演进国际上主流制定视频编解码技术的组织有两个,一个是国际电联(ITU-T),它制定的标准有H.261原创 2020-12-12 15:48:10 · 4168 阅读 · 8 评论