Linux 下搭建流媒体服务器

Linux 下搭建流媒体服务器

http://blog.csdn.net/huangtaishuai/article/details/9836581

 ——————————————————————————————

 

VLC 流媒体服务器小试成功

1. 打开命令行服务,坚挺5554媒体端口

vlc.exe -I telnet –control telnet –telnet-password q7fmZ9s –rtsp-host 0.0.0.0:5554
2. 使用putty连接VLC命令行接口
telnet localhost 4212 using the password q7fmZ9s
3. 在vlc命令行接口中新增一个条目
new a_walk_to_remember vod enabled input D:\TDDOWNLOAD\1.avi
4. 在客户中的vlc中- 打开网络媒体- 输入下面的东东就可以观看大片啦
rtsp://192.168.50.23:5554/a_walk_to_remember

 

——————————————————————————————

Ubuntu 下 vlc 做流媒体服务器  

 

 
主要安装步骤如下:

1、安装Ubuntu;

2、去掉Ubuntu的防火墙,当然也可以自己配置防火墙,允许4212端口和5554端口;

3、安装VLC服务器,这个见上面的博客文章;

然后配置VLC服务器,配置步骤如下:

1、在控制终端中运行

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

2、通过telnet hostip 4212登录到vlc的VLM界面,那个password 就是videolan;

3、在vlm界面上运行

new Test vod enabled

setup Test input my_video.mpg

4、在客户端键入命令:

vlc rtsp://server:5554/Test

就可以看到节目了。

 

——————————————————————————————

 

 

本文说明如何在 CentOS 6 服务器(无图形界面)搭建以 VLC 为核心的直播流媒体服务器。

第一步,安装第三方 yum 源。因为官方 yum 源中是不包含 VLC 安装包的,为了不用考虑安装包之间的依赖关系,使用第三方yum源的 yum 安装方式,能极大地简化 vlc 的安装过程,将主要精力集中到如何使用 VLC 功能来搭建流媒体服务器。
(如果不想使用 yum 安装的,请自行登录 vlc 的官方网站,下载二进制安装包或者源代码参考官方文档进行安装,这里就不复述了。)

1、下载 RPMForge 知名第三方源的 rpm 安装包(64位系统请下载 rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm)

  1. wget packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

2、导入 GPG key

  1. rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt

3、安装 rpm 安装包

  1. rpm -i rpmforge-release-0.5.2-2.el6.rf.i686.rpm

4、更新安装源

  1. yum check-update

5、安装 vlc

  1. yum install vlc

更多详细资料,请移步:http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

第二步,使用 VLC 功能搭建直播流媒体服务器。(点播没有什么好谈的,搭建一个 http 服务器即可,和 VLC 没有什么太大关系,只是可以把媒体文件先用 vlc 转码成流媒体格式后,再放在 http 服务器中)

【UDP方式】
语法:
vlc input_stream –sout ‘#std{access=udp{ttl=1},mux=ts,dst=dest_ip:dest_port}’
举例:(假设在服务器目录中有媒体文件 pikesi.mkv,播放客户端的 IP 为 192.168.1.77)

  1. vlc -I “dummy” -L –no-inhibit pikesi.mkv –sout ‘#std{access=udp{ttl=1},mux=ts,dst=192.168.1.77:1234}’

说明:
在 IP 为 192.168.1.77 的客户端打开 vlc 播放器,选择“打开网络串流”,输入 URL,udp://@:1234/ 即可播放。
-I “dummy” 表示不使用任何本地播放或控制接口,因为没有图形界面本地无法播放。
-L 表示循环,当媒体文件播放完后,循环重新播放。
–no-inhibit 表示禁用电源控制。此为桌面环境功能,默认打开,如果不强制关闭,会导致与 D-Bus 通讯失败,vlc 无法启动。
UDP推流的方式,只能用单播或者组播的方式往指定地址推送流,不用客户端请求。(HTTP方式会监听用户请求,根据请求的用户点对点推流)

【HTTP方式】
语法:

vlc input_stream –sout ‘#http{mux=ts,dst=:listen_port}’
  或者
vlc input_stream –sout ‘#std{access=http{user=username,pwd=password},mux=ts,dst=:listen_port}’
举例:

  1. vlc -I “dummy” -L –no-inhibit pikesi.mkv –sout ‘#std{access=http{user=k3,pwd=k3},mux=ts,dst=:6000/live.ts}’

