<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tx3344]]></title><description><![CDATA[专注多媒体相关技术]]></description><link>https://blog.youkuaiyun.com/tx3344</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tx3344]]></copyright><item><title><![CDATA[【玩转VLC】--- vlc架构初探]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8517062</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8517062</guid><author>tx3344</author><pubDate>Wed, 27 Mar 2013 12:45:24 +0800</pubDate><description><![CDATA[vlc从整体框架上来说，就是设计了一套module管理机制，将功能分类并抽象成modules。例如播放器相关的如demux decoder access output这些都成了vlc的modules。新添加一个功能（新的媒体容器格式demux、新的解码器、新的编码器）只要遵循这套机制，自己完成这个子module就可以了。所以说vlc依赖的是这些modules。没有modules其实啥也干不了。]]></description><category></category></item><item><title><![CDATA[【玩转VLC】---  Ubuntu12.04下編绎win32版本vlc]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8556793</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8556793</guid><author>tx3344</author><pubDate>Thu, 31 Jan 2013 17:09:05 +0800</pubDate><description><![CDATA[环境 Ubuntu12.04


1. 安装编绎器
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/]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MP4【4】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8506131</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8506131</guid><author>tx3344</author><pubDate>Mon, 28 Jan 2013 16:30:17 +0800</pubDate><description><![CDATA[前面介绍过的几种格式flv、mkv、asf等。他们音视频的数据包一般都是按照文件的顺序交叉安放。你解析完头部信息后。剩下的一般就按照文件顺序一个数据包一个数据包的解析就行了。但是MP4完全不是这种概念。他的媒体信息和数据是分开存放的。就是你想获得数据之前必须要解析出每个帧数据所有的位置。mp4存放这个帧信息的是放在stbl这个box里。而真实的数据放在mdat中。接下来就讲讲stbl与mdat的对]]></description><category></category></item><item><title><![CDATA[【玩转VLC】--- 基于libvlc写个最简单的播放器]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8518039</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8518039</guid><author>tx3344</author><pubDate>Tue, 22 Jan 2013 15:45:04 +0800</pubDate><description><![CDATA[通过【玩转VLC】--- ubuntu下编译vlc 我们已经把vlc编译哦了。生成了一系列的bin和libvlc.so.
接下来我们就用编译好的libvlc.so搞一个最简单的播放器。
我认为vlc的伟大之处有一点就是他并没有把整个播放器写成一个硬生生的bin。而是独立出来个libvlc库，其他的玩家也可以用它的库自己搞一个和他功能一样强大的播放器。


这些部分协同作战，形成了功能强大]]></description><category></category></item><item><title><![CDATA[【玩转VLC】--- ubuntu下编译vlc]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8516824</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8516824</guid><author>tx3344</author><pubDate>Fri, 18 Jan 2013 13:47:35 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MP4【3】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8488262</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8488262</guid><author>tx3344</author><pubDate>Tue, 15 Jan 2013 11:10:23 +0800</pubDate><description><![CDATA[2.2.2  Media Box
Box Type: ‘mdia’

mdia box 结构十分复杂。来个例子。


2.2.2.1 Media Header Box
Box Type: ‘mdhd’
aligned(8) class MediaHeaderBox extends FullBox(‘mdhd’, version, 0) {
if (version==1) {
uns]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MP4【2】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8476669</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8476669</guid><author>tx3344</author><pubDate>Tue, 08 Jan 2013 11:20:34 +0800</pubDate><description><![CDATA[1.File Type Box
Box 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]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MP4【1】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8463375</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8463375</guid><author>tx3344</author><pubDate>Mon, 07 Jan 2013 10:54:08 +0800</pubDate><description><![CDATA[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;表示]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---ASF(WMV/WMA)【2】完]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8259452</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8259452</guid><author>tx3344</author><pubDate>Wed, 19 Dec 2012 12:39:17 +0800</pubDate><description><![CDATA[4.the Data Object
这部分的内容就是asf文件中数据。Data Object 中包含着很多个 Data Packets.这些Data Packets里面就是音视频数据。

先来看看 Data Object 结构

ASF_Data_ObjectGUID表示着这是Data Object 。
Total Data Packets  表示着里面包含的Data
 Packet]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---ASF(WMV/WMA)【1】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8224817</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8224817</guid><author>tx3344</author><pubDate>Tue, 04 Dec 2012 13:53:38 +0800</pubDate><description><![CDATA[ASF全称Advanced Systems Format 
高级串流格式，微软出的一种开放封装格式的标准。它可以包含很多内容如：音视频、脚本命令、JPEG、二进制文件、或是由开发者自己定义的内容.常见的遵循这种标准的封装格式.asf .wmv .wma.
1.最小组成单元ASF object
像FLV的tag、MKV的EBML一样，ASF文件也有类似的最小组成单元 ASF object.可以]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MKV【3】完]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8203260</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8203260</guid><author>tx3344</author><pubDate>Thu, 22 Nov 2012 11:04:52 +0800</pubDate><description><![CDATA[有了上文我们经知道了MKV文件时长、音视频的类型、分辨率、采样率等基本信息，接下来就是音视频的数据了。
4.Clusters
所有的音视频帧数据都在这部分内装着。
1个Cluster内可能有很多个BlockGroup组成，BlockGroup内又由若干个Block组成。这些Block内就是音视频的帧数据。
1个Cluster并不一定只是音频或者视频。它是由不同的音视频BlockGroup交]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MKV【2】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8176288</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8176288</guid><author>tx3344</author><pubDate>Tue, 20 Nov 2012 12:53:04 +0800</pubDate><description><![CDATA[上文MKV【1】已经了解了EBML基本结构和MKV文件的整体结构，接下来我们自己分析每一部分。
1.EBML Header
MKV文件的开头部分是EBML header。可能会包括以下的内容







Element Name

L

EBML ID

Ma

Mu

Rng

Default

T

1

2

3

4]]></description><category></category></item><item><title><![CDATA[【多媒体封装格式详解】---MKV【1】]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8162656</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8162656</guid><author>tx3344</author><pubDate>Fri, 09 Nov 2012 14:45:38 +0800</pubDate><description><![CDATA[Matroska 开源多媒体容器标准。MKV属于其中的一部分。
Matroska常见的有.MKV视频格式、MKA音频格式、.MKS字幕格式、.MK3D files (stereoscopic/3D video).
1.EBML(Extensible Binary Meta Language)


MKV是建立在EBML这种语言的基础上，所以要了解MKV格式需要先了解EBML这种语言。]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【12】-- android中OpenMax的实现【3】OMX中主要成员]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8117908</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8117908</guid><author>tx3344</author><pubDate>Thu, 08 Nov 2012 10:53:55 +0800</pubDate><description><![CDATA[通过上文知道了，每个AwesomePlayer 只有一个OMX服务的入口，但是AwesomePlayer不一定就只需要1种解码器。有可能音视频都有，或者有很多种。这个时候这些解码器都需要OMX的服务，也就是OMX那头需要建立不同的解码器的组件来对应着AwesomePlayer中不同的code。OMX中非常重要的2个成员就是 OMXMaster
 和 OMXNodeInstance。OMX通过这俩]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【11】-- android中OpenMax的实现【2】AwesomePlayer中openmax的入口]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8126732</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8126732</guid><author>tx3344</author><pubDate>Tue, 30 Oct 2012 09:20:59 +0800</pubDate><description><![CDATA[AwesomePlayer 中有个变量 

  OMXClient mClient;让我们看看   OMXClient 
class OMXClient {
public:
    OMXClient();

    status_t connect();
    void disconnect();

    sp interface() {
        return mOMX;]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【10】-- android中OpenMax的实现【1】整体框架]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8109185</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8109185</guid><author>tx3344</author><pubDate>Fri, 26 Oct 2012 15:15:59 +0800</pubDate><description><![CDATA[1.android中用openmax来干啥？
有了上一篇AwesomePlayer基本框架及播放流程已经很清楚的看到了，android中的 AwesomePlayer就是用openmax来做(code)编解码,其实在openmax接口设计中，他不光能用来当编解码。通过他的组件可以组成一个完整的播放器，包括sourc、demux、decode、output。但是为什么android只用他来做cod]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【9】--  OpenMax IL简介]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8106545</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8106545</guid><author>tx3344</author><pubDate>Wed, 24 Oct 2012 13:33:04 +0800</pubDate><description><![CDATA[1.openmax 简介
http://www.khronos.org/openmax/

OpenMax是一个多媒体应用程序的框架标准，由NVIDIA公司和Khronos在2006年推出。

OpenMAX分为3层：


第一层：OpenMax DL（Development Layer，开发层）

第二层：OpenMax IL（Integration Layer，集成层）]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【8】-- AwesomePlayer基本框架及播放流程]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8084912</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8084912</guid><author>tx3344</author><pubDate>Thu, 18 Oct 2012 12:26:28 +0800</pubDate><description><![CDATA[1.通过setDataSource 指定播放器的数据源。可以是URI或者fd.可以是http:// 、rtsp://、本地地址或者本地文件描述符fd。其最终调用是将上层传递来的参数转化为DataSource，为下一步的demux提供数据支持。
2.在真正Prepare功能函数onPrepareAsyncEvent()会调用finishSetDataSource_l。通过第一步产生的DataSou]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【7】-- AwesomePlayer中TimedEventQueue-event事件调度器]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8053106</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8053106</guid><author>tx3344</author><pubDate>Wed, 17 Oct 2012 16:18:01 +0800</pubDate><description><![CDATA[上文已经大概介绍了播放器的几大主要部分，但是有了这些功能组件也不能叫做播放器。需要某种方式将这些单独的功能组件驱动起来，形成一个整体的功能。
视频处理过程中有很多都是十分耗时的，如果都放在一个大的线程空间中。用户体验的效果可想而知。所以通常都是做异步操作。
AwesomePlayer是通过event事件调度来实现这些功能之间的驱动和调用的。

AwesomePlayer中的内部变量]]></description><category></category></item><item><title><![CDATA[Android多媒体开发【6】-- 播放器的基本模型]]></title><link>https://blog.youkuaiyun.com/tx3344/article/details/8045953</link><guid>https://blog.youkuaiyun.com/tx3344/article/details/8045953</guid><author>tx3344</author><pubDate>Mon, 08 Oct 2012 14:37:02 +0800</pubDate><description><![CDATA[AwesomePlayer 不管他有多神秘，说到底还是个多媒体播放器。在播放器的基本模型上，他与VCL、mplayer、ffmpeg等开源的结构是一致的。只是组织实现的方式不同。
深入了解AwesomePlayer 之前，把播放器的基本模型总结一下，然后按照模型的各个部分来深入研究AwesomePlayer 的实现方式。


说白了播放器大致分为4大部分：source、demux、deco]]></description><category></category></item></channel></rss>