Android影音
文章平均质量分 75
郭风朴
专业IT影音开发爱好者,从最基本的影音发动机“FFmpeg”到影音大厦“VLC”均有涉猎,愿与有同样爱好的你,在IT路上一直走下去。
音视频技术和营销领域骨灰级玩客
展开
-
android多媒体框架学习 详解 最新版本
http://blog.csdn.net/trust555/article/details/18962035一:多媒体框架概述 jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现了media 在整个android系统中的重要性!fra转载 2016-09-18 19:58:24 · 2642 阅读 · 0 评论 -
android下播放器(软解码YUV数据)视频输出方法总结
在Android下输出视频画面,有很多种方法,每个都有自己的特点,比如将视频数据送回到java层然后用lockCanvas画出来这种方法的特点就是慢. 上面这个完全不值得提倡,视频数据从native层传到jni层很耗时间. 开发基于ffmpeg的播放器时,可以使用ffmpeg的各种软解码器,也可以使用android带的OMXCodec解码器,OMXCodec解码器是对OMX的一转载 2016-09-19 09:41:41 · 2979 阅读 · 0 评论 -
Android 直接显示yuv数据 通过Awesomeplayer方式直接显示(三)
研究一段时间Android的surface系统,一直执着地认为所有在surface或者屏幕上显示的画面,必须要转换成RGB才能显示,yuv数据也要通过颜色空间转换成RGB才能显示。可最近在研究stagefright视频显示时发现,根本找不到omx解码后的yuv是怎么转换成RGB的代码,yuv数据在render之后就找不到去向了,可画面确确实实的显示出来了,这从此颠覆了yuv必须要转换成RGB才能显转载 2016-09-19 10:11:58 · 2901 阅读 · 0 评论 -
Android 直接显示yuv数据 通过Awesomeplayer方式直接显示(二)
上一篇文章主要是参照AwesomePlayer直接用SoftwareRenderer类来显示yuv,为了能用到这个类,不惜依赖了libstagefright、libstagefright_color_conversion等动态静态库,从而造成程序具有很高的耦合度,也不便于我们理解yuv数据直接显示的深层次原因。 于是我开始研究SoftwareRenderer的具体实现,我们来提取Soft转载 2016-09-19 10:22:13 · 989 阅读 · 0 评论 -
Android 直接显示yuv数据 通过Awesomeplayer方式直接显示(一)
研究了一段时间Android的surface系统,一直执着地认为所有在surface或者屏幕上显示的画面,必须要转换成RGB才能显示,yuv数据也要通过颜色空间转换成RGB才能显示。可最近在研究stagefright视频显示时发现,根本找不到omx解码后的yuv是怎么转换成RGB的代码,yuv数据在render之后就找不到去向了,可画面确确实实的显示出来了,这从此颠覆了yuv必须要转换成RGB才能转载 2016-09-19 10:24:00 · 1620 阅读 · 1 评论 -
用NDK调用Android手机自带的openssl库函数 系统运行库层 和Android runtime
最近在做视频播放那块,ffmpeg的neon移植之后,发现yuv2rgb的转码效率太低,所以打算在jni里面,直接将ffmpeg解码之后的yuv数据输出到SoftwareRenderer之后显示,省去了yuv2rgb的过程。但在jni中,发现需要用到安卓源码的库和头文件。请问这个是怎么使用的?在编译安卓源代码之后,怎么使用?不编译源代码,从手机里面把相应的so文件和头文件拷贝到原创 2016-09-20 09:14:27 · 1517 阅读 · 0 评论 -
直播技术(从服务端到客户端)二
播放(播放方式研究)在上一篇文章中,我们叙述了直播技术的环境配置(包括服务端nginx,nginx-rtmp-module, ffmpeg, Android编译,ios编译)。从本文开始,我们将叙述播放相关的东西,播放是直播技术中关键的一步,它包括很多技术如:解码,缩放,时间基线选择,缓存队列,画面渲染,声音播放等等。我将分为三个部分为大家讲述整个播放流程;Android转载 2016-09-21 14:31:37 · 1069 阅读 · 0 评论 -
直播技术(从服务端到客户端)一
环境部署2015年开始直播变得越来越流行,很多的直播平台也应运而生,直播是一个很有技术的项目,从服务端到客户端到web等等。我们将写一序列的博客来阐述直播中的技术,这包括服务端技术和客户端技术。包括最简单的服务端环境部署、客户端编译、采集、推流、拉流、美化特效、水印、延时优化、音视频同步、p2p等等。当然还可能包括一些信号处理的知识,比如滤波,傅里叶变换(FFT)。从本文开始我们将从环境部原创 2016-09-21 14:34:45 · 1518 阅读 · 0 评论 -
android ndk 快速渲染yuv数据
因项目需要,要实现pc/windows传屏到android端显示,项目已经采用ffmpeg编码解码,现在碰到了如何将解码得到的yuv数据渲染到android surfaceview 上的问题。如果将yuv转换成rgb,软件实现的方法倒是简单,但是项目要求实时性,这种效率肯定是极低的。下面是我整理的一些方法:这篇文章给出了大致的方案参考 这篇举例yuv转rgb的一些方式至于通过yuv原创 2016-11-03 13:24:17 · 2476 阅读 · 0 评论 -
《视频直播技术详解》 系列之六:延迟优化
七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。 结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。 本系列文章大纲如下: (一)开篇原创 2016-09-29 07:56:57 · 535 阅读 · 0 评论 -
《视频直播技术详解》系列之七:现代播放器原理
七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。 结合七牛实时流网络 LiveNet 和直播云解决方案的实践,我们用八篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面、深入地了解视频直播技术,更好地技术选型。 本系列文章大纲如下: (一)开篇转载 2016-10-02 15:34:32 · 1214 阅读 · 0 评论 -
Android 音频系统:从 AudioTrack 到 AudioFlinger
1. Android 音频框架概述Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架 AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音数据转载 2017-05-08 09:08:53 · 1465 阅读 · 0 评论 -
Android的10毫秒问题 解读Android系统音频通道延迟缺陷
许多移动应用在很大程度上依赖于低延迟音频功能,例如一些游戏、合成器和数字音频工作站[Digital Audio Workstations,DAWs],交互式音频应用和乐器模拟应用,以及即将成为下一波潮流的虚拟现实应用,在苹果的平台上[App Store+iOS设备]发展兴盛——并让App Store和iOS开发者获得的巨大收益而Android上是基本不存在的。Android的10毫秒问题,是对原创 2017-09-29 17:12:02 · 8518 阅读 · 0 评论 -
Android播放声音SoundPool、MediaPlayer、AudioTrack
Android平台中关于音频播放有以下三种方式: 1.SoundPool ---- 适合短促且对反应速度比较高的情况(游戏音效或按键声等) 2.MediaPlayer ---- 适合比较长且时间要求不高的情况 3.AudioTrack ---- 播放解码后的PCM码流 方法一:SoundPool1)SoundPool简介 SoundPoo转载 2017-09-29 17:23:06 · 1060 阅读 · 0 评论 -
Android视频渲染: YUV转RGB 软解码方式
Android SDK为Camera预览提供了一个Demo,这个Demo的大致流程是初始化一个Camera和一个SurfaceView,SurfaceView被创建之后可以获取到一个SurfaceHolder的实例,将这个SurfaceHolder传递给Camera,这样Camera就会自动的将捕获到的视频数据渲染到SurfaceView上面,这也就是Camera预览的效果。当然更多的时候我们需要转载 2016-09-18 15:55:23 · 1415 阅读 · 1 评论 -
VLC核心LibVLC从源码下载、工程建立、实际使用一篇通
一、VLC和LibVLC关系 VLC属于Video LAN开源项目组织中的一款全开源的流媒体服务器和多媒体播放器。作为流媒体服务器,VLC跨平台,支持多操作系统和计算机体系结构;作为多媒体播放器,VLC可以播放多种格式的媒体文件。主要包有:WMV、ASF、MPG、MP、AVI、H.264等多种常见媒体格式。 LibVLC是VLC的核心部分。它是一个提供接口的库,比如给VLC原创 2016-05-21 16:14:09 · 8814 阅读 · 0 评论 -
Android中MediaMuxer和MediaCodec用例 - audio+video
在Android的多媒体类中,MediaMuxer和MediaCodec算是比较年轻的,它们是JB 4.1和JB 4.3才引入的。前者用于将音频和视频进行混合生成多媒体文件。缺点是目前只能支持一个audio track和一个video track,而且仅支持mp4输出。不过既然是新生事物,相信之后的版本应该会有大的改进。MediaCodec用于将音视频进行压缩编码,它有个比较牛X的地方是可以对Su原创 2016-03-24 15:37:15 · 1080 阅读 · 0 评论 -
Android 的媒体路由功能应用与框架解析 MediaRouter
一、功能描述 Android的媒体路由API被设计用来允许多种媒体(视频、音乐、图片)在与ANDROID设备连接(无线或有线)的辅助设备(如电视、立体声、家庭戏院系统、音乐播放机)上显示和播放,使用该框架和API,允许Android用户立即在辅助设备上显示图片、播放音乐、共享视频等。 媒体路由框架提供两种播放输出类型:远端播放和辅助输出。远端播放类型指的是辅助设转载 2016-08-02 15:58:07 · 5385 阅读 · 0 评论 -
android音视频点/直播模块开发
前言随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白,如何快速学习音视频基础知识,了解音视频编解码的传输协议,编解码方式,以及如何技术选型,如何解决遇到的坑,本文抛砖引玉,欢迎大咖交流。一. 音视频的基础知识1.1 基本概念视频是什么静止的画面叫图像(picture)。连续的图像变化每秒超过24帧(f原创 2016-09-11 18:40:10 · 1745 阅读 · 0 评论 -
直播云服务技术详解
直播模型及其实现一个通用的直播模型一般包括三个模块:主播方、服务器端和播放端。首先是主播方,它是产生视频流的源头,由一系列流程组成:第一,通过一定的设备来采集数据;第二,将采集的这些视频进行一系列的处理,比如水印、美颜和特效滤镜等处理;第三,将处理后的结果视频编码压缩成可观看可传输的视频流;第四,分发推流,即将压缩后的视频流通过网络通道传输出去。其次是播放端,播放端功能有两个层转载 2016-09-11 18:44:28 · 2412 阅读 · 0 评论 -
直播相知识收集整理,必看
移动直播技术秒开优化经验(含PPT) http://www.jianshu.com/p/1e14ee263f1a直播技术(从服务端到客户端) http://blog.csdn.net/xwl198937/article/details/52371726大道至简——React Native在直播应用中的实践 http://geek.csdn.net/news/detail/986转载 2016-09-11 18:58:20 · 887 阅读 · 0 评论 -
Android 中的SurfaceTexture,TextureView, GLsurfaceview的区别与联系详解
SurfaceView, GLSurfaceView, SurfaceTexture和TextureView是Android当中名字比较绕,关系又比较密切的几个类。本文基于Android 5.0(Lollipop)的代码理1下它们的基本原理,联系与区分。SurfaceView从Android 1.0(API level 1)时就有 。它继承自类View,因此它本质上是1个View。但与原创 2016-09-15 08:24:34 · 4449 阅读 · 1 评论 -
Android视图显示之View和SurfaceView
Android游戏当中主要的除了控制类外就是显示类View。SurfaceView是从View基类中派生出来的显示类。android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView。 View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。 SurfaceView:基于view视图进行拓展的原创 2016-09-15 08:29:12 · 834 阅读 · 0 评论 -
Android 音视频该如何学习?
想要学习音视频编解码,如何一步两步的学。我也在摸索中,但是摸索也不是瞎摸索,需要有计划有步骤的。我现在把我的步骤记录下来,并不断的修改。////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////转载 2016-06-21 19:51:21 · 696 阅读 · 0 评论 -
Android自带硬解码解码类型说明MediaCodec使用必看
一、背景随着Android系统手机性能的不断提升,现阶段大部分手机都自带GPU(承担图形显示的专门硬件),大幅度提高手机显示性能,在视频显示、游戏画面刷新,和高分辨图像显示方面必须使用GPU。GOOGLE在API 16 -4.1版本中增加MediaCodec类,专用于编解码多媒体数据,二、MediaCodec使用方式 MediaCodec总共有三种使用方法,如下图所示:原创 2016-05-31 13:52:33 · 7690 阅读 · 1 评论 -
使用mp4v2将H264+AAC合成mp4文件
录制程序要添加新功能:录制CMMB电视节目,我们的板卡发送出来的是RTP流(H264视频和AAC音频),录制程序要做的工作是:(1)接收并解析RTP包,分离出H264和AAC数据流;(2)将H264视频和AAC音频以某种格式封装,最后存成文件,供用户查看。第一步已经有部分代码可供参考,因此很快就完成了。第二步,我们决定封装成mp4,查找了一些资料后,决定使用开源库mp4v2来合成m转载 2016-03-24 19:05:49 · 1338 阅读 · 0 评论 -
ffmpeg 解码h264数据
使用ffmpeg解码h264数据其实相对使用x264进行视频编码是简单了许多的,因为ffmpeg提供了一个decoding_encoding.c的文件,这个文件里面有简单的使用ffmpeg进行视频、音频编解码的例子,不过可能有的人也会找不到这个示例,我就讲我改造过的这个示例放在这里,同时加一些解释。其中需要注意的的一点我需要在此说明,就是ffmpeg在进行解码的时候是会考虑要解码的数据包是否有转载 2016-05-12 11:22:01 · 867 阅读 · 0 评论 -
我的“VLC for Android” 编译之旅
当朋友你想到要编译VLC源码的时候,也即以为着痛苦将要开始了。以下资源需要翻墙建议购买VPN ,请不要 用免费的方法 翻墙 凡是能用钱解决的问题 都不是问题。首先简单介绍VLC ,VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。具体介绍见官网http://www.videolan.org/ 通俗点原创 2016-04-10 17:06:44 · 783 阅读 · 0 评论 -
IPC网络摄像机app端开发问题解决思路
思维必须快速的转,要知道时间不仅是效率,也是享受时光的前提。原创 2016-02-29 11:20:42 · 1281 阅读 · 0 评论 -
开源的视频编解码器介绍
一、ffmpeg ffmpeg属于GPL或者LGPL,确切属于哪一种,要根据编译选项,因为它里面的库有些属于GPL的有些属于LGPL的,你编译的时候打开或者关闭这些库的选项,就决定了它属于哪一种。http://www.ffmpeg.org/legal.htmlffmpeg项目由以下几部分组成:ffmpeg 视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件.原创 2016-04-26 16:25:12 · 841 阅读 · 0 评论 -
移动端摄像头yuv旋转、裁剪、镜像、格式转换算法的实现及其原因
存在问题移动端录像在yuv数据上存在如下问题:无论android还是ios都不能直接从摄像头取出颜色空间为i420的数据,所以在编码前需要进行格式转换。而且由于所取图像得分辨率必须是摄像头所提供分辨率中得一组,所以有可能需要裁剪。另外由于(1)想让无论用户哪个方向拿手机所录的视频内容永远“头朝上”( 2)摄像头默认返回图像为横屏图像(宽大于长)所以需要旋转。转载 2017-09-21 15:01:14 · 1269 阅读 · 0 评论