自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天地会珠海分舵

做个有耐心的全栈程序员。当前在做的产品-好学街: http://coursebao.com。

  • 博客(388)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 自己动手实现区块链

简介本教程将带领大家从零开始开发一套可行的加密货币系统。开发的基本原则就是尽量的简单易懂。我们打造的这个项目的名称叫做Naivecoin。 用的开发语言是Typescript。总共分为六个章节。大家可以选择相应的分支进去查看相应的代码。如果你只是对区块链的实现原理感兴趣,那么你只需要看第一章就足够了,代码相当的简单,只用200行的代码就能让你一窥区块链的全貌。第一章:最小可行区块链这一章...

2019-06-23 11:53:14 2786

翻译 第六章 钱包管理界面和区块链浏览器

第三章 交易概览非对称加密和签名私钥和公钥交易概览交易outputs交易inputs交易数据结构交易id交易签名未消费的交易outputs未消费交易outputs清单更新交易有效性验证原始交易测试体验小结概览本章我们将引入加密货币中的交易机制。有了交易这个机制之后,我们的区块链将会从一个只有基本功能的区块链华丽转身成一个加密货币系统。 最终我们就能通过指定目标...

2019-06-23 11:50:05 519

翻译 第五章 自己动手写区块链之交易中继

概览交易池广播未决交易有效性验证记账更新交易池体验小结概览上一章节中,我们要给一笔交易记账的话,必须自己手动进行一次挖矿,才会把交易记录加到一个区块里面去。 这一章节中,我们将会引入未决交易中继的机制。有了这个机制之后,我们要进行一笔交易的时候,就不需要自己动手挖矿,而是将自己的交易发送到我们的区块链网络中去(即中继传递的概念),由其他节点在挖矿之后,将我们的交易记录加到他们...

2019-06-23 11:49:28 322

翻译 第四章 自己动手写区块链之钱包

第四章 钱包概览生成钱包钱包余额生成交易使用钱包测试体验小结概览钱包的目的是为了给用户创建更高层的抽象接口来对交易进行管理。我们最终的目的是让用户可以方便的:创建一个新钱包查看钱包的余额在钱包之间进行交易以上这些生效后,用户就不需要知道上一章节中描述的inputs和outpus这些交易的细节,就能对交易进行管理了。就好比在比特币网络中,你只需要把比特币打入对应地...

2019-06-23 11:48:27 243

翻译 第三章 自己动手写区块链之交易

第三章 交易概览非对称加密和签名私钥和公钥交易概览交易outputs交易inputs交易数据结构交易id交易签名未消费的交易outputs未消费交易outputs清单更新交易有效性验证原始交易测试体验小结概览本章我们将引入加密货币中的交易机制。有了交易这个机制之后,我们的区块链将会从一个只有基本功能的区块链华丽转身成一个加密货币系统。 最终我们就能通过指定目标...

2019-06-23 11:47:22 256

翻译 第二章 自己动手写区块链之工作量证明和挖矿

第二章 工作量证明和挖矿概览工作量证明拼图和难易度挖矿难易度共识时间戳校验累积难易度验证测试小结概览本章节我们将会在我们的玩具版区块链的基础上加入工作量证明(POW)的支持。在第一章节的版本中, 任何人都都可以在没有任何工作量证明的情况下添加一个区块到区块链中。 当我们引入工作量证明机制之后,一个节点必须要解开一个有相当计算量的拼图(POW Puzzle)之后,才能往区块链...

2019-06-23 11:46:01 263

翻译 第一章:自己动手写区块链之最小可行区块链

第一章:最小可行区块链概览区块数据结构区块哈希创世块创建区块保存区块链验证区块完整性选择最长链节点间通信操作节点架构运行测试小结概览区块链的基础概念非常简单, 说白了就是一个维护着一个持续增长的有序数据记录列表的这么一个分布式数据库。在此章节中我们将实现一个简单的玩具版的区块链。此章节结束时,我们的区块链将实现以下功能:实现区块和区块链结构定义实现可以将包含...

2019-06-23 11:44:40 561

原创 晓日程-首款打通微信和桌面的免费日历应用

新年伊始,新年新决心, 各大网站到处大肆标榜高效率人士是如何提高生产率的,其中一个共同点就是如何高效的利用好有限的时间。什么有效的单位时间划分,番茄工作法, GTD(Get Things Done),《清单革命》等方法论和书籍再次随着大家的唾沫子到处传播。 作为缺乏运动而免疫力底下且脑洞长期大开的程序员行列的一员,这些唾沫子很容易就通过眼耳口鼻直接进入我的大脑,触碰着我的show觉神经,逼迫本人给...

