Live555 + Darwin Streaming Server(DSS)视频直播方案

function writeSpace( num){ var i;
for(i = 0; i < num; ++i)
{ document.write('   ' ); }
}
该方案的实现原理是,通过Live555的DarwinInjector Class,把本地采集的音频和视频流,注入到DSS服务器。客户端就可以直接访问DSS服务器(不是Live555所在的采集端)来访问实时流媒体数据。

这种方案的优点:
》保证了单台DSS服务器并发量可以上几百。
》DSS服务可以像承载点播一样,实现直播。
》支持多路直播,就跟增加一个点播文件一样简单。

缺点:
》延时一般需要5秒左右
》直播集群支持节点受限,一台PC运行Live555采集端可同时注入的DSS服务器数量不超过5台

首先需要修改DSS服务端配置:
这里需要设置一下/usr/local/movies/目录的QTSS访问权限,允许写入:
修改DSS配置,增加文件:vi /usr/local/movies/qtaccess,增加以下几行
require any-user
require any-user

基本原理图如下:
writeSpace(38); /—-【客户端 1 RTSP Client(例如VLC)】

【采集客户端调用Live555 DarwinInjector】 —-> 【DSS 服务器 192.168.1.22】《—–【客户端 2 RTSP Client(例如VLC)】

writeSpace(38); \—-【客户端 N RTSP Client(例如VLC)】

方案的实现流程,用伪代码来说明:
0. 调用live555中已有的类创建Darwin i[......]

阅读全文

为Darwin Streaming Server扩展TS文件格式支持

众所周知,达尔文只支持mp4,3gp,mov等有限几种格式,连国内使用非常广泛的TS文件格式都不支持,实在是一种缺憾。
我跟列位一样,最近一年以来都有心想扩展ts格式,但一直畏惧自己才疏学浅,在鼎鼎大名的达尔文身上动刀子,有种自不量力之感!
网上看过最有用的一篇文章是这位仁兄的:
http://blog.sina.com.cn/s/blog_6a4c492f0100pffv.html

这篇文章很有用,但我发现最有用的还是Darwin Streaming Server源码中的子模块QTSSRTPFileModule,最具有参考意义:DarwinStreamingSrvr6.0.3-Source\APIMod[......]

阅读全文

linux系统日常经验总结

sed文本替换
替换PJ_DEF(.*)为.*
find pjproject-2.7.2 -name “audiodev.c” \( -exec sed ‘s/PJ_DEF[(]\(.*\)[)]/\1/g’ {} > tmp.c \; -o -exec mv -vf tmp.c {} \; \)

https://blog.csdn.net/ljp1919/article/details/53337670

STL相关的一些文章:
map vs multimap

http://blog.csdn.net/pathuang68/article/details/4248013

set

http[......]

阅读全文

转:从100PV到1亿级PV网站架构演变

原文链接 http://www.yejun.cn/?p=1154
发表于 2013年03月30日 由 yejun

一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。

1:积累是必不可少的

架构师不是一天练成的。

1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTML中,再用FTP传到服务器上就可以给别人展示一个网站。
2000年,个人主[......]

阅读全文

SELinux与apache共存且开放apache目录读写权限

实现细节见一下脚本的注释,在CentOS 5,CentOS 6环境下测试通过。
1. 安装SELinux的python管理包
yum -y install policycoreutils-python
2. 为apache设置保护策略
echo “set selinux option for httpd…”
/usr/sbin/semanage permissive -a httpd_t
3. 增加目录的读写权限,您可根据您的apache的配置目录和需要更改目录
#semanage fcontext -d
echo “semanage fcontext -a -t public_c[......]

阅读全文

百度索引量 一个“乱”字了得!

对于百度,很多人形容其为百毒。其祸首当然为百度竞价排名引起的。观察我的网站mworkbox.com的百度索引量已经几个月时间了,从3月份到了5月份。我的博客文章篇数已经从40多到了60篇。但百度索引量是在30至60间乱窜,我的网站是不变应万变。百度索引量数据为何乱窜?百度为何自乱阵脚?不得而知,更令人莫名的是,我的访问量已达5000多的链接【三棵杏流水账&备忘精灵软件下载】,居然百度搜不到。令人不禁怀疑又是竞价排名惹的祸,估计大概我的软件被广告主投诉了吧!还好,另外三个搜索引擎谷歌,搜狗和360的收录情况还不错。不过360的搜索也不怎么公正,有人工干预搜索结果的嫌疑。

MP4Box hint mp4容错性优于mp4creator及CentOS linux下编译gpac

众所周知,Apple的Darwin Streaming Server流媒体服务器,只能播放hint后的mp4文件,因此离不开hint工具。能用于hint的工具包括:MP4Box和mp4creator
MP4Box语法:
MP4Box -hint xxx.mp4

mp4creator语法:
mp4creator -hint=1 xxx.mp4
mp4creator -hint=2 xxx.mp4

最近在做流媒体服务器,通过实践,发现mp4creator对很多mp4文件无能为力,报错:
MP4ERROR: MP4Array::[]: index xxx of xx: Numerical result[......]

阅读全文

apache增加sudo权限,允许在cgi中调用system执行命令

对于apache,由于其执行权限一般为apache:apache,用户和组都是apache, apache用户的特点是无密码,不能登录,无环境变量等。
这些特点决定了在cgi中只能借用sudo来实现”允许在cgi中调用system执行命令”的特性。查遍了n篇文章,得到如下总结:

1. 为sudoer文件开启w权限
chmod u+w /etc/sudoers

2. 执行visudo命令, 给apache用户分配sudo权限
visudo

a. 注释掉1行:
#Defaults requiretty
b. 增加2行:
Defaults visiblepw
apache ALL=(ALL[......]

阅读全文

MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项

MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略。笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题。

(一)首先,从原理上了解一下这2种格式的区别:
AVC1 描述:H.264 bitstream without start codes.一般通过ffmpeg转码生成的视频,是不带起始码0×00000001的。
H264 描述:H.264 bitstream with start codes.一般对于一下HDVD等电影的压制格式,是带有起始码0×00000001的。
来源文档:http://msdn.micros[......]

阅读全文

一个简单的治疗看新闻网页网瘾的方法

由于平时工作不是特别忙,养成了经常没事看新闻网页的习惯,网瘾很大!看完凤凰网,再看早报网;看完chinauinx,再看csdn和cnbeta.com。这种习惯很不好,既影响工作效率,又致使眼睛疲劳。有什么办法纠正这种习惯呢?
其实非常简单。只要保证您常看的网站打不开就行了。奥秘就在C:\Windows\System32\drivers\etc\hosts配置文件!
用文本编辑器打开文件C:\Windows\System32\drivers\etc\hosts,只要把你常看的网站域名添加类似记录到该文件保存文件即可。以下是我添加的例子,把域名都解析为本地回环IP 127.0.0.1:
127.0.0.1 w[......]

阅读全文