vlc的应用之七:用vlc做单播,组播及点播服务器

2009-05-31 15:56:03

标签:vod multicast vlc vlm unicast
 
http://ubuntu.mezoka.com/file/
 
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeremiah.blog.51cto.com/539865/161876
    还是前两天帮“猪小妹”考虑毕业设计的时候,想了想vlc能不能作为vod的服务器,替代上一篇博客里面的live555 media server,因为live555 media server做的确实不是太好。查了些资料,在vlc群里面乱问了一通,终于解决了。好东西啊,大家共享。
    在这感谢vlc研究群“樱木”童鞋提供的帮助。
 
    1. 所需软件
    vlc-0.9.9或vlc-0.8.6i,主要测试的是比较新的0.9.9版本的。
    putty:一款集telnet,ssh远端登陆的非常好的软件。下载地址:http://wrc.gro.clinux.org/putty/putty.exe
 
    2. 命令行启动vlc,并打开后台信息显示,有助于观察后台信息
    开启cmd,并cd到vlc的目录,执行
vlc -vv --extraintf=logger
 
    3. 开启vlc的telnet服务
    vlc-0.9.9在界面上选择工具->界面->telnet控制台
    后台dos窗口会有反应,显示
[00000403] main interface debug: looking for interface module: 1 candidate 
[00000403] main interface debug: creating VLM 
[00000405] main vlm daemon debug: thread 5112 (vlm thread) created at priority 0 
(../../src/input/vlm.c:112) 
[00000405] main vlm daemon debug: thread started 
[00000403] telnet interface: using the VLM interface plugin... 
[00000403] main interface debug: net: listening to 127.0.0.1 port 4212 
[00000403] telnet interface: telnet interface started on interface 127.0.0.1 421 

[00000403] main interface debug: using interface module "telnet" 
[00000403] main interface debug: TIMER module_Need() : 19.000 ms - Total 19.000 
ms / 1 intvls (Avg 19.000 ms) 
[00000403] main interface debug: thread 5136 (interface) created at priority 0 ( 
../../src/interface/interface.c:168) 
[00000403] main interface debug: thread started
    注意观察main interface debug: net: listening to 127.0.0.1 port 4212这句话,说明vlc现在的telnet监听的是127.0.0.1这个地址和4212这个端口。如果没有显示ip的话,一般用127.0.0.1是没有问题的。127.0.0.1就表示的本机,与localhost是同一个意义。
 
    4. 启动putty.exe
    主机名称(或ip)输入:127.0.0.1
    端口:4212
    连接类型:选Telnet
    点打开。
    如果没有出现"Password:"字样,点打开就关闭了,那就说明没有telnet上。(这个时候可以在cmd里面输入telnet 127.0.0.1 4212,看结果应该是正在连接到127.0.0.1...不能打开到主机的连接, 在端口 4212: 连接失败,或者是与主机失去连接。不用cmd的telnet连接的主要原因是过会输入命令的时候看不到。)这个时候,请关闭防火墙,杀毒软件及一切相关软件,不过中毒了别找我哎。(*^__^*) 嘻嘻……继续继续。
    如果没有出现以上问题,在Password:后面输入"admin",没有明文回显。登录成功后会显示:Welcome, Master。
 
    5. 架设点播服务vod
    分别输入:
new vod1 vod enabled 
setup vod1 input d:/01.avi

解释下:
    new了一个名字叫vod1的vod,设置vod1的input为d:/01.avi。

    验证:开启另一个vlc,打开rtsp://127.0.0.1/vod1。应该就可以播放了。127.0.0.1可以换成自己的ip。
 
    6. 架设组播服务器
    继续输入:
new ch1 broadcast enabled 
setup ch1 input d:/02.avi [loop] 
setup ch1 output #duplicate{dst=rtp{dst=226.0.0.6,mux=ts,port=1234}} 
control ch1 play
    解释下:
    new了一个名字叫ch1的broadcast。设置ch1的input为d:/02.avi,loop可选,表示循环播放。设置ch1的output为#duplicate{dst=rtp{dst=226.0.0.6,mux=ts,port=1234}},表示rtp协议的ts流发送到组播地址为226.0.0.6,端口1234。控制ch1播放。
    扩充:
    1) output后面可以跟sout参数。具体可以参考vlc->媒体->流->流输出界面的已生成的流输出字符串。
    2) control ch1后面还可以加stop,pause,seek 百分比。表示停止,暂停和跳转到百分之几的位置。
    验证:开启一个vlc,打开rtp://226.0.0.6:1234。应该就可以播放了。
 
    7. 架设单播服务器
    第6步里面的output换成单播的地址就行了。其他的都一样的。注意不要new重名了。
 
    8. 保存刚才操作
    继续输入
save d:/01.cfg
    将刚才操作保存到了d:/01.cfg里面,除了control。可以通过记事本等文本编辑器查看一下里面的内容。
    如果重新开启了vlc,则可以输入
