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

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了。但是这个我没有实验成功。目前还不清楚问题出在哪里。

参考链接:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于redis 内存数据库简单使用

在ecplise中使用内存数据的客端户,前提要准备要下载两个jar包 commons-pool2-2.0.jar jedis-2.4.2.jar 前提准备做好了,那我们就开启redis的服务,打开一个命令窗体输入例如以下命令:redis-server 或redis-server redis根目\redis.conf se…

李连杰年度巨作霍元甲主题曲:周杰伦唱

年末最受人期待的影片《霍元甲》即将全球公映了,视李连杰为偶像的周杰伦将全权负责影片主题曲的创作。而在1月10日,这首电影同名新作已经通过全亚洲50家电台同众多歌迷和影迷见面了。 按周董的话说,这首歌就是在《双截棍》和《龙拳》的基础上…

linux扩大 boot分区大小,Ubuntu扩大boot空间

Ubuntu安装时按一般情况,BOOT分配了100MB,不久升级就显示空间不足。 刚开始还能删除旧的内核解决问题,后来删了旧内核也不够。决定扩大一下BOOT分区大小。 用GParted工具发现,不好扩大,后面没有空间,想缩小…

[Noi2014]随机数生成器

来自FallDream 的博客&#xff0c;未经允许&#xff0c;请勿转载&#xff0c; 谢谢。 n,m<5000 前面生成的一堆数列 意义不明 实际上就是给你一个矩阵求排序后字典序最小的路径序列 发现(1,1)->(n,m)在选了(x,y)之后就变成了选(1,1)->(x,y)和(x,y)->(n,m) 所以直接…

Inherts

在http://mqingqing123.cnblogs.com/archive/2006/01/14/317162.html里&#xff0c;我介绍了CodeFile来取代Codebehind&#xff0c;可能你会感觉疑惑&#xff1a;ASP.NET工作组花费了很大的时间建立了与.NET1.1不同的后台文件模型&#xff0c;为什么没有更改.NET1.1的Inherits呢…

通孔的作用是什么linux,电路板空洞的作用是什么 如何区分PTH与NPTH两种通孔

如果你有机会拿起一片电路板&#xff0c;稍微观察一下会发现这电路板上有着许多大大小小的孔洞&#xff0c;把它拿起来对着天花板上的电灯看&#xff0c;还会发现许多密密麻麻的小孔&#xff0c;这些孔洞可不是放在哪里摆好看的&#xff0c;每个孔洞都是有其目的而被设计出来的…

Django Step by Step中文版,推荐一下

Diango是Python的一个快速Web开发框架&#xff0c;称为Python的ROR&#xff0c;在limodou的Blog里已经推荐了很久&#xff0c;元旦前后也学习了一下&#xff0c;最近很懒&#xff0c;什么都没有干。文档地址&#xff1a;http://www.woodpecker.org.cn/obp/django/django-stepby…

UVa 11324 最大团(强连通分量缩点)

https://vjudge.net/problem/UVA-11324 题意&#xff1a;给一张有向图G&#xff0c;求一个结点数最大的结点集&#xff0c;使得该结点集中任意两个结点u和v满足&#xff0c;要么u可以到达v&#xff0c;要么v可以达到u。 思路&#xff1a; 找到SCC后进行缩点建图&#xff0c;每个…

关于mysql修改密码 set password for root@localhost = password(‘xxx‘);报错解决方法

mysql> SET PASSWORD FOR rootlocalhost PASSWORD(123456); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near PASSWORD(123456) at line 1 通过下面的命令…

佳能Linux230快门速度怎么调,80d快门速度怎么调

80d快门速度怎么调导语&#xff1a;佳能80d作为70d的升级版机型改变不是很大&#xff0c;但是也有一些很好的升级。很多朋友都已经入手了这款单反&#xff0c;一些入门的朋友可能对这款单反的操作不太明白。拿到相机之后拍出来的照片并不理想&#xff0c;本文就这款相机做点简单…

身份证照片比对,身份鉴别,人脸实名

详情链接&#xff1a;http://www.haoservice.com/docs/110 基于国家人口库,通过面部识别相关技术鉴证识别用户真实身份,人脸实名 支持格式&#xff1a; JSON/XML请求方式&#xff1a; POST接口备注&#xff1a; 测试表单&#xff1a;<form name"input" action&quo…

ie 7 beta 2出来了

下载地址&#xff1a;http://www.microsoft.com/windows/IE/ie7/ie7betaredirect.mspx

c语言编写源程序内容,编程(C语言源程序代码)讲述.doc

已知 S11/(12)1/(123)…1/(123…N) &#xff0c;当N的值为50时&#xff0c;求S的值。要求&#xff1a;按四舍五入的方式精确到小数点后第四位。#include #includemain(){float s0.0;int n,t0;for(n1;n<50;n){ttn;ss1.0/t;}printf("%7.4f",s);}1.9608把一张一元钞票…

【BootStrap】 概述 CSS

BootStrap BootStrap由Twitter开发&#xff0c;基于HTML,CSS,JS&#xff0c;是一套前端框架。它的特点是对浏览器良好的支持&#xff08;目前市面上所有流行浏览器都可以&#xff09;&#xff0c;兼容移动设备&#xff0c;以及响应式设计&#xff08;响应式CSS自适应于各种设备…

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains解决

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column btc.a.applicant_unit which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by 执行下如下语句&…

祝贺您

如果您阅读到这篇文章&#xff0c;这就意味着您注册的博客已经申请成功。转载于:https://blog.51cto.com/11067/2441

SQL server中DateTime类型字段如何赋值零?

.net 1.1 不支持Sql Server datetime字段为空的情况.net 2.0 开始支持Sql Server datetime字段为空在不支持datetime为空的情况下&#xff0c;Sql Server数据库一般是选择一个特定的日期代表空值&#xff0c;默认的情况下&#xff0c;是1900-1-1

Java DO到DTO转换利用spring 的BeanUtils.copyProperties

Java DO到DTO转换利用spring 的BeanUtils.copyProperties() public static <T> List<T> copy(Object sourceList, Class<?> beanClass) throws Exception {List<Object> sList (List<Object>) sourceList;List<Object> tList new Arra…