2019-03-13 10:21:30 526

原创 nodejs通过lodash合并去重由unixtime和Date组成的两个数组

1. 问题起源最近在实现一个API,其中有一部分功能是需要从Mongodb中取出一个由Date对象组成的数组,然后将客户端传过来的unixtime合并到该数组中,并且去重复。比如,假设从mongodb中取回来的数据中有一个叫做gaming的项,专门用来记录用户进入游戏的开始时间和退出时间。 那么mongoose的schema的定义将大概是这样的:const DeviceLogS

2017-04-28 13:32:48 6305

原创 小白学react之调用微信jssdk实战

本打算网上找个react调用微信的jssdk的实例进行学习的,但可惜搜索了半天而未果,只有一些基于其他框架的。估计是大牛们都觉得太简单或者太忙了,懒得提笔花几个小时来给我们做个Demo。对于处于快速学习年代的我们,一个可以运行起来的示例是多么的重要。希望本示例可以起到抛砖引玉的作用,让大家能快速的在react框架下体验jssdk的强大功能。通过上一篇《小白学react之网页获取微信用户信息》我们学

2017-04-23 11:30:12 7949 2

原创 小白学react之网页获取微信用户信息

通过上一篇《小白学react之EJS模版实战》我们学习了如何通过EJS模版生成我们高定制化的index.html文件。本篇我们将会继续延续我们的alt-tutorial项目的实战计划,去获取微信扫码用户的信息,并将头像显示在我们页面的右上角上。最终实战效果将如下所示。首先根据我们的网站url生成二维码,比如我们可以通过浏览器的FeHelper来生成:然后用户通过微信扫码:最后用户确定授权后获取到用户

2017-04-23 11:29:05 4823

原创 小白学react之EJS模版实战

通过上一篇《小白学react之由FOUC引发的一次webpack变革》我们学习了webpack的一些高级用法,比如如何生成哈希文件,如何将开发和生产配置分离,如何解决FOUC问题,以及如何运用html格式的模版来自动生成我们的index.html。但是在尝试将我们的应用部署到我的一个阿里云服务器上的时候却出现了问题。整个问题主要就是因为前端路由和访问路径不一致导致的,往下我就描述下应该如何解决。1.

2016-10-12 12:38:56 2973

原创 小白学react之由FOUC引发的一次webpack变革

上一篇《小白学react之页面BaseLayout框架及微信的坑》我们学习了如何为各个Components提供一个基础的父框架组件来处理不同页面的Title的显示和Style样式的显示。今天本人会尝试就自己踩到的一个坑开始,通过对webpack做进一步的修改,来学习更高级点的webpack相关的知识点。主要需要解决的问题如下:FOUC问题生产和开发配置分离自动生成index.html页面模版文

2016-10-12 12:37:26 1722

原创 小白学react之页面BaseLayout框架及微信的坑

上一篇《小白学react之SASS实战》我们学习了如何通过运用sass来为我们的应用页面“上色”,加入css的支持。但是我们到现在为止,每个页面的标题还是系统默认的,这多多少少显得不专业: 今天我的目标就是为所有页面提供一个通用的基础布局框架,以便在同一个地方控制不同页面的布局,比如背景颜色以及标题等。1. BaseLayout1.1 小白方案以修改标题为例,假如我们希望在About页面的时候标题

2016-10-12 12:35:55 1519

原创 小白学react之SASS实战

上一篇《小白学react之restful api获取服务器数据实战》我们学习了如何通过superagent的两个模块提供的功能,调用远程Express服务器上通过restful api提供的数据,并且学习了如何打造一个简单的Express api服务器。今天本人准备将我们的示例应用alt-tutorial加上css的支持,以便能更好的呈现。以下是最终效果:本篇开始之前,如果看官跟我一样对SASS没有

2016-10-12 12:34:19 2002

原创 小白学react之restful api获取服务器数据实战

