E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Live555
Live555
源代码解读(10)
十一 、h264RTP传输详解(3)书接上回:H264FUAFragmenter又对数据做了什么呢?[cpp] viewplaincopyvoid H264FUAFragmenter::doGetNextFrame() { if (fNumValidDataBytes == 1) { // We have no NAL unit data currently in t
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(11)
十二、h264rtp包的时间戳这次我们一起来分析一下
live555
中是怎样为rtp包打时间戳的.就以h264为例吧.
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(9)
十、h264RTP传输详解(2)上一章并没有把打开文件分析文件的代码找到,因为发现它隐藏得比较深,而且H264的Source又有多个,形成了连环计。所以此章中就将文件处理与H264的Source们并在一起分析吧。从哪里开始呢?从source开始吧!为什么要从它开始呢?我就想从这里开始,行了吧?[cpp] viewplaincopyFramedSource* H264VideoFileServerM
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(8)
九、h264RTP传输详解(1)前几章对Server端的介绍中有个比较重要的问题没有仔细探究:如何打开文件并获得其SDP信息。我们就从这里入手吧。当RTSPServer收到对某个媒体的DESCRIBE请求时,它会找到对应的ServerMediaSession,调用ServerMediaSession::generateSDPDescription()。generateSDPDescription(
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(7)
八、RTSPClient分析有RTSPServer,当然就要有RTSPClient。如果按照Server端的架构,想一下Client端各部分的组成可能是这样:因为要连接RTSPserver,所以RTSPClient要有TCPsocket。当获取到server端的DESCRIBE后,应建立一个对应于ServerMediaSession的ClientMediaSession。对应每个Track,Cli
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(6)
七、RTP打包与发送 rtp传送开始于函数:MediaSink::startPlaying()。想想也有道理,应是sink跟source要数据,所以从sink上调用startplaying(嘿嘿,相当于directshow的拉模式)。看一下这个函数:BooleanMediaSink::startPlaying(MediaSource&source,afterPlayingFunc*afterF
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(5-4)
live555
中有两个streamstate,一个是类StreamState,一个是此处的结构structstreamState。
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(5-3)
voidRTSPServer::RTSPClientSession::handleCmd_SETUP(charconst*cseq,charconst*urlPreSuffix,charconst*urlSuffix,charconst*fullRequestStr){//Normally,"urlPreSuffix"shouldbethesession(stream)name,//and"url
Sean-x
·
2016-02-25 19:00
Live555
源代码解读(5-2)
为何不把StreamToken保存在MediaSubsession中呢?看起来在structstreamState中是一个MediaSubsession对应一个streamToken呀?因为MediaSubsession 代表一个track的静态数据,它是可以被其它rtp会话重用的。比如不同的用户可能会连接到同一个媒体的同一个track。所以streamToken与MediaSubsession
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(5-1)
六、建立RTP会话 首先更正一个概念:ServerMediaSession原先说代表一个流,其实是不准确的。它代表的是server端的一个媒体的名字,而说ServerMediaSubsession代表一个Track是准确的。以后流指的是那些有数据流动的组合。RTP的建立:RTP的建立过程无非是这样:client告诉server自己的rtp/rtcp端口号,server建立自己的rtp/rtcp
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(4)下
[cpp] viewplaincopystatic ServerMediaSession* createNewSMS(UsageEnvironment& env,char const* fileName, FILE* /*fid*/) { // Use the file name extension to determine the type of "ServerMediaSessi
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(4)上
五、RTSP服务运作 基础基本搞明白了,那么RTSP,RTP等这些协议又是如何利用这些基础机制运作的呢?首先来看RTSP.RTSP首先需建立TCP侦听socket。可见于此函数:[cpp] viewplaincopyDynamicRTSPServer* DynamicRTSPServer::createNew(UsageEnvironment& env, Port ourPort, User
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(3)
四、计划任务(TaskScheduler) 我们且把三种任务命名为:sockethandler,eventhandler,delaytask。这三种任务的特点是,前两个加入执行队列后会一直存在,而delaytask在执行完一次后会立即弃掉。 sockethandler保存在队列BasicTaskScheduler0::HandlerSet*fHandlers中; eventhandl
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(2)
三、消息循环 看服端的主体:
live555
MediaServer.cpp中的main()函数,可见其创建一个RTSPServer类实例后,即进入一个函数env->taskScheduler().doEventLoop
Sean-x
·
2016-02-24 21:00
Live555
源代码解读(1)
一、整体架构 从程序的结构来看,live项目包括了四个基本库、程序入口类(在mediaServer中)和一些测试代码(在testProgs中)。四个基本库是UsageEnvironment、BasicUsageEnvironment、groupsock和liveMedia。 UsageEnvironment包括抽象类UsageEnvironment和抽象类TaskScheduler,这两个
Sean-x
·
2016-02-24 21:00
RTSP学习笔记(4)LiveMediaServer流程分析
Live555
MediaServer1、初始化BasicTaskschedularBasicUsageEnvironmentRTSPServer|--------newRTSPServer|------
Sean-x
·
2016-02-23 20:00
RTSP学习笔记(3)
live555
OnDemandServerMediaSubSessionOnDemandServerMediaSubSession是ServermediaSubSession的一个中间实现,定义了一些点播服务的特性 保护方法:OnDemandServerMediaSubsession(UsageEnvironment&env,BooleanreuseFirstSource,portNumBitsinitialP
Sean-x
·
2016-02-23 19:00
RTSP学习笔记(2)
live555
RTSPClientRTSPClient 是RTSP协议的客户端实现,用于发送RTSP请求命令 类接口:staticRTSPClient*createNew()用于外部创建RTSPClient实例的方法,将构造方法进行了隐藏(protect);unsignedsendXXXXCommand()发送RTSP请求,会传入回调函数responseHandler;responseHandler是类内部定义
Sean-x
·
2016-02-23 19:00
RTSP学习笔记(1)
live555
1、UsageEnvironment UsageEnvironment代表了整个程序的运行环境,其中保存了一些全局变量,定义了一些输出函数(纯虚函数)。从这些输出函数就可以看出该类主要用于充当程序的全局上下文,并提供打印信息的输出。BasicUsageEnvironment0继承自UsageEnvironment,实现了其中的纯虚函数。BasicUsageEnvironment继承自BasicUs
Sean-x
·
2016-02-23 19:00
RTSP服务器实例
live555
源代码分析
1.RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingC
Sean-x
·
2016-02-23 19:00
主流的流媒体服务器
开源流媒体平台FreeCast6流媒体服务器Yass7开源流媒体平台Stream-2-Stream8Flumotion流媒体服务器9icecast10WEB自动点唱机netjukebox11流媒体解决方案
live555
12HelixDNAPlatform
mydddfly
·
2016-02-21 18:00
流媒体-探索发现(上)
尽管,也会那么点C/C++但是却还是感觉力不从心,因为ffmpeg和
live555
的代码量都太大了,并且还需
Supper_litt
·
2016-02-01 14:00
使用
live555
实时播放rtsp
于是需要使用第三方库
live555
来解决这个问题。
miller1026
·
2016-01-30 19:00
android
jni
RTSP
RTP
Live555
Live555
在Android下改造
Live555
是一个为流媒体提供解决方案的跨平台的C++开源项目,具体就不做介绍了。
alien75
·
2016-01-30 14:00
live555
ProxyServer.cpp分析:初始化流程
1、创建RTSPServer对象,主要是初始化父类GenericMediaServer,创建服务端socket 先调用setUpOurSocket函数建立TCP连接,获得RTSP连接socket 初始化父类GenericMediaServer,父类中存储了fServerMediaSessions,fClientConnections,fClientSessions三个map,fServerMe
ielife
·
2016-01-23 15:00
media
代理
proxy
多媒体
Live555
Live555
Streaming Media
原文在这里->http://www.
live555
.com/liveMedia/这份代码由一系列使用开放标准协议(RTP/RTCP,RTSP,SIP)的C++多媒体流库文件组成。
真相只有一个Only
·
2016-01-19 21:39
Live555
Streaming Media
原文在这里->http://www.
live555
.com/liveMedia/这份代码由一系列使用开放标准协议(RTP/RTCP,RTSP,SIP)的C++多媒体流库文件组成。
真相只有一个Only
·
2016-01-19 21:39
基于
live555
的一个简单RTSP服务器
1,编译
live555
源码目录下的 BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment四个工程生成相应的库文件;目录结构如下: 2,包含上面四个工程目录下的
mediastream
·
2016-01-18 22:00
RTSP RTP RTCP协议解析
一.RTP会话类型二.软件架构RTP组播方式同步播放方案基于两个RTP组件android端的
live555
RTP服务端和SPK端GstreamRtpmanageRTPclient。
JohnCh
·
2016-01-17 19:00
Live555
基础
1
Live555
组成
LIVE555
下包含LiveMedia、UsageEnvironment、BasicUsageEnvironment、GroupSock库,MediaServer简单服务器程序以及其他多个测试
zhangyujsj
·
2016-01-09 22:00
mp4 文件中的h264 avc1格式介绍
笔者也是在改编
LIVE555
流媒体时,增加mp4文件类型支持时遇到了该问题。
haima1998
·
2015-12-29 15:00
TK1搭建
live555
wgethttp://www.
live555
.com/liveMedia/public/
live555
-latest.tar.gz tarxzf
live555
-latest.tar.gz cdlive打开
uselym
·
2015-12-26 21:00
主流跨平台媒体库ffmpeg,
live555
,MobileVLCKit简介
下面是主流的媒体解码或播放库清单,它们都是跨平台支持的:ffmpeg:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。了解视频编解码原理和流程、
人生好迈
·
2015-12-02 10:00
媒体解码库
RTSP二次开发包
RTSP二次开发包概述RTSP开源代码属
Live555
最为权威完整,其单线程、socket控制、任务调度等思想值得我们借鉴。单线程消除了所有互斥量,极大提高了程序的运行效率。
wjh_monkey
·
2015-11-29 13:00
任务调度
RTSP
MFC消息机制
MPlayer上支持RTSP流媒体(
live555
作为流媒体播放器)
条件:在中天CK810的CPU上运行linux12.04操作系统以tft传输方式加载uImage;考虑到针对性,一开始mplayer的编译选项并不是mplayer官网上下载下来的configure,很多条件都是disable的,链接文件和链接库也是有自己的指定位置-Ixx-Lxx(1)查找player播放RTSP流的命令mplayerrtsp://192.168.1.2:/video.264板子和
Destihang
·
2015-11-27 21:25
MPlayer上支持RTSP流媒体(
live555
作为流媒体播放器)
条件:在中天CK810的CPU上运行linux12.04操作系统以tft传输方式加载uImage;考虑到针对性,一开始mplayer的编译选项并不是mplayer官网上下载下来的configure,很多条件都是disable的,链接文件和链接库也是有自己的指定位置-Ixx-Lxx (1)查找player播放RTSP流的命令mplayerrtsp://192.168.1.2:/video.2
Destihang
·
2015-11-27 21:00
live555
在arm linux下的交叉编译,并下载的Arm板播放H264文件
我的系统是ubuntu 11.10 1.
live555
源码 和 H264测试文件下载 ,见如下链接 上传到CSDN 资源中的文件,还没有看到,我后面补上。
·
2015-11-13 19:32
linux
live555
的liveMedia类关系图
初次接触
live555
,见到这么多类还是挺不适应的,幸好有位前辈总结了类关系的图(原文链接http://blog.csdn.net/huangxinfeng/article/details/5374721
·
2015-11-13 13:11
media
vs2010编译
live555
源码
最近加入了公司的C++视频小组,利用中秋这个假期将研究了一些
live555
的源码,现在先将如何编译使用vs2010编译
live555
,整理出来,对以后分析代码有很大帮助。
·
2015-11-13 12:53
VS2010
各种流媒体服务器的架设(二)
二、
Live555
开源流媒体服务器搭建
Live555
是一种RTSP流媒体服务器软件,并且是源代码公开的,这对于快速建立流媒体服务器有很大的优势。
·
2015-11-13 10:32
服务器
用
live555
将内网摄像机视频推送到外网server,附源代码
近期非常多人问,怎样将内网的摄像机流媒体数据公布到公网,假设用公网与局域网间的port映射方式太过麻烦,一个摄像机要做一组映射,并且不是每个局域网都是有固定ip地址,即使外网主机配置好了每个摄像机的映射地址,也有可能会由于宽带公网ip地址变动而导致配置无效。 再换一个应用场景,当我们的全部IP摄像机都部署在一个没有有线网络的环境里面,全部的流媒体数据都要通过3G/4G网络公布出去。那么就必须
·
2015-11-13 08:11
server
【流媒體】
live555
—VS2010/VS2013 下
live555
编译、使用及测试
【流媒體】
live555
—VS2010 /VS2013 下
live555
编译、使用及测试 SkySeraph Apr 11st 2012 Email:skyseraph00@
·
2015-11-13 06:19
VS2010
【流媒體】
live555
—VS2010 下
live555
编译、使用及测试
Ⅰ
live555
简介
Live555
是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。
·
2015-11-13 04:15
VS2010
摄像头采集,264编码,
live555
直播(2)
加入 摄像头采集和264编码,再使用
live555
直播 1、摄像头采集和264编码 将x264改成编码一帧的接口,码流不写入文件而是直接写入内存中
·
2015-11-13 02:33
live
摄像头采集,264编码,
live555
直播(1)
参看 有关
live555
1.首先需要修改
live555
,定义从 内存中直接获取source而不是从文件读取source的类。
·
2015-11-13 02:33
live
有关
live555
Source和Sink:可以把source理解为发送端的流,sink理解为接受端。MediaSink是各种类型的Sink的基类,MediaSource是各种类型Source的基类,各种类型的流媒体格式和编码的支持即是通过对这两个类的派生实现的。Source和Sink通过RTP子会话(MediaSubSession)联系在一起。
·
2015-11-13 02:32
live
live555
构建流媒体服务器(1)
读test.264码流文件,客户端可以通过ffplay.exe rtsp: xxx播放出来。 直接使用编译好的库,改自testOnDemandRTSPServer.cpp #include "liveMedia.hh" #include "BasicUsageEnvironment.hh" #pragma comment (lib, &quo
·
2015-11-13 02:31
live
流媒体头部文件替换加密
http://wenku.it168.com/d_000504090.shtml http://wenku.baidu.com/view/d6ac8ba4b0717fd5360cdc5d.html
live555
·
2015-11-12 22:45
文件
Live555
中的Select
Live555
的关键函数是void BasicTaskScheduler::SingleStep(unsigned maxDelayTime),就是这个函数不停的循环执行才驱动了整个
·
2015-11-12 13:14
select
android-vlc for rtsp build OK
近期研究 rtsp http stream 流获取方式 vlc over
live555
是个很不错的选择,当然了 andorid framework av也是支持rtsp http
·
2015-11-12 13:32
android
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他