Darwin
陈纪建
关注行业动态,找出最适合自己的发展道路
展开
-
Darwin Streaming Server 核心代码分析
首先,我针对的代码是Darwin Streaming Server 6.0.3未经任何改动的版本。Darwin Streaming Server从设计模式上看,采用了Reactor的并发服务器设计模式,如果对Reactor有一定的了解会有助于对Darwin Streaming Server核心代码的理解。Reactor模式是典型的事件触发模式,当有事件发生时则完成相应的Ta转载 2017-06-28 14:50:16 · 220 阅读 · 0 评论 -
Darwin拉流支持基本认证和摘要认证
RTSP认证作为RTSP标准协议的一部分,其内容在网上可以找到很多,在此就不在赘述。EasyDarwin作为RTSP服务器也提供了对RTSP请求的基本认证和摘要认证。EasyDarwin用RTSPSession对象来处理RTSP请求,在其Run函数的kAuthenticatingRequest状态和kAuthorizingRequest状态及其调用的QTSS_RTSPAuthenticate_...转载 2018-09-29 10:27:51 · 237 阅读 · 0 评论 -
Dss 现有的quicktime的文件结构和发包的处理机制
原创 2017-08-07 14:03:30 · 182 阅读 · 0 评论 -
MP4文件格式分析及分割实现(附源码)
MP4文件格式分析及分割实现(附源码) MP4文件格式分析 MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media fi转载 2017-08-14 08:55:06 · 8086 阅读 · 2 评论 -
FLV文件格式分析(附源码)
FLV文件格式分析(附源码)FLV文件主要由两部分组成:Header和Body。1. Headerheader部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下:文件类型3 bytes“FLV”版本1 byte一般为0x0000 0001 (1)转载 2017-08-14 08:54:04 · 2358 阅读 · 0 评论 -
rtpsession详解
以下过程仅分析推送视频模式:服务器监听rtsp端口号,当有客户端连接后,会创建RTSPSession,在客户端请求过程中的announce时,会创建RTPSession,在RTSPSession中维护了一个RTPSession成员。RTSPSession和RTPSession在QTSServerInterface::GetServer()中都有一个map相关联。RTPSession转载 2017-08-05 16:44:27 · 1006 阅读 · 0 评论 -
MP4文件格式详解——元数据moov(一)mvhd box
元数据moov(一)(ISO-14496-12)Author:Pirate LeoEmail:codeevoship@gmail.comISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》转载 2017-08-12 19:53:49 · 1460 阅读 · 0 评论 -
lseek函数详解
所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo。cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数。文件被打开时,cfo 会被初始化为 0,除非使用了 O_APPEND 。 使用 lseek 函数可以改变文件的 cfo 。 #inc原创 2017-08-12 18:13:00 · 2771 阅读 · 0 评论 -
stat结构体
stat结构体:struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取的权限 nlink_t st_nlink; //连到该文件的硬连接数目,刚原创 2017-08-12 13:01:53 · 2168 阅读 · 0 评论 -
MP4文件格式的解析,以及MP4文件的分割算法
mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推荐这么做,人家说毕竟mp4才是H.264最佳的存储格式嘛。 这几天整理并重构了一下mp4文件的解转载 2017-08-12 10:50:07 · 214 阅读 · 0 评论 -
关于MP4文件格式解析
MP4 文件格式 综述关键概念 MP4 文件格式中,所有的内容存在一个称为movie的容器中。一个movie 可以由多个tracks 组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track 里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以转载 2017-08-10 14:12:25 · 896 阅读 · 0 评论 -
MP4文件点播seek原理
本来想说说关于mp4和一些常见视频文件格式方面的历史。现在想想没啥必要,毕竟本文是在讲关于mp4点播拖动方面的技术细节。绪论,前言神马的显得有点多余。说起MP4,不得不提“Digital Container format”的概念。维基百科给出解释:A container or wrapper format is a metafile format whose specifica转载 2017-08-10 13:33:30 · 2690 阅读 · 0 评论 -
QTAtom学习
QTFileToolsQTFileTools是一些基于QTFile库开发的电影查看工具。这些工具包括:QTBroadcaster。这个工具要求给定一个目标IP地址,一个拥有一个或者多个线索轨道(hint track)ID的电影源,以及一个初始化端口。通过这个工具,被线索轨道引用的每一个数据包都可以被广播到指定的IP地址。QTFileInfo。使用这个工具需要给定一个电影源。通过这个原创 2017-08-08 10:48:23 · 631 阅读 · 0 评论 -
QuickTime文件格式规范
QuickTime文件格式概述QuickTime影片是存储在磁盘上,使用两个基本结构存储信息:atoms(也被称为simple atoms或classic atoms)和QT atoms。为了了解QuickTime影片的存储,你需要了解本章描述的基本的atoms结构。大多数你在QuickTime文件格式中看到的atoms都是simple 或classic atoms。即便如此,simple a转载 2017-08-07 17:20:16 · 3926 阅读 · 0 评论 -
Darwin 框架概述
转自: http://www.rosoo.net/a/200904/7285.html1. 前言Darwin Streaming Server是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。本文简述了程序的整个结构,目的是为了以后阅读及修改程序的方便。解开程转载 2017-06-23 17:16:50 · 2859 阅读 · 0 评论 -
Darwin流媒体服务器代码分析
Darwin Streaming Server(即DSS)是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开源的基于标准的流媒体服务器,可以运行在Windows NT和Windows 2000,以及几个UNIX实现上,包括Mac OS X,Linux,FreeBSD和Solar...转载 2019-02-09 09:26:20 · 558 阅读 · 0 评论