通过上一篇文章《[小白学react之React Router实战](http://techgogogo.com/2016/09/react_router/)》我们学习了在React Router的基本功能,并根据路由功能建立了一个导航栏,可以方便的切换查看Locations和About。但是,这里Locations的数据还是在客户端模拟出来的。作为前端应用,和服务器端打交道是在所难免的了。所以,今天我

2016-09-29 15:38:02 7325

原创 小白学react之React Router实战

通过上一篇文章《[小白学react之altjs下的Action和Store](http://techgogogo.com/2016/09/altjs_action_store/)》我们学习了在alt框架下的Action和Store的特色,以及对alt-tutorial的代码做了重构,让其更简洁且各模块职责更分明。今天的计划是继续对alt-tutorial进行改造,通过实战来学习React Router的基

2016-09-29 08:06:33 957

原创 微信应用号开发知识贮备之altjs的Action和Store

过上一篇文章《[微信应用号开发知识贮备之打通React Component任督二脉](http://techgogogo.com/2016/09/altcontainer/)》我们学习了AltContainer是如何通过对Component职责的解绑,让Component的尽可能的关注在如何进行页面渲染的逻辑上去,而不需要去管该如何获取数据,该如何监听状态是否改变是否需要重新渲染的逻辑,从而让整个组件更容易重用

2016-09-27 20:43:02 709

原创 微信应用号开发知识贮备之打通React Component任督二脉

随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生。作为行业内人士,我们很应该去拥抱这个趋势。这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没...

2016-09-25 20:45:11 1185

原创 微信应用号开发知识贮备之Webpack实战

随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生。作为行业内人士,我们很应该去拥抱这个趋势。这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没通过上一篇《微信应用号开发知识贮备之altjs官方实例初探》,我们已经将altjs的官方实例所用到的依赖包升到最新,且修改的源码相应的部分来适应最新的依赖。

2016-09-24 10:49:58 2061

原创 微信应用号开发知识贮备之altjs官方实例初探

天地会珠海分舵注:随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生。作为行业内人士,自己之前从来没有做过web及webapp开发,所以这方面算是一名小白。时下最热的技术栈当然还是围绕着javascript的nodejs,mongodb,express, angularjs,HTML5,reactjs等了,这段时间在忙完工作之余准备储备一下这方面的知识点,以便不被微信应用号的浪潮所淹没。

2016-09-23 09:12:11 876

原创 开辟新战场,打造新的商业模式

在当今商业竞争异常激烈的年代,“差异化”和“革新”这两个词被广泛的交替使用,人们对它们之间的差别已经变得越来越模糊。比如我们经常会听到人说,我们要革新我们的商业模式,对我们的产品重新进行定位,找到有差异化的新商业模式和产品定位。其实它们之间是有着明显的区别的,“差异化”形容的是当前事物和旧事物还是基于同样的基础架构的,只是上层的表现形式等发生了改变。比如无论你一辆车的形状怎么变,无论你是烧汽油的兰博

2016-04-22 09:13:18 1621

原创 需求驱动还是技术驱动,大跃进的聊天机器人在开着一辆往历史倒退的车

F8大会的那个引爆的聊天机器人相信大家已经耳熟能详,但我们真的是需要这样的一个聊天机器人吗?Facebook是在大跃进穿越未来,还是在开着历史的倒车呢?李敖有话说:“是这样吗?真的是这样子吗?”

2016-04-22 09:10:33 6150

翻译 苹果产品设计中鲜为人知的10个细节

说到设计,无论是软件还是硬件上面,毫无疑问苹果对于细节上面的把控可以说无人能与之匹敌。在过去的几十年里,苹果对细节的注重可谓有口皆碑,很多细节上面的设计在无人指出的情况下很多消费者都没有注意到。令人惊讶的是,很多注重细节的iPhone和Mac的忠实拥趸也尝尝会忽略掉苹果设计上面的一些细节。下面我们列出10个可能会让你眼界大开的有趣却鲜为人知的设计细节,值得注意的是,这些细节事实上苹果也没有大肆的宣扬

2016-02-02 09:55:51 1810

翻译 破坏性创新第一原则

如果在位者的关键用户们没有尽其所能的去揶揄你在打造的产品是如何的功能匮乏的话,那么,你的这个产品没有足够的破坏力...

2015-12-23 13:23:16 1629 1

翻译 云端办公?除了访问不了的谷歌和付费的微软,您其实还有其他选择

LibreOffice的商业合作伙伴Collabora和ownCloud共同发布了一个在线LibreOffice版本,其中ownCloud是一个类似Dropbox的开源文件存储和共享系统(其实就是一私有云产品)...

2015-12-17 10:14:43 1880

翻译 如日中天的Uber究竟是用什么开发语言做到的?

Uber的网站可靠性工程师Tom Croucher在最近于波兰举行的Node.js互动大会上详尽的对该公司所用的语言平台进行了阐述...

2015-12-17 10:04:35 2355 1

翻译 2分钟读懂大数据框架Hadoop和Spark的异同

谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考...

2015-12-17 09:55:35 2800 3

翻译 谁在吞噬着这个世界

Marc Andreessen曾抛出著名的言论说:“软件正在吞噬着整个世界”,这句话如今在IT界可谓是无人不知,无人不晓。同样是做风投的同行John Vrionis更进一步的断言说:“开源软件正在吞噬着整个世界”。那么何出此言?John是在大放阙词呢?还是言之有理呢?

2015-12-17 09:46:34 1767

原创 第14章9节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-遍历控件树查找控件

到了现在,万事已经俱备,控件树这个东风也已经就绪了,我们也终于可以火烧赤壁大展拳脚,通过控件的ID在控件树中找到我们想要的控件了。 HierarchyViewer只允许用户通过控件的ID去查找控件,这比Robotium,UiAutomator和Appium这些框架是少了很多查找控件的方式的,但聊胜于无。 HierarchyViewer去尝试通过控件ID的方法叫做findViewById,它有两个重

2015-12-08 11:02:18 2052 1

原创 第14章8节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树

在上几节的描述中,我们把HierarchyViewer初始化好,也把ViewServer给装备好了。那现在距离获得一个控件去操作它是万事具备只欠东风了,欠了那一股春风了?欠了的是建立控件树这个东风,因为HierarchyViewer根据ID去获取一个控件之前是需要先建立好控件树,然后从该控件树上根据ID去查找到目标控件的。 那么这一小节我们就先去看下HierarchyViewer是如何去ViewS

2015-12-08 11:01:46 2059

原创 第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号

这里获取的版本号有两个,一个是ViewServer自身的版本号,一个是ViewServer当前使用协议的版本号。 我们这里为什么需要获取ViewServer版本以及其协议版本呢?其实主要原因是ViewServer有些功能在老版本上是不支持的,比如HierarchyViewer在列出当前所有Activity窗口的时候,针对获取焦点的窗口会根据不同的ViewServer协议版本而作不同处理,请看源码示

2015-12-08 11:00:57 1818

原创 第14章6节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-启动ViewServer

在获得ViewServer的运行状态后,如果ViewServer还没有启动的话,HierarchyViewer的setupViewServer的下一步就会去启动ViewServer。调用的方法是DeviceBridge.startViewServer,我们进去看看:190 public static boolean startViewServer(IDevice device) {191

2015-12-08 11:00:24 1771

原创 第14章5节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-查询ViewServer运行状态

上一小节我们描述了HierarchyViewer是如何组建ADB协议命令来实现ViewServer的端口转发的,在端口转发设置好后,下一个要做的事情就是去检测目标设备端ViewServer线程是否已经启动起来了。我们进入setupViewServer调用的DeviceBridge的isViewServerRunning方法:165 public static boolean isViewS

2015-12-08 10:59:54 1739

原创 第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发

在初始化HierarchyViewer的实例过程中,HierarchyViewer会调用自己的成员方法setupViewServer来把ViewServer装备好,那么我们这里先看下这个方法: 39 private void setupViewServer() { 40 DeviceBridge.setupDeviceForward(mDevice); 41

2015-12-08 10:57:43 1660

原创 第14章3节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化

既然要使用HierarchyViewer来获取控件信息,那么首先我们看下在脚本中,我们是怎么获得HierarchyViewer的,看下面一段脚本代码:1 device = MonkeyRunner.waitForConnection() 2 device.wake()3 device.startActivity(component="com.example.android.notepad/c

2015-12-08 10:56:02 1715

原创 第14章2节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer架构概述

HierarchyViewer库的引入让MonkeyRunner可以以面向控件的方式进行脚本编写,那么它是怎么做到这一点的呢?它的实现原理又是怎么样的呢?在这一小节开始我们就会开始一起揭开它的神秘面纱。 HierarchyViewer这个框架的工作需要ViewServer的协同工作,它们是以CS(Client-Server)架构来协同工作的。我们在上一章已经学习了如何让做为Server端的View

2015-12-08 09:18:28 1925

原创 第14章1节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-面向控件编程VS面向坐标编程

到此为止我们描述的MonkeyRunner对应用的点击拖放等操作都是直接通过指定坐标点来实现的,比如下面触摸一个坐标点为(60,90)的按钮的脚本例子:1 device.touch(60,900,MonkeyDevice.DOWN_AND_UP)代码14-1-1 直接使用坐标点操作应用  这样子做的话代码会存在以下几大缺点:缺乏易用性:要操作某个控件之前需要先想办法如通过工具来定位该控件的坐标点可

2015-12-08 09:17:42 1532

原创 第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结

最后我们对MonkeyRunner启动的过程做一个总结,当然,其中也包括启动Monkey,虽然它不属于启动过程的一部分:monkeyrunner这个shell脚本会先设置一些运行环境的系统属性保存到JVM的System.Propery里面然后该脚本会通过java -jar直接运行sdk下面的monkeyruner.jar然后操作系统直接回调到monkeyrunner在MonkeyRunnerSta

2015-12-08 09:16:19 1326

原创 第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey

大家可能会觉得奇怪,为什么启动目标设备端的monkey进程会放在“运行测试脚本”这一节之后来阐述。 纵观前面整个MonkeyRunner的启动流程,我们看到并没有提及到monkey进程启动的地方。那么就奇怪了,monkey是什么时候被MonkeyRunner启动起来的呢? 我们的测试脚本一开始时几乎毫无例外的都需要执行一个调用:MonkeyRunner.waitForConnection(),如果

2015-12-08 09:15:42 1631

流媒体基本知识及流媒体服务器搭建知识大全

内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。由本人“天地会珠海分舵”(http://blog.csdn.net/zhubaitian)耗时一个月整理而成,现分享给大家。 章节内容分布如下: 第1章Streaming 协议和服务器概览学习摘录 7 1.1 Protocol support 8 1.2 Media Container format support 12 第2章Streaming 协议学习摘录 15 2.1 MMS协议简介 15 2.2 RTP相关协议简介 15 2.2.1 RTP与RTCP协议简介 15 2.2.2 RTSP协

2015-01-06

创业Pitch Deck标杆/指南

这是Wattage创始人经理几十个版本后锤炼出来的PichDeck,海外一直好评如潮,也许我们国内的创业者们也应该借鉴一二...

2015-05-18

仿简书Wordpress主题

一个高仿简书精美界面的主题 由Pete提供 我是从代码中看到Pete的名字 如果有误的话请联系我进行修改

2015-03-28

HTTP2.0协议描述

从技术和协议的角度去描述HTTP2.0,由Mozilla资深工程师Daniel Stenberg所作。

2015-02-13

流媒体及服务器搭建知识大全

内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。有本人“天地会珠海分舵”(http://blog.csdn.net/zhubaitian)耗时一个月整理而成,先分享给大家。 章节内容分布如下: 第1章Streaming 协议和服务器概览学习摘录 7 1.1 Protocol support 8 1.2 Media Container format support 12 第2章Streaming 协议学习摘录 15 2.1 MMS协议简介 15 2.2 RTP相关协议简介 15 2.2.1 RTP与RTCP协议简介 15 2.2.2 RTSP协议简介 16 2.2.3 流传输过程 17 2.3 RTMP vs RTMFP 18 2.3.1 RTMP协议简介 18 2.3.3 RTMFP 简介 19 2.3.4 RTMP VS RTMFP 20 2.4 MPEG-TS 20 2.4.1 MPEG2-TS与MPEG2-PS的区别 20 2.4.2 PES/ES/TS简介 20 2.5 Smooth Streaming 21 2.5 HLS简介 24 2.6 MPEG-DASH 26 2.6.1 简介 26 2.6.2 Dash播放器列表 28 2.6.3 MPD格式 30 2.6.5 MPD在线检查器 31 2.6.5 MPD 格式理解个人小结 31 2.6.6 PMD格式的多样性 32 2.6.7 MPD 支持的Profiles 44 2.6.8 DASH传输协议支持 44 2.7 HLS VS MPEG-DASH 45 2.8 Real Data Transport Protocol 45 2.9 webM 45 第3章 视频容器格式学习摘录 47 3.1 视频容器VS 视频编码 47 3.2 3GP容器 48 3.2 AVI容器(.avi) 49 3.3 WMV vs ASF 容器(.wmv/.asf) 49 3.3.1 ASF高级串流格式简介以及和WMA/WMV的区别 49 3.3.2 ASF和WMA/WMV的区别官方解析 50 3.4 QuickTime容器(.mov) 50 3.5 Ogg vs Ogm容器(.ogg) 51 3.5.1 Ogg容器格式 51 3.5.2 Ogm 51 3.5.3 Ogg vs Ogm 52 3.6 Matroska容器(.mkv|.mka|.mks) 52 3.7 MP4容器 53 3.7.1 简介 53 3.7.2 MP4格式详解 53 3.8 MPEGE TS容器 61 3.9 FLV容器 62 3.10 ABS – Adaptive Bitrate Streaming 自适应串流容器 62 3.11 码率 63 3.12 流媒体的3种格式 63 3.12.1 压缩媒体文件格式 63 3.12.2 流文件格式 64 3.12.3 流媒体发布格式 64 第4章 视频编码格式学习摘录 66 4.1视频编码格式简介 66 4.2主流视频编码格式比较 67 4.2.1 MPEG编码格式 67 4.2.2 DivX/XviD编码格式 68 4.2.3 H.264/X264编码格式 69 4.2.4 WMA-HD/VC-1编码格式 71 4.2.5 各主流编码格式比较 72 4.3 视频解码 73 第5章ffmpeg学习摘录 74 5.1 简介 74 5.2 功能 74 5.3 支持的格式和编码 75 5.4 支持的流媒体协议 76 5.5 ffmpeg视频解码架构示例简略 76 5.5.1 解复用(Demux) 77 5.5.2 解码 (Decode) 78 5.5.3 Ffmpeg中解码流程对应的API函数 78 第6章GStreamer学习摘录 80 6.1 GStreamer简介 80 6.2 GStreamer编写MP3播放器实例 80 6.2.1 初始化GStreamer 80 6.2.2 创建GStreamer管道元件 81 6.2.3 创建元件三元组之GStreamer数据源 81 6.2.4 创建元件三元组之解码器 (即GStreamer过滤器) 插件 81 6.2.5 创建元件三元组之GStreamer接收器 81 6.2.6 链接GStreamer元件三元组到管道 – 播放 82 6.2.7 启动GStreamer管道数据处理流程 82 6.2.8 MP3命令行播放器源代码完整实例 82 第7章 ffmpeg VS GStreamer比较学习摘录 85 7.1 Pipeline设计模式简介 85 7.2 ffmpeg vs GStreamer 86 7.2.1 网上解析翻译 86 7.2.1 FFmpeg和GStreamer异同小结 87 第8章 流媒体服务器搭建摘录 88 8.1 VLC 88 8.1.1 VLC编码和容器兼容性 88 8.1.1 VLC 配置VOD点播 88 8.1.2 VLC 配置组播服务器 90 8.2 Wowza Streaming Engine 91 8.2.1 简介及安装 91 8.2.2 MPEG-DASH 支持 92 8.2.3 如何使用VLC作为直播源 95 8.2.4 点播VOD配置 112 8.3 Nex Gen Media Server (NGMS) 114 8.3.1 Introduction 114 8.3.2 Feature List 115 8.3.3 Practice in Action 116 8.4 IIS Smooth Streaming(IIS Media Service) 117 8.4.1 Getting Started with IIS Smooth Streaming 117 8.4.2 Use VLC to play the Smooth Stream 128 8.4.3 创建Smooth Stream 文件 129 8.4.4 提供DASH服务时IIS的关键设置 129 8.4.5 Dash on IIS步骤 130 第9章 相关工具学习摘录 137 9.1 Bento4 MP4工具包 137 9.1.1 Introduction 137 9.1.2 所包含的工具简介 138 9.1.3 MPEG DASH Adaptive Streaming 139 9.1.4 Serving DASH Streams 147 9.2 MP4Box 149 9.2.1 简介 149 9.2.2 对DASH的支持命令帮助 150 9.2.3 MP4Box: fragmentation, segmentation, splitting and interleaving 153 9.2.4 把MP4转换成TS 155 9.2.5生成不同profile的MPD 155 9.2.6指定每个Representation的bandwidth 156 9.2.7生成多个period的MPD 156 9.2.8生成多个Representation的MPD 156 9.2.9 生成多个Segment的MPD 156 9.2.10 生成(Subsegment) SegmentBase拥有 indexRangeExact 为true的MPD 157 9.2.11 生成多个AdaptionSet的MPD 158 9.2.12 模拟live直播 158 第10章 流媒体服务器搭建指导 159 10.1 所需搭建服务器Matrix 159 第11章 附录 163 11.1 Wowza支持格式 163 11.2 ISO Base Media File Format (IBMFF) 163 11.3 DASH所支持Profile分类 164

2015-01-06

空空如也

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

TA关注的人 TA的粉丝

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