- 博客(48)
- 资源 (18)
- 收藏
- 关注
转载 Android Render(一)Activity窗口构成和绘制解析
阅读者三篇Android绘制文章,会让你对理解Android绘制有帮助:Android Render(一)Activity窗口构成和绘制解析 Android Render(二)7.1源码硬件加速下draw绘制流程分析 Android Render(三)supportVersion 27.0.0源码RecyclerView绘制流程解析一、Activity窗口构成这里我们会介绍到Acti...
2019-05-07 15:57:13
866
转载 视频格式封装——H264
转自:http://blog.csdn.net/yangzhongxuan/article/details/8003494http://blog.csdn.net/gl1987807/article/details/11946025名词解释场和帧 : 视频的一场或一帧可用来产生一个编码图像。在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场。片:...
2019-05-05 17:39:10
574
转载 Android视频直播的实现(推流完整实现001)
http://blog.csdn.NET/huaxun66/article/details/53427771http://blog.csdn.net/huaxun66/article/details/53427771最近一段时间,视频直播可谓大火。在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文要讲解的是如何使用一...
2019-05-05 16:39:15
5412
转载 FFMPEG视音频编解码零基础学习方法
原文:https://blog.csdn.net/leixiaohua1020/article/details/15811977原文有很多链接.在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿...
2019-05-05 16:04:54
305
转载 YUV420P的像素数据编码为H.264的压缩编码数据
本文介绍一个最简单的基于FFMPEG的视频编码器。该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据。编码器代码十分简单,但是每一行代码都很重要,适合好好研究一下。弄清楚了本代码也就基本弄清楚了FFMPEG的编码流程。下面附一张使用FFmpeg编码视频的流程图。使用该流程,不仅可以编码H.264的视频,而且可以编码MPEG4/MPEG2/VP8等等各种FFmpeg支持的视频。...
2019-05-05 15:49:50
993
转载 MPEG4Extractor分析
Android Stagefright MPEG4Extractor分析视频播放的基本流程播放器从DataSource获取媒体数据,通过Demuxer分离音视频轨道,分别送到相应的音视频解码器,最后将解码后的数据输出到音视频设备。在Stagefright里,MediaExtractor即是用于分离音视频轨道的Demuxer。它是一个抽象类,声明了方法sp<Me...
2019-04-29 17:41:09
1233
转载 MP4解析
mp4文件格式解析目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术视...
2019-04-29 17:40:36
1771
原创 颜色空间表示方式YUV,RGB
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r [ R ...
2019-04-29 17:37:58
935
原创 图文详解YUV420数据格式
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用...
2019-04-29 17:37:23
630
原创 I帧、P帧和B帧的特点
I帧:帧内编码帧I帧特点:1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可重构完整图像;3.I帧描述了图像背景和运动主体的详情;4.I帧不需要参考其他画面而生成;5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);6.I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;7.I帧不需要考虑运动矢量;8.I帧...
2019-04-29 17:37:00
665
原创 android 修炼
经过两年的时间,终于完成对Android系统的研究了。Android是一个博大精深的系统,老罗不敢说自己精通了(事实上最讨厌的就是说自己精通神马神马的了,或者说企业说要招聘精通神马神马的人才),但是至少可以说打通了整个Android系统,从最上面的应用层,一直到最下面的Linux内核,炼就的是一种内功修养。这篇文章和大家一起分享这两年研究Android系统的历程,以此感谢大家一直以来的支持和鼓励。...
2019-04-29 17:36:49
516
原创 android的消息处理机制(图+源码分析)——Looper,Handler,Message
android的消息处理机制(图+源码分析)——Looper,Handler,Message作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android...
2019-04-29 17:36:37
297
原创 Android WifiDisplay分析二:Wifi display连接过程
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]WifiDisplay之P2P的建立 WifiDisplay之RTSP server的创建这一章中我们来看Wifi Display连接过程的建立,包含P2P的部分和RTSP的部分,首先来大致看一下Wifi Display规范相关的东西。HIDC: Human Interface Device Class ...
2019-04-29 17:36:28
7844
原创 Android WifiDisplay分析三:RTSP交互以及数据传输
http://blog.csdn.net/innost/article/details/8474683http://blog.csdn.net/lilian0118/article/details/22849249http://blog.csdn.net/lilian0118/article/details/22732747http://blog.csdn.net/lilian0118...
2019-04-29 17:36:17
1194
原创 Android下WiFiDisplay功能探究
1WiFiDisplay简介1.1WiFiDisplay概述 WiFiDisplay(WFD)是WiFi联盟在已有技术的基础上,为了加速视/音频的传输分享而提出来的一个新概念。WiFi联盟对此成立了一个认证项目:Miracast-- 用来认证一个设备是否支持WiFiDisplay功能。 下图是WiFiDisplay功能的技术支撑体系,实际上最重要的部分就是WiFi ...
2019-04-29 17:36:09
7282
原创 Android Wi-Fi Display(Miracast)介绍
Android Wi-Fi Display(Miracast)介绍2012年11月中旬,Google发布了Android4.2。虽然它和Android 4.1同属Jelly Bean系列,但却添加了很多新的功能。其中,在显示部分,Android 4.2在Project Butter基础上再接再厉,新增了对Wi-Fi Display功能的支持。由此也导致整个显示架构发生了较大的变化。本文首...
2019-04-29 17:35:59
9292
原创 YV12 and NV12
用videoCapture和IAMStreamConfig拿到的支持的格式列表。发现支持2中图像格式,YV12和NV12。具体是怎么样的内存分布不知道。查了些文档。自己修改了几个图。看出了点端倪YV12先看看 http://www.fourcc.org/yuv.php 上比较标准的定义:YV12This is the format of choice f...
2019-04-29 17:35:47
2149
原创 STC,PCR,DTS,PTS
PTS和DTS是时标,每秒增加90k这个在MPEG2文档中可以查到The PTS/DTS flags in the packet header are set to indicate the presence of PTS alone or both PTS and DTS time stamp. Audio packets may contain several access units a...
2019-04-29 17:35:03
2115
原创 PTS PCR DTS 详解
PTS PCR DTS 详解 MPEG-2 TS/PS同步原理2010-08-11 19:47 一、引言 MPEG-2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中。在ES层,与同步有关的主要是视频缓冲验证VBV(Video Buffer Verifier),用以防止解码器的缓冲器出现上溢或者下溢;在PES层,主要是在PES头信息里出现的显示时间标签PTS(Pre...
2019-04-29 17:34:40
2059
原创 mpeg-2 PSI/SI
近两年来,随着有线电视数字化进程的加快,越来越多的网络运营商开始了数字化的推进工作。数字电视从传输到接收对于我们从事有线网络工作的技术人员来说都是一个全新的概念,与以往的模拟电视技术有着本质的区别,因此我们必须不断更新自己的知识结构以适应新技术的要求。我国的有线数字电视传输是采用欧洲的DVB-C标准。在此标准中规定了使用MPEG-2标准来压缩和传输数字电视信号和数据信息.本文主要从以下几个部分来...
2019-04-29 17:34:21
1324
原创 颜色空间表示方式YUV,RGB
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r [ R ...
2019-04-29 17:33:54
1462
原创 如何成为优秀工作者
如何成为优秀工作者·掌握…… 优秀工作者创造出比普通工作者眩目的工作成绩所依赖的九项策略。·理解…… 主动地提出一些超出你工作范围之外,但对整个组织都有利的、大胆的、建设性的观点。 ·网络…… 优秀工作者用来与那些将使其工作更加有效的专家联络的有效途径。 ·增加…… 通过自我管理你的工作行为以及尝试从不同角度分析一个项目,使你对你的公司更有价值。 ·影响…… 利用你优秀的...
2019-04-29 17:21:12
400
原创 TDLS应用与协议
实现TDLS特性协议基本功能过程。协议过程简介TDLS是基于IEEE 802.11z标准。TDLS自动链接配置主要通过几个过程来完成。TDLS Discovery过程TDLS Discovery 过程由一部STA设备通过AP或GO(群组拥有者) 向另外一部STA设备发送一个TDLS Discovery请求帧开始。如果目标设备也兼容TDLS,它将直接向该发送设备回复T
2016-05-29 16:43:57
3599
原创 随机数 权重 概率
有个很简单的思路,你可以试试。生成两次随机数,第一次范围在1到100范围内,设生成的数为x判断x,再用随机数生成y1. 若x在[1,25]内,则生成y时,设置随机数范围为6到92.若x在[26,75]内,则生成y时,随机数范围为10到143.剩余情况,则生成y时,设置范围为15到18得到的y即为你要求的随机数#include#include#incl
2014-04-02 13:08:10
467
原创 Linux下计算进程的CPU占用和内存占用的编程方法
Linux下没有直接可以调用系统函数知道CPU占用和内存占用。那么如何知道CPU和内存信息呢。只有通过proc伪文件系统来实现。proc伪文件就不介绍了,只说其中4个文件。一个是/proc/stat,/proc/meminfo,/proc//status,/proc//stat摘自:http://www.blogjava.net/fjzag/articles/317773.html
2014-03-25 14:38:40
555
原创 关于Gstrteamer udp和 v4l2src测试问题
第一组:接收:gst-launch-0.10 udpsrc port=1234 ! theoradec ! ffmpegcolorspace ! ximagesink发送:gst-launch-0.10 v4l2src ! ffmpegcolorspace ! theoraenc ! udpsink host=127.0.0.1 port=1234这组可以成功显示摄像头图片
2014-02-17 14:43:30
857
原创 GStreamer资料(摄像头采集,视频保存,远程监控)DVR
http://blog.csdn.net/wzwxiaozheng/archive/2010/12/26/6099397.aspxGStreamer资料整理(包括摄像头采集,视频保存,远程监控,流媒体RTP传输)1,gstreamer开发手册,gstreamer官网(这些都不用说了吧)2,gst-launch的用法,这也不用说了吧。(白菜,鸡蛋,西红柿,砖头,鼠标……..)
2014-02-17 14:39:37
1118
原创 gstreamer编程--相关文档及系统配置
学习GStremer编程,整理了些现有的资料与大家分享:GSstreamer文档首页:http://gstreamer.freedesktop.org/documentation/(建议先将Application Development Manual通读一遍,对GStreamer有可整理理解,网上也有中文文档的)GStreamer论坛:http://www.chinavid
2014-01-27 15:56:15
73
原创 用gstreamer实现照相机功能
Camera的主要功能是照相和录像,利用gstreamer,我们可以使Camera的实现更加简单。1、照相 照相的实现一般有两种方法:第一种需要创建两个管道,分别用来预览和照相,预览管道:pipeline = gst_parse_launch("v4lsrc name=src ! xvimagesink name=display", &error);照相管道:photobin = gst_pars
2014-01-27 15:32:13
891
1
原创 Gstreamer时钟
Clocks----------- GstClock用_get_time()返回单调递增的时间,它的精度和base time取决于时钟实现,但总是以纳秒为单位。既然时钟的基线没有被定义,时钟返回的值本身毫无意义,只有两个时钟之间的差值才有意义。 GstClock返回的时间值被称为absolute_time。Clock Selection~~~~~~~~~~~~~
2014-01-27 15:21:42
631
原创 Gstreamer GstPipeline管道 时钟
GstPipeline管道 翻译自part-gstpipeline.txtGstPipeline------------------------------ GstPipeline是一个顶级的bin,给所有的子元素提供时钟。 GstPipeline也提供一个顶级的GstBus。 GstPipeline基于选择的时钟计算running_time。
2014-01-27 14:59:10
644
原创 Gstreamer流
Streams---------------------- 这篇文档描述在流线程中从一个元素传递到另一个元素的对象。Stream objects ~~~~~~~~~~~~~~ 如下的对象可能会出现在流线程中。 - events - NEW_SEGMENT (NS) - EOS (EOS)
2014-01-27 14:54:05
589
原创 Gstreamer PUSH和PULL模式
gstreamer PUSH和PULL模式,翻译自part-push-pull.txtPUSH-PULL-------------- 通畅情况下,一个source element用gst_pad_push()方法推送(push)数据到下游的element。下游对应的pad(sink pad)用chain函数来接收buffer。在PUSH模式下,source element是管
2014-01-27 14:51:56
624
原创 Gstreamer 调度模式
调度------------------------ 在Gstreamer中,调度模式是基于pad是主动积极地推送(产生)数据还是从其他的pad拉数据。推模式(PUSH)------------------------- 一个Pad能够产生数据,并且推送给下一个Pad,按这种模式工作的Pad有一个loop函数,loop函数被重复调用直
2014-01-27 14:44:45
585
原创 valgrind 的使用简介 内存泄漏
一 valgrind是什么?Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:
2014-01-27 11:16:19
632
原创 关于Segmentation fault (core dumped)几个简单问题的整理
有的程序可以通过编译,但在运行时会出现Segment fault(段错误)。这通常都是指针错误引起的。但这不像编译错误一样会提示到文件一行,而是没有任何信息。一种办法是用gdb的step, 一步一步寻找。但要step一个上万行的代码让人难以想象。 我们还有更好的办法,这就是core file。如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置: #设置c
2014-01-27 11:10:30
463
原创 y4m to YUV
先要下载一个mencoder,然后 用命令行mencoder **.y4m -ovc raw -of rawvideo -vf format=i420 -o **.yuv就可以啦! mencoder **.y4m -ovc raw -of rawvideo -vf format=i420 -o **.yuvy4m to yuv conversion note1. YUV
2014-01-26 19:42:16
1239
原创 Webkit中HTML5 Video的实现分析 (一) - 基本结构及HTMLMediaElement & MediaPlayer
以下为针对Webkit中HTML5 Video实现原理的分析和学习总结。至于其中的UML图档,可以到下面的github链接中下载。首先预览一下Webkit中和Video相关的主要的类的层次结构:其中主要的类为HTMLMediaElement, MediaPlayer以及RenderVideo(左下角).HTMLMediaElement代表了DOM结点,其继承关系
2014-01-26 19:35:38
812
原创 git rebase
git rebase小计git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。要搞清楚这个东西,要先看看版本库状态切换的两种情况:我们知道,在某个分支上,我们可以通过git reset,实现将当前分支切换到本分支以前的任何一个版本状态,即所谓的“回溯”。即实现了本分支的“后悔药”。也即版本控制系统的初衷。还有另一种情况,当我们的
2014-01-26 18:00:53
430
原创 git merge 和 git rebase 小结
git merge是用来合并两个分支的。git merge b# 将b分支合并到当前分支同样 git rebase b,也是把 b分支合并到当前分支-----------------------------------他们的 原理 如下:假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b my
2014-01-26 17:58:39
589
Android Stagefright MPEG4Extractor分析
2019-04-29
mp4文件格式解析 box说明
2019-04-29
mp4文件格式解析 详细介绍mp4文件结构和各结构图内容
2011-06-24
嵌入式C C++语言精华
2011-06-10
VC编程经验总结 基础类,界面,网络编程,进程,线程,DLL,ATL,ActiveX,COM,数据库,硬件,系统,图形算法
2009-06-08
C++编码规范与指导 命名规则,代码风格与版式,版本控制
2009-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人