
音视频
文章平均质量分 76
小码哥_WS
这个作者很懒,什么都没留下…
展开
-
WebRtc音频处理
原创 2021-02-02 20:20:47 · 623 阅读 · 0 评论 -
Android 音频系统播放延迟时间获取(latency)
1.系统AudioManager类里面有一个隐藏接口:可以用反射获取到系统播放硬件延迟 AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); Method m = am.getClass().getMethod("getOutputLate...原创 2020-03-16 16:22:30 · 4793 阅读 · 1 评论 -
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 10:34:15 · 6950 阅读 · 0 评论 -
openGL ES进阶教程(四)用openGL ES+MediaPlayer 渲染播放视频+滤镜效果
之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频 ,今天再给大家来一篇openGL ES+MediaPlayer来播放视频。。。。当年也曾呆过camera开发组近一年时间,可惜那时候没写博客的意识,没能给自己给大家留下多少干货分享。。。上个效果图吧:用openGL着色器实现黑白(灰度图)效果原创 2017-05-27 09:50:55 · 10157 阅读 · 7 评论 -
Windows下编译android版ijkplayer
今天也来编译一下ijkplayer ,并做记录。 先普及一下cygwin和mingw知识 cygwin和mingw都是为用户提供在windows操作系统使用GNU工具的方法,使得在windows上可以编译为linux写的c源代码并运行(让你可以用signal等linux才有的api)。真正的不同在于 1,cygwin大,mingw小 2,cygwin编译后的exe需要cygwin1.dll作原创 2017-04-21 16:40:52 · 5075 阅读 · 5 评论 -
Android——直播推流SDK
概述:好像有三个月没有更新博客了,年前实在是忙的累成狗啊。。。本想直播功能稳定了就没那么多事了,没想到又要搞魔法短视频功能,马丹,短视频玩成了花啊,撸起袖子干。 现在把我们项目中的直播SDK开源出来,我们是境外直播平台,百万用户,经过半年迭代,SDK已经相当稳定,大家可以放心使用。https://github.com/WangShuo1143368701/WSLiveDemo 这个sdk是...原创 2018-02-27 19:00:32 · 34121 阅读 · 32 评论 -
MediaCodec+MediaExtractor+TextureView+AudioTrack实现简易视频播放器
MediaCodec,MediaExtractor,TextureView这三个类的作用就不说了。 https://blog.youkuaiyun.com/column/details/15450.html主要思路流程:MediaExtractor解封装,拿到H264数据。 MediaCodec把数据解码到Surface中。 TextureView展示Surface中的数据。当然这个还可以用...原创 2018-07-28 17:30:46 · 3030 阅读 · 4 评论 -
ffmpeg实战教程(十二)为视频添加/更换背景音乐
2017年,各种关于视频处理的功能层出不穷,现在基本上大多APP都有视频上传播放功能。 然而上传,播放可用的优秀框架有很多,我们在此就不说了。 本篇我们就做一个用ffmpeg给视频添加/更换背景音乐的功能UI界面有两个输入框,第一个填入要加背景音乐的视频文件,第一个要添加音乐的文件。 然后点击按钮。 可见在手机根目录生成了一个合成的视频文件。试播一下,发现已经有了背景音乐。 其实现原理主要是原创 2017-05-22 17:59:14 · 11488 阅读 · 11 评论 -
视频录制与编辑架构设计
视频录制模块视频录制由视频预览、伴奏播放、视频录制/暂停、倍速/半速录制四部分组成。(1)视频预览在Android&IOS平台我们可以使用自己的Camera+OpenGL ES进行视频的预览,这里的预览过程一般就是从相机获取纹理ID并进行诸如美颜、贴纸等特效的处理,之后再绘制到相应的View上。(2)伴奏播放伴奏播放是指将一个伴奏文件以m4a或mp3形式下载到本地,随后对文件进...原创 2018-09-29 10:10:37 · 2726 阅读 · 0 评论 -
Android 耳返实践 OpenSL ES AAudio Oboe
耳返概述:耳返主要实现监听的功能,在低延时的情况下可以给主播一个比较真实音频的反馈,在演唱会等专业场景里比较常用。技术实现上来说就是要时时的把录制进的音频数据立刻播放出去,当然这个过程要低延迟。AudioRecord,AudioTrack在Android系统上做耳返,实现一个高性能的音频录制音频播放是一件很痛苦的事;因为我们并不能直接使用系统的AudioRecord,AudioTrack。...原创 2019-02-27 19:39:49 · 7312 阅读 · 4 评论 -
ExoPlayer+FFMpeg软解
概述ExoPlayer是Google开源的Android平台媒体播放器。 它是Android的MediaPlayer API的替代品。相比于IJKPlayer,EXOPlayer更易于拓展,功能更多,bug更少。ExoPlayer虽然不支持软解但是为开发者扩展软解预留了接口。网上竟然搜不到ExoPlayer+软解的扩展实现,那就有必要来一篇了hhh。预先准备:1.下载NDK(要下载NDK...原创 2019-05-21 17:06:48 · 11070 阅读 · 5 评论 -
音频处理—SOX音效
音频处理目前软件开发中所做的音频处理主要包括:音频编解码3A(回声消除AEC,降噪ANC,增益AGC)混响,均衡器,压缩器等对于音频编解码,使用成熟的编解码开源库即可。对于3A算法,基本上借鉴webRTC上的3A算法扩展即可。但是对于混响,均衡器,压缩器等音效处理确是没有一种明确的处理方案,目前已知的比较靠谱的开源库就是(SOX,openAL)SOX介绍SOX:一款自称是音频处...原创 2019-09-27 10:37:14 · 7659 阅读 · 4 评论 -
ffmpeg实战教程(六)Android CMake实现解码(MP4转YUV)
在前面的文章中我们用ffmpeg在windows上实现了多种功能,下面系列的文章我们将移植到Android系统上实现。我们将使用最新版:最新版ffmpeg ffmpeg3.3 新版Android studio Android studio2.3 新版JNI编译方式 CMake对于Android开发者或许对C/C++/J原创 2017-05-09 11:55:49 · 10127 阅读 · 3 评论 -
Android Multimedia实战(五)MediaCodec编码解码实例解析
MediaCodec概述MediaCodec是一个Android原生的编解码器。 简单的来说,MediaCodec可以把摄像头采集的数据流编码为H264格式,这个过程是压缩过程。也可以把H264格式解码在surface类的控件上显示。我们先来看一下Android系统中解码器的命名,软解码器通常是以OMX.google开头的。硬解码器通常是以OMX.[hardware_vendor]开头的,比如TI原创 2017-04-28 12:00:46 · 4864 阅读 · 1 评论 -
windows下编译最新版ffmpeg3.3-android,并通过CMake方式移植到Android studio2.3中
windows下编译最新版ffmpeg3.3win下编译: 1.下载安装MinGW:http://sourceforge.net/projects/mingw/files/ 2.下载yasm http://yasm.tortall.net/Download.html 3.下载 ffmpeg:https://www.ffmpeg.org/download.html 编辑ffmpeg文件夹下原创 2017-04-21 20:34:02 · 8602 阅读 · 25 评论 -
悬窗播放视频,让你聊天看视频两不误(上)
当年的毕业设计拿出来记录一下,实现效果图如下:视频播放用的是vitamio框架。这里只讨论实现悬浮窗播放视频的思路1.点击视频播放器中的悬窗按钮,开启悬窗播放模式。这里启动了一个后台server。 先进入Home桌面,然后启动MediaPlaybackService Intent intent = new Intent(); intent.setAction(Int原创 2017-03-02 15:34:25 · 5044 阅读 · 1 评论 -
悬窗播放视频,让你聊天看视频两不误(下)
下面实现最小化悬窗,点击继续悬窗播放,拖动小火箭效果。 这部分代码借鉴了网上的小火箭效果 点击悬窗视频的一个按钮启动另一个server。展现小按钮图标。case R.id.iv_small: MyApplicaton.setValueProgress(valueProgress); onExit(); Intent原创 2017-03-02 16:09:35 · 3423 阅读 · 0 评论 -
Android MediaProvider,MediaScanner媒体文件扫描源码解析
关于媒体文件扫描,我们需要弄明白两个问题: 1.什么时候开启媒体文件扫描 2.如何解析媒体文件(音频,视频,图片)信息插入到数据库中,对应code流程我们现在音乐,视频播放器,图库等应用关于音视频图片等信息都是通过多媒体数据库直接查询 在源码 packages\providers\下有个叫MediaProvider(进程名:android.process.media) 它主要处理管理这个媒体原创 2017-04-19 10:03:42 · 5581 阅读 · 0 评论 -
ffmpeg实战教程(七)Android CMake avi解码后SurfaceView显示
在上一篇文章中实现了Android平台MP4解码YUV数据, 本篇我们实现Android平台解码avi并用SurfaceView播放。先上图看效果:思路: 1.把封装好的视频数据解码为YUV 2.YUV数据转化为RGB。 3.一帧一帧的传给SurfaceView显示出来PS: 其实YUV数据可直接在SurfaceView显示,在研究Android系统多媒体框架的stagefright视频显原创 2017-05-10 09:30:58 · 4815 阅读 · 5 评论 -
ffmpeg实战教程(八)Android平台下AVfilter 实现水印,滤镜等特效功能
上一篇我们实现了Android平台解码avi并用SurfaceView播放。 ffmpeg实战教程(七)Android CMake avi解码后SurfaceView显示 本篇我们在此基础上实现滤镜,水印等功能。对ffmpeg不熟的客官看这里:ffmpeg源码简析(一)结构总览 先上两张效果图: 黑白:const char *filters_descr = “lutyuv=’u=128:v=12原创 2017-05-11 11:52:35 · 5208 阅读 · 4 评论 -
Android Multimedia实战(六)音频 MediaRecorder和AudioRecord录音与MediaPlayer和AudioTrack播放
录制声音MediaRecorder和AudioRecord 区别MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。 而AudioRecord录制的是PCM格式的音频文件,需要用AudioTrack来播放,AudioTrack更接近底层。 在用Med原创 2017-04-28 15:25:23 · 2930 阅读 · 0 评论 -
Android Multimedia实战(三)基于MediaExtractors与MediaMuxer的视频分离与合成
上篇介绍了mp4parser合成视频功能:http://blog.youkuaiyun.com/king1425/article/details/70805960 ,这篇使用Android原生API实现视频的分离与合成MediaExtractors将视频多信道的分离出来,比如声音和图像分隔出来 1. JAVA层file: frameworks/base/media/Java/Android/media/M原创 2017-04-26 20:59:09 · 2331 阅读 · 0 评论 -
Android Multimedia实战(二)使用MediaRecorder实现分段录制视频,mp4parser合成视频功能
1.MediaRecorder类介绍: MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频,摄像头采集图片信息。MediaRecorder主要函数:setAudioChannels(int numChannels) 设置录制的音频通道数setAudioEncoder(int audio_encoder) 设置audio的编码格式setAu原创 2017-04-26 16:00:10 · 7013 阅读 · 1 评论 -
android Multimedia实战(一)详解SurfaceView,TextureView之播放视频的四种方式
在Android中,我们有四种方式来实现视频的播放: 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。4、使用MediaPlayer类和Te原创 2017-04-25 20:24:36 · 10175 阅读 · 0 评论 -
Android Multimedia实战(四)MediaProjection实现截图,与MediaMuxer实现录屏为MP4,Gif格式
MediaProjection可以用来捕捉屏幕,具体来说可以截取当前屏幕和录制屏幕视频 (5.0以上)先总结下系统是如何实现组合键截屏的: 都应该知道Android源码中对按键的捕获位于文件PhoneWindowManager.java中 当满足按键条件时会用一个mHandler 开始post一个runnable,进入这个runnable中执行takeScreenshot()方法。使用AIDL原创 2017-04-27 15:15:43 · 8719 阅读 · 1 评论 -
细数Android5.0到Android7.X 多媒体技术新特性
Android 5.0 行为变更媒体播放如果您要实现显示媒体播放状态或传输控件的通知,请考虑使用新的 Notification.MediaStyle 模板,而不是自定义 RemoteViews.RemoteView 对象。无论您选择使用哪个方法,请务必将通知的可见性设为 VISIBILITY_PUBLIC,以便可通过锁定屏幕访问您的控件。请注意,从 Android 5.0 开始,系统不再将 Remo原创 2017-04-28 16:23:26 · 4553 阅读 · 0 评论