自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tx3344

专注多媒体相关技术

  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 【玩转VLC】--- vlc架构初探

vlc从整体框架上来说,就是设计了一套module管理机制,将功能分类并抽象成modules。例如播放器相关的如demux decoder access output这些都成了vlc的modules。新添加一个功能(新的媒体容器格式demux、新的解码器、新的编码器)只要遵循这套机制,自己完成这个子module就可以了。所以说vlc依赖的是这些modules。没有modules其实啥也干不了。

2013-03-27 12:45:24 8119 1

原创 【玩转VLC】--- Ubuntu12.04下編绎win32版本vlc

环境 Ubuntu12.041. 安装编绎器sudo apt-get install gcc-mingw-w64 g++-mingw-w64下载 - You must use mingw-w64 3.0 or later (Please note that the binary size is about 7M)- http://packages.debian.org/

2013-01-31 17:09:05 5110 7

原创 【多媒体封装格式详解】---MP4【4】

前面介绍过的几种格式flv、mkv、asf等。他们音视频的数据包一般都是按照文件的顺序交叉安放。你解析完头部信息后。剩下的一般就按照文件顺序一个数据包一个数据包的解析就行了。但是MP4完全不是这种概念。他的媒体信息和数据是分开存放的。就是你想获得数据之前必须要解析出每个帧数据所有的位置。mp4存放这个帧信息的是放在stbl这个box里。而真实的数据放在mdat中。接下来就讲讲stbl与mdat的对

2013-01-28 16:30:17 8985

原创 【玩转VLC】--- 基于libvlc写个最简单的播放器

通过【玩转VLC】--- ubuntu下编译vlc 我们已经把vlc编译哦了。生成了一系列的bin和libvlc.so.接下来我们就用编译好的libvlc.so搞一个最简单的播放器。我认为vlc的伟大之处有一点就是他并没有把整个播放器写成一个硬生生的bin。而是独立出来个libvlc库,其他的玩家也可以用它的库自己搞一个和他功能一样强大的播放器。这些部分协同作战,形成了功能强大

2013-01-22 15:45:04 9598 3

原创 【玩转VLC】--- ubuntu下编译vlc

1.安装vlc依赖的库sudo apt-get build-dep vlc下列【新】软件包将被安装: autoconf automake autopoint autotools-dev build-essential debhelper dh-apparmor dh-autoreconf dh-buildinfo dpkg-dev g++ gettext gir1.2-rsvg-2

2013-01-18 13:47:35 6925

原创 【多媒体封装格式详解】---MP4【3】