load d:/01.cfg
    将刚才保存的操作读入进来,继续操作或控制。
         
    通过这样的配置,一个vlc的实例可以提供多个服务,包括单播,组播和点播。确实强大啊。
    这样上一篇博客的流媒体服务器可以替换为vlc了。跟上一篇日志结合作个简单的流媒体服务的网站或者类似于pplive的客户端,就不是太有技术难度的事情了。

vlc的应用之七:用vlc做单播,组播及点播服务器【转】的更多相关文章

  1. Cocos Creator采坑:原来使用Cocos Creator做游戏,是有服务器!!!

    我傻傻的以为,我们没有服务器. 今天上传测试代码,测试才发现! 原来我们真的是有服务器的!只不过是一个本地的服务器~!需要服务器打开,然后,扫码才能访问!! 为了证明我们是有服务器的,我做了一下测试 ...

  2. 利用varnish做Discuz论坛的缓存服务器

    实验背景:公司有一台BBS服务器,用的是LNMP的架构搭建的.正好手头有一台空闲的虚拟机,于是想着给BBS前端加一台缓存服务器.于是选定了varnish,搜了很多教程,跌跌撞撞的完成了配置.这其中很多 ...

  3. 域名做CDN来通过隐藏服务器真实IP的方法来防止DDoS攻击(转)

    隐藏服务器真实IP是解决问题最好和最快的方法,但只针对小流量,大流量同样会扛不住. 服务器前端加CDN中转,比如阿里云.百度云加速.360网站卫士.加速乐.安全宝等,如果资金充裕的话,可以购买高防的盾 ...

  4. 【玩转SpringBoot】翻身做主人,一统web服务器

    寄人篱下的日子 一直以来受传统影响,我们的web工程总是打成war包,然后放入tomcat的webapps目录下面. 如下图01: 当tomcat启动时,会去解压war包,然后运行web工程.这大家都 ...

  5. 怎么对ZYNQ的FCLK做时钟组约束

    前言 对于包含PS和PL的设计,两者的数据交互PL必然会用到PS端的时钟. 对于FCLK(PS端时钟输入到PL端)的约束,此时钟的基础约束已在IP中产生.以下想约束其异步时钟的时钟组特性. 注意事项: ...

  6. 齐博x1标签实例:做模板组图单图无图混排的处理

    代码如下, {qb:tag name="xxx" type="cms" rows="10"} {if ( count($rs['picurl ...

  7. 使用VLC Activex插件做网页版视频播放器

    网上找的一个小例子,包括时长播放时间等等都有. mrl可以设置本地文件,这样发布网站后只能播放本地有的文件, 如果视频文件全在服务器上,其他电脑想看的话,则可以IIS上发布个视频文件服务器,类似htt ...

  8. VLC说明

    一.简介 vlc的全名是Video Lan Client,是一个开源的.跨平台的视频播放器.VLC支持大量的音视频传输.封装和编码格式,完整的功能特性列表可以在这里获得http://www.video ...

  9. VLC客户端和SDK的简单应用

    VLC_SDK编程指南 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.它可以支持目前市面上大多数的视频解码,除了Rea ...

随机推荐

  1. SMACH(五)----用户数据UserData类和重映射Remapper类的原理和例子

    用户数据UserData类和重映射Remapper类包含在smach中的user_data.py文件中实现,该博文主要介绍其原理和例子 UserData主要用于状态之间的数据传递,包括数据的输入inp ...

  2. Git_删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...

  3. 开发npm模块经验总结

    1.在windows下开发的package.json的bin链接的全局命令可能会在linux下报错:“没有那个文件或目录”之类的错误...此时可以在linux下用vim打开bin链接的js文件,设置s ...

  4. [Dynamic Language] Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录

    Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录 源码安装时报错 File "/home/abeenser ...

  5. The YubiKey -- HOW IT WORKS

    A single YubiKey has multiple functions for protecting access to your email, your apps and your phys ...

  6. Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为?

    4.2 在代码中直接调用Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为? Class.forName(String name)默认会使用调用类的类加载器 ...

  7. Selenium2+python自动化59-数据驱动(ddt)

    前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...

  8. Maven实战(四)——基于Maven的持续集成实践

    Martin的<持续集成> 相信非常多读者和我一样.最早接触到持续集成的概念是来自Martin的著名文章<持续集成>.该文最早公布于2000年9月,之后在2006年进行了一次修 ...

  9. 转: LDAP有啥子用? 用户认证

    认证的烦恼 小明的公司有很多IT系统, 比如邮箱.SVN.Jenkins , JIRA,VPN, WIFI...... 等等 . 新人入职时需要在每个系统中申请一遍账号,每个系统对用户名和密码的要求还 ...

  10. 怎样在centos安装python-mysql?

    在python中使用mysql,须要安装mysql-python依赖包, 能够通过pip来安装: pip install MySQL-python 假设错误发生,须要先安装一个开发包: yum ins ...