说明:(假设服务器IP地址为 192.168.1.6 )
客户端播放器打开 URL,http://k3:k3@192.168.1.6:6000/live.ts,即可播放。
如果服务器启动代码中去掉 {user=k3,pwd=k3},即客户端播放时不需要 HTTP 认证。

【转码】
媒体文件可能本身不是流媒体格式,这个时候需要转码再串流。举例:

  1. vlc -I “dummy” -L –no-inhibit pikesi.mkv –sout ‘#transcode{vcodec=h264,vb=800,fps=50,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:std{access=http,mux=ts,dst=:6000}’

在实际测试中发现一个问题,在 Linux 下对 rmvb 转码会没有声音(Windwos 下正常)。可能是 Linux 版本的 VLC 不能对 realplay cook audio 格式解码的原因(有时间可以安装一个桌面的 Linux 环境进行验证,据说需要在编译 FFMpeg 时打开某些功能选项)。

 

【UDP流输入的HTTP串流】
输入流不一定非要是文件,也可以是网络流,比如前面的UDP流。
比如,首先往本地端口 1234 推送 UDP 流:

  1. vlc pikesi.mkv -I “dummy” -L –no-inhibit –sout ‘#std{access=udp{ttl=1},mux=ts,dst=localhost:1234}’

然后,将 input_stream 改为网络地址,进行 http 串流:

  1. vlc -I “dummy” –no-inhibit udp://@:1234 –sout ‘#std{access=http,mux=ts,dst=localhost:6000}’

最后,客户端参考“HTTP方式”播放流媒体。

====================================

注意事项:
1、注意防火墙放行相应端口。
2、不要重用端口。每个 http 方式的串流都必须使用一个独立的端口。
3、vlc 不能用 root 用户运行,如果设置开机自启动,可以在配置文件使用这种方式:(假设有用户名 sowell)
    su sowell -c “vlc … &”

转载于:https://www.cnblogs.com/fx2008/p/4315416.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109534.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机怎么模拟125k卡_手把手教你用手机NFC秒变门禁卡,这个方法多种手机都可以适用…

    手机怎么模拟125k卡_手把手教你用手机NFC秒变门禁卡,这个方法多种手机都可以适用…现在只要手机支持NFC功能,手机秒变公交卡、移动支付、数据传输、门禁卡等功能,之前在评论看多好多人说不知道怎么复制门禁卡,今天就来和大家讲解下如何复制门禁卡。我们以华为手机,前提是手机支持NFC功能的。第一步:门禁卡功能在钱包里面,所以首先找到华为钱包并打开,登录你的华为账号,在主页找到【门钥匙】。第二步:点击进入【门钥匙】后,点击【添加】,开始【模拟】门卡第三步:根据提示,将门卡放到手机背面NF…

    2022年5月24日
    413
  • Java Integer类型比较问题

    Java Integer类型比较问题JavaInteger类型比较问题【强制】所有整型包装类对象之间值的比较,全部使用equals方法比较。说明:对于Integervar=?在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。—-阿里巴巴Java开发手册抱着探索的精神我们来看

    2022年7月16日
    21
  • 《前端运维》二、Nginx–2请求处理流程及核心模块

    前一篇内容,我们学习了nginx的一些基本概念、安装和目录的作用。这篇文章我们来学习一些更加深入的内容。一、Nginx请求处理流程我们先来看张图吧:我们看上图,首先客户端请求到Nginx服务器,

    2022年3月25日
    118
  • 优化算法学习(LM算法)

    优化算法学习(LM算法)LM算法可以理解为**Gauss-Newton算法与最速下降法的结合**

    2022年10月1日
    0
  • 什么是ADO.NET

    什么是ADO.NET

    2021年7月31日
    54
  • 数据库 — char、varchar、varchar2区别

    数据库 — char、varchar、varchar2区别char、varchar、varchar2区别char是定长的,varchar是变长的。varchar2应该是varchar的升级,只有ORACLE才有,这里不作讨论。char定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对速度要求高的场合。速度快是因为其在物理上是按定长存储的,这样,就可以根据偏移址一次取出固定长度的字符。varchar变长存储,效率不如char。…

    2022年6月19日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号