vlc 由videolan.org 出品,开源免费的一款本地和网络播放器,支持个音视频格式非常多,还可以用来搭建 rtsp 流媒体服务器,非常好用,支持的平台很多:windows、mac、linux都可以用,可以做点播、多播(组播)、单播服务器。通过命令设定引用文件后就可以通过rtsp协议访问这些音视频。我用的centos6.5,搭建 rtsp 流媒体服务器的时候遇到诸多问题,现在记录下来以方便其它同学少走弯路。

1.安装vlc

cd /etc/yum.repos.d/

wget http://pkgrepo.linuxtech.net/el6/release/linuxtech.repo //我试了3次才下载下来

yum list *vlc*

yum -y install vlc

我这里需要149个依赖项,共150个安装包,100多兆,可能需要下载一会,每人可能不同。

2.验证vlc是否安装成功

直接敲vlc,会提示

VLC is not supposed to be run as root. Sorry.

If you need to use real-time priorities and/or privileged TCP ports

you can use vlc-wrapper (make sure it is Set-UID root and

cannot be run by non-trusted users first).

不支持root用户运行,用useradd vlcuser添加了一个名为vlcuser的用户,然后su vlcuser,再次运行vlc,成功看到版本和其它很多信息。验证成功。

useradd vlcuser

su vlcuser

vlc

3.防火墙放行几个后面要用到的端口

iptables -I INPUT -p TCP --dport 4212 -j ACCEPT

iptables -I INPUT -p TCP --dport 5554 -j ACCEPT

iptables -I INPUT -p TCP --dport 1234 -j ACCEPT

其中4212是telnet端口,配置操作vlc搭建的rtsp流媒体服务器,都需要telnet上去之后进行,我这里是为了演示,生产当中大家要主意安全限定规则或者不开该端口使用本地telnet登陆。5554是rtsp协议使用的端口,可以设置和修改,这点相对上篇文章live555 media server rtsp 流媒体服务器搭建成功经验分享来说要好很多。1234端口是组播端口,也是可以自己随意设置的。

4.开启vlc rtsp流媒体服务

vlc --ttl 12 -vvv --color -I telnet --telnet-password videolan --rtsp-host 0.0.0.0 --rtsp-port 5554

看到大量信息,然后中断了,仔细排查发现如下错误提示:

process 91744: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open “/var/lib/dbus/machine-id”: No such file or directory

See the manual page for dbus-uuidgen to correct this issue.

D-Bus not built with -rdynamic so unable to print a backtrace

Aborted

上网查了之后,执行如下命令,问题解决,再次运行开启vlc rtsp流媒体服务的命令,服务成功启动

su root

dbus-uuidgen > /var/lib/dbus/machine-id

su vlc

vlc --ttl 12 -vvv --color -I telnet --telnet-password videolan --rtsp-host 0.0.0.0 --rtsp-port 5554

注意上面的ip地址0.0.0.0要替换成你自己的ip,按理说0.0.0.0代表监听本地任何ip,这样你改了ip还是能用,但我实际测试发现点播不了。而且,端口要用–rtsp-port指定,用0.0.0.0:5554的方式会有错误提示,实际监听到554的端口去了,然后554端口被live555mediaserver占用,关掉live555mediaserver才正常。后面telnet上去配置vod服务的时候会在vlc rtsp 流媒体服务器的状态中看到如下信息:

main vod server error: Ignoring port 5554 (using 554)

main vod server: Specify port 5554 separately with the rtsp-port option instead.

main vod server debug: net: listening to 0.0.0.0 port 554

main vod server error: socket bind error (Permission denied)

main vod server error: cannot create socket(s) for HTTP host

看到这句 [telnet] main interface debug: net: listening to localhost port 4212 说明telnet监听正常。

当然可能还会看到一些错误,但是暂时不影响服务的正常使用,可以忽略:

inhibit interface error: Failed to connect to the D-Bus session daemon: /bin/dbus-launch terminated abnormally without any error message

main interface error: no suitable interface module

main interface error: no suitable interface module

main libvlc error: interface “globalhotkeys,none” initialization failed

还有一些警告,应该也不影响:

stream warning: unknown box type btrt (incompletely loaded)

demux warning: CTTS table

5.进入telnet添加点播项目,先安装telnet客户端

yum -y install telnet

telnet 127.0.0.1 4212

输入前面设定的密码:videolan,就进入vlc rtsp 流媒体服务器配置的telnet操作界面了。

a 架设点播服务vod

new vod1 vod enabled

setup vod1 input /home/01.avi

解释: new 新建了一个名字叫vod1的vod点播服务,设置vod1的input 输入文件为/home/01.avi。你可以通过这种方式添加很多个点播服务。

b 架设组播服务ch1

new ch1 broadcast enabled

setup ch1 input /home/02.avi loop

setup ch1 output #duplicate{dst=rtp{dst=0.0.0.0,mux=ts,port=1234}}

control ch1 play

上面的0.0.0.0换成你自己的组播服务器ip地址。解释下:new 新建了一个名字叫ch1的broadcast组播。设置ch1的input输入文件为/home/02.avi,loop可选,表示循环播放。设置ch1的output输出为#duplicate{dst=rtp{dst=0.0.0.0,mux=ts,port=1234}},表示rtp协议的ts流发送到组播地址为0.0.0.0,端口1234。控制ch1开始播放。

扩充:

1) output后面可以跟sout参数。具体可以参考vlc->媒体->流->流输出界面的已生成的流输出字符串。

2) control ch1后面还可以加stop,pause,seek 百分比。表示停止,暂停和跳转到百分之几的位置。

c 架设单播服务

前面组播命令中output换成单播的地址就行了。其他的都一样的。注意不要new重名了。

可能会看到这些警告和错误:

demux warning: track[0x2] will be disabled (eof?)

stream_out_rtp vod server error: cannot add this stream (unsupported codec: RV40)

这表明你的视频格式vlc不支持,比如这个rv40就是rmvb格式的视频所用的编码,vlc不支持,这种情况就会出现该视频通过rtsp播放画面是黑的,但是有声音,因为声音使用的vlc支持的某种格式。同理,如果有画面,没有声音,说明你的视频使用的视频编码格式受到vlc的支持,而音频编码格式不受vlc支持。需要你去手动转码或者采用别的处理方式。

d 保存以上配置,下次重启可以直接加载,不需要全部重新输入一遍,试想你提供了100个点播和组播服务,每次都手动输入。。。

save /home/vlc.vod.cfg

load /home/vlc.vod.cfg

实际我测试这个没成功,报错:save : Unable to save to file

6.测试vlc rtsp流媒体服务器

在另一台电脑开启一个vlc,打开rtsp://127.0.0.1:5554/vod1。应该就可以以rtsp协议串流的方式播放/home/01.avi这个文件了。127.0.0.1可以换成自己的ip。

打开rtp://127.0.0.1:1234。应该就可以以直播的方式观看/home/02.avi了。但是这个我没有实验成功。目前还不清楚问题出在哪里。

参考链接:

linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享相关推荐

  1. 流媒体服务器NTV Media Server G3性能测试

    大家好,我是资深测试工程师李工,今天我来和大家一起对云视睿博的高性能流媒体服务器NTV Media Server G3做一次性能测试. 今天测试有一个小目标,那就是验证在一台普通的PC机上,NTV M ...

  2. 微软流媒体服务器直播,流媒体服务器Flussonic Media Server对直播流进行录制

    Flussonic Media Server可以对直播流进行录制,然后在提供播放服务. 我们首先来看如何为直播流配置录制功能,如下: stream channel0 { url tshttp://vl ...

  3. 流媒体服务器 NTV Media Server G3 电视回看功能赏析

    电视回看是NTV Media Server G3的一个有趣的功能,主要用于电视直播.监控直播类视频流的回看. 像电视频道这类直播流具有长时间不间断直播的特征,不能像处理普通直播流一样按版本号或者按事件 ...

  4. java代码去连接flash media server服务器_flash media server 第一课:Hello world!

    client-server架构 FMS是基于RTMP协议的client-server架构. 客户端的应用由flash或是flex搭建,运行在flash player或是AIR上,服务器端运行在服务器上 ...

  5. 微软文件共享服务器进程,Windows Server“8”– 将服务器应用程序存储转移到 Windows 文件共享...

    Windows Server"8"– 将服务器应用程序存储转移到 Windows 文件共享 07/10/2012 30 分钟可看完 本文内容 在开发 Windows Server& ...

  6. 小型邮件服务器,windows 2003 server小型邮件服务器架设

    一.安装pop3和smtp服务组件: 1.安装pop3服务组件:以系统管理员身份登录windows 2003 server系统,依次进入"控制面 板--添加或删除程序--添加/删除windo ...

  7. Linux服务器带宽占用高导致无法登录的处理经验分享

    Linux服务器带宽占用高的情况时有发生,许多情况我们可以通过查看后台运行指令和IP来源来简化处理.处理经验分享供大家参考! 使用 VNC 方式登录实例,针对云服务器进行排障及问题处理:(操作以 Ce ...

  8. sql server如何修改服务器名称,SQL Server 2014改服务器名称为(local)的方法

    类型:数据库类大小:40.7M语言:中文 评分:6.6 标签: 立即下载 微软SQL Server 2014三大新特性:集成内存OLTP.BI和混合云搭建!SQL Server 2014带来一套功能强 ...

  9. sql远程mysql服务器查询_sql server 使用链接服务器远程查询

    --PK select * from sys.key_constraints where object_id = OBJECT_ID('TB') --FK select * from sys.fore ...

最新文章

  1. Centos7 下 配置 rsync 以及 rsync+inotify 实时同步
  2. 1.5亿美元!英国AI芯片创企今宣布获新融资,估值近20亿美元
  3. 利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖
  4. Linux 3D 编程学习总结
  5. JSP完全自学手册图文教程
  6. 关于Mybatis的各种配置文件
  7. C Runtime Library 的来历
  8. 编写Dockerfile增强centos镜像:安装vim 和net-tools
  9. Mysql 5.7 json
  10. Esxi直通板载Sata
  11. 个人猜测一下《黑神话:悟空》的部分剧情
  12. 更改盘符实现文件服务器的特使需求
  13. JAVA语法基础作业——动手动脑以及课后实验性问题(一)
  14. android切图倍数,【Flutter工具】fmaker:自动生成倍率切图/自动更换App图标
  15. axivion和astree_基于LabVIEW的IVI编程 IVI Programme Based on LabVIEW.pdf
  16. 红旗Linux中文教程
  17. 用flex做的3D坦克游戏
  18. 计算机相关期刊阅读,计算机领域的所有SCI一区期刊,这是最顶级期刊了.doc
  19. 【Leetcode】Customers Who Never Order
  20. 使用普通打印机打印条码标签

热门文章

  1. Windows Server 2012 在个人终端上使用的推荐设置
  2. SQL SERVER 中identity
  3. 【转】_declspec(naked) 使用
  4. 嵌入式linux字符设备驱动
  5. ubuntu中make头文件找不到_和平精英:游戏中找不到人怎么办?这些技巧帮你练出“火眼金睛”...
  6. C++ STL的查找算法
  7. chrome网页自动化插件_chrome网页注释插件
  8. 网页制作代码模板_科普:关于网页设计的4个基础小知识
  9. 高级计算机网络的基本知识
  10. TCP 之 RST 原因分析