2.2.2  Media BoxBox Type: ‘mdia’mdia box 结构十分复杂。来个例子。2.2.2.1 Media Header BoxBox Type: ‘mdhd’aligned(8) class MediaHeaderBox extends FullBox(‘mdhd’, version, 0) {if (version==1) {uns

2013-01-15 11:10:23 5033

原创 【多媒体封装格式详解】---MP4【2】

1.File Type BoxBox Type: `ftyp’这种box一般情况下都会出现在mp4文件的开头,它可以作为mp4容器格式的可表示信息。就像flv头‘F’ 'L' 'V' 3字节,MKV头部的1A 45 DF A3 、ASF_Header_Object 可以作为ASF容器格式的可辨识信息一样。ftyp box内容结构如下aligned(8) class FileTy

2013-01-08 11:20:34 5716 2

原创 【多媒体封装格式详解】---MP4【1】

MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的。1.最小组成单元 BOX像FLV的tag、MKV的EBML、ASF文件中的 ASF object.mp4 是由一系列的box组成,他的最小组成单元就是box.size;指明了整个box所占用的大小,包括header部分.type;表示

2013-01-07 10:54:08 10518 2

原创 【多媒体封装格式详解】---ASF(WMV/WMA)【2】完

4.the Data Object这部分的内容就是asf文件中数据。Data Object 中包含着很多个 Data Packets.这些Data Packets里面就是音视频数据。先来看看 Data Object 结构ASF_Data_ObjectGUID表示着这是Data Object 。Total Data Packets  表示着里面包含的Data Packet

2012-12-19 12:39:17 5744 1

原创 【多媒体封装格式详解】---ASF(WMV/WMA)【1】

ASF全称Advanced Systems Format 高级串流格式,微软出的一种开放封装格式的标准。它可以包含很多内容如:音视频、脚本命令、JPEG、二进制文件、或是由开发者自己定义的内容.常见的遵循这种标准的封装格式.asf .wmv .wma.1.最小组成单元ASF object像FLV的tag、MKV的EBML一样,ASF文件也有类似的最小组成单元 ASF object.可以

2012-12-04 13:53:38 10101 12

原创 【多媒体封装格式详解】---MKV【3】完

有了上文我们经知道了MKV文件时长、音视频的类型、分辨率、采样率等基本信息,接下来就是音视频的数据了。4.Clusters所有的音视频帧数据都在这部分内装着。1个Cluster内可能有很多个BlockGroup组成,BlockGroup内又由若干个Block组成。这些Block内就是音视频的帧数据。1个Cluster并不一定只是音频或者视频。它是由不同的音视频BlockGroup交

2012-11-22 11:04:52 7691 1

原创 【多媒体封装格式详解】---MKV【2】

上文MKV【1】已经了解了EBML基本结构和MKV文件的整体结构,接下来我们自己分析每一部分。1.EBML HeaderMKV文件的开头部分是EBML header。可能会包括以下的内容Element NameLEBML IDMaMuRngDefaultT1234

2012-11-20 12:53:04 10467 14

原创 【多媒体封装格式详解】---MKV【1】

Matroska 开源多媒体容器标准。MKV属于其中的一部分。Matroska常见的有.MKV视频格式、MKA音频格式、.MKS字幕格式、.MK3D files (stereoscopic/3D video).1.EBML(Extensible Binary Meta Language)MKV是建立在EBML这种语言的基础上,所以要了解MKV格式需要先了解EBML这种语言。

2012-11-09 14:45:38 18302 10

原创 Android多媒体开发【12】-- android中OpenMax的实现【3】OMX中主要成员

通过上文知道了,每个AwesomePlayer 只有一个OMX服务的入口,但是AwesomePlayer不一定就只需要1种解码器。有可能音视频都有,或者有很多种。这个时候这些解码器都需要OMX的服务,也就是OMX那头需要建立不同的解码器的组件来对应着AwesomePlayer中不同的code。OMX中非常重要的2个成员就是 OMXMaster 和 OMXNodeInstance。OMX通过这俩

2012-11-08 10:53:55 15450 3

原创 Android多媒体开发【11】-- android中OpenMax的实现【2】AwesomePlayer中openmax的入口

AwesomePlayer 中有个变量  OMXClient mClient;让我们看看   OMXClient class OMXClient {public: OMXClient(); status_t connect(); void disconnect(); sp interface() { return mOMX;

2012-10-30 09:20:59 10192

原创 Android多媒体开发【10】-- android中OpenMax的实现【1】整体框架

1.android中用openmax来干啥?有了上一篇AwesomePlayer基本框架及播放流程已经很清楚的看到了,android中的 AwesomePlayer就是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码。通过他的组件可以组成一个完整的播放器,包括sourc、demux、decode、output。但是为什么android只用他来做cod

2012-10-26 15:15:59 13689 4

原创 Android多媒体开发【9】-- OpenMax IL简介

1.openmax 简介http://www.khronos.org/openmax/OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出。OpenMAX分为3层:第一层:OpenMax DL(Development Layer,开发层)第二层:OpenMax IL(Integration Layer,集成层)

2012-10-24 13:33:04 15062

原创 Android多媒体开发【8】-- AwesomePlayer基本框架及播放流程

1.通过setDataSource 指定播放器的数据源。可以是URI或者fd.可以是http:// 、rtsp://、本地地址或者本地文件描述符fd。其最终调用是将上层传递来的参数转化为DataSource,为下一步的demux提供数据支持。2.在真正Prepare功能函数onPrepareAsyncEvent()会调用finishSetDataSource_l。通过第一步产生的DataSou

2012-10-18 12:26:28 15971

原创 Android多媒体开发【7】-- AwesomePlayer中TimedEventQueue-event事件调度器

上文已经大概介绍了播放器的几大主要部分,但是有了这些功能组件也不能叫做播放器。需要某种方式将这些单独的功能组件驱动起来,形成一个整体的功能。视频处理过程中有很多都是十分耗时的,如果都放在一个大的线程空间中。用户体验的效果可想而知。所以通常都是做异步操作。AwesomePlayer是通过event事件调度来实现这些功能之间的驱动和调用的。AwesomePlayer中的内部变量

2012-10-17 16:18:01 9353 3

原创 Android多媒体开发【6】-- 播放器的基本模型

AwesomePlayer 不管他有多神秘,说到底还是个多媒体播放器。在播放器的基本模型上,他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。深入了解AwesomePlayer 之前,把播放器的基本模型总结一下,然后按照模型的各个部分来深入研究AwesomePlayer 的实现方式。说白了播放器大致分为4大部分:source、demux、deco

2012-10-08 14:37:02 8375 6

原创 Android多媒体开发【5】-- Stagefright原来是个皮包公司

通过上文我们已经进入到了StagefrightPlayer中,当满心激动的查看代码时发现 Stagefright其实就是个皮包公司status_t StagefrightPlayer::setDataSource( const char *url, const KeyedVector *headers) { return mPlayer->setDataSource

2012-10-07 19:52:57 5494 3

原创 Android多媒体开发【4】-- 上层mediaPlayer 是如何调到Stagefright的【2】【图解】

基于android 4.1.1 源码【1】mediaserver 启动后会把media相关一些服务添加到servicemanager中,其中就有mediaPlayerService.这样应用启动前,系统就有了mediaPlayerService这个服务程序。   int main(int argc, char** argv){ sp proc(ProcessSta

2012-10-03 13:21:01 12042 3

原创 Android多媒体开发【3】-- 上层mediaPlayer 是如何调到Stagefright的【1】

基于android 4.1.1 源码前文Android多媒体开发笔记【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器已经利用android SDK接口实现了个简单的视频播放器,对于上层应用开发者来说,想实现一个播放器只要非常简单的几步:mediaPlayer=new MediaPlayer();mediaPlayer.setDataSource

2012-09-27 12:54:45 7085 2

原创 Android多媒体开发【2】-- 利用VideoView开发最简单的视频播放器

接下来贴出main.xml的源码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

2012-09-25 12:03:00 4626 1

原创 Android多媒体开发【1】-- 利用SurfaceView + MediaPlayer开发最简单的视频播放器

利用android SDK 提供的接口 开发最简单的视频播放demo。接下来贴出main.xml的源码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:la

2012-09-25 11:02:58 9268

转载 FFmpeg完美入门【10】-- FFmpeg裁剪说明

http://it6655.com/2012/09/ffmpeg-9-2-html1 configure参数1 通用选项在linux下进入终端,找到ffmpeg解压位置,输入如下命令: root@web ffmpeg]# ./configure –help 得到configure的基本选项参数,其并没有中文解释。--help 显示此帮助信息|print this

2012-09-11 09:30:20 5332 1

转载 【多媒体基础知识】 --- 什么是流媒体技术

传统的网络传输音视频等多媒体信息的方式是完全下载后再播放,下载常常要花数分钟甚至数小时。而采用流媒体技术,就可实现流式传输,将声音、影像或动画由服务器向用户计算机进行连续、不间断传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十几秒的启动延时即可进行观看。当声音视频等在用户的机器上播放时,文件的剩余部分还会从服务器上继续下载。    如果将文件传输看作是一次接水的过程,过去的传输方

2012-09-10 11:18:31 3626 1

转载 FFmpeg完美入门【9】-FFmpeg架构之其他重要数据结构的初始化

http://it6655.com/2012/09/ffmpeg-9-html1 AVStreamAVStream结构保存与数据流相关的编解码器,数据段等信息。比较重要的有如下二个成员:AVCodecContext *codec; /**void *priv_data;其中codec指针保存的就是上节所述的encoder或decoder结构。priv_d

2012-09-09 18:41:05 2481

转载 FFmpeg完美入门【8】-FFmpeg架构之Decoder/Encoder模块

http://it6655.com/2012/09/ffmpeg-8-decoderencoder-html1概述编解码模块主要包含的数据结构为:AVCodec、AVCodecContext每一个解码类型都会有自己的Codec静态对像,Codec的int priv_data_size记录该解码器上下文的结构大小,如MsrleContext。这些都是编译时确定的,程序运行时通过a

2012-09-09 18:35:23 3540

转载 FFmpeg完美入门【7】-FFmpeg架构之Demuxer和muxer模块分析

http://it6655.com/2012/09/ffmpeg-7-html1概述ffmpeg的demuxer和muxer接口分别在AVInputFormat和AVOutputFormat两个结构体中实现,在av_register_all()函数中将两个结构分别静态初始化为两个链表,保存在全局变量:first_iformat和first_oformat两个变量中。在FFmpe

2012-09-08 21:21:58 8572 1

转载 FFmpeg完美入门【6】-FFmpeg架构之I\O模块分析

http://it6655.com/2012/09/ffmpeg-6-html1概述ffmpeg项目的数据IO部分主要是在libavformat库中实现,某些对于内存的操作部分在libavutil库中。数据IO是基于文件格式(Format)以及文件传输协议(Protocol)的,与具体的编解码标准无关。 ffmpeg工程转码时数据IO层次关系如图所示:对于上面的数据

2012-09-08 20:41:37 6435 1

转载 FFmpeg完美入门【5】-FFmpeg架构之文件结构

http://it6655.com/2012/09/ffmpeg-5-htmlFFmpeg文件结构

2012-09-08 20:40:37 3018 1

转载 FFmpeg完美入门【4】-FFmpeg应用实例

http://it6655.com/2012/09/ffmpeg-4-html1 用FFserver从文件生成流媒体一、安装ffmpeg在ubuntu下,运行sudo apt-get ffmpeg 安装ffmpeg,在其他linux操作系统下,见ffmpeg的编译过程(编译完成后可执行自动安装)。二、准备预播放的媒体文件如test.Mp3,在本文档中,默

2012-09-08 20:38:58 4426 1

转载 FFmpeg完美入门【3】-FFmpeg功能及使用说明

http://it6655.com/2012/09/ffmpeg-3-html1 ffplay对多媒体的支持能力验证一、视频3gp 177X144 支持播放,在windows下播放正常,但是在linux下面偶有BUG 如果发现画面无法显示而声音可以播放的情况下可以试着切换全屏或者切换分辨率。AVI 208X176 支持 320X240 支持 720X400 支持 720

2012-09-08 20:37:57 4805

转载 FFmpeg完美入门【2】-FFmpeg参数说明

http://it6655.com/2012/09/ffmpeg-2-html1 通用选项-L license-h 帮助-fromats 显示可用的格式,编解码的,协议的。-f fmt 强迫采用格式fmt-i filename 输入文件-y 覆盖输出文件-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时

2012-09-08 20:32:00 13204

转载 FFmpeg完美入门【1】-FFmpeg介绍及安装

http://it6655.com/2012/09/ffmpeg-1-html1 FFmpeg简介FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多co

2012-09-08 20:30:53 5426 1

原创 Gstreamer学习笔记----Gstreamer架构设计思想

Gstreamer到底是个啥?GStreamer 是一个 基于pipeline的多媒体框架,基于GObject,以C语言写成。应用GStreamer这个这个多媒体框架,你可以写出任意一种流媒体的应用来如:meidaplayer、音视频编辑器、VOIP、流媒体服务器、音视频编码等等。pipeline是啥?pipeline是GStreamer设计的核心思想,在说pipeline

2012-04-25 14:08:49 11755

原创 【多媒体基础知识】 ---MPEG标准简介

MPEG是Moving Picture Experts Group的简称。这个名字本来的含义是指一个研究视频和音频编码标准的“动态图像专家组”组织,成立于1988年,致力开发视频、音频的压缩编码技术。现在我们所说的MPEG泛指由该小组制定的一系列视频编码标准。该小组于1988年组成,至今已经制定了MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7等多个标准,MPEG-21正在制定

2012-04-11 10:21:13 4744

原创 Gstreamer学习笔记----第一个helloworld程序

1.Ubuntu上安装gstreamer库:  apt-get install libgstreamer0.10-0  apt-get install libgstreamer0.10-dev  apt-get install libgstreamer0.10-0-dbg2.编写测试gstreamer库的helloworld.c:#include #inclu

2012-03-22 12:16:43 3868

原创 【多媒体封装格式详解】---FLV

http://it6655.com/2012/08/flv-htmlOverviewFlash Video(简称FLV),是一种流行的网络格式。目前国内外大部分视频分享网站都是采用的这种格式.File Structure从整个文件上开看,FLV是由The FLV header 和 The FLV File Body 组成.1.The FLV head

2012-03-13 15:17:51 5133 7

video 版本的Sports Sounds Pro

video 版本的Sports Sounds Pro

2013-05-02

Android技术内幕.系统卷

Android技术内幕.系统卷

2012-03-09

C++程序设计语言(特别版)

C++程序设计语言(特别版)

2012-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除