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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爱玩吧提供10G国外免费PHP空间「建议收藏」

    爱玩吧提供10G国外免费PHP空间「建议收藏」爱玩吧提供10G国外免费PHP空间爱玩吧香港空间:不再开放免费空间申请。大家就去用免费国外不限制空间申请Yhfx.ml免费空间服务由idc.aiwanba.net提供 免费空间套餐每月流量 100GB空间容量10GB控制面板演示

    2022年9月21日
    4
  • ICMP报文的类型

    ICMP报文的类型ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP报文是在IP数据报内部被传输的,如图6-1所示。ICMP的正式规范参见RFC792[Posterl1981b]。ICMP…

    2022年5月29日
    27
  • 计算机管理找不到指定模块,卸载时找不到指定模块怎么办_电脑卸载找不到指定模块处理方法-win7之家…

    计算机管理找不到指定模块,卸载时找不到指定模块怎么办_电脑卸载找不到指定模块处理方法-win7之家…我们在使用电脑的过程中,对于系统中安装的大不多数软件有些是不需要,因此就需要卸载掉,以此保证电脑的内存充足,但是近日有的用户发现自己的电脑在卸载软件时总是会有找不到指定模块的提示,那么卸载时找不到指定模块怎么办呢?下面小编就来告诉大家电脑卸载找不到指定模块处理方法。具体方法:方法1:电脑清理法1、打开电脑安装的安全软件(这里以360为例),点击“电脑清理”。2、进入后找到“清理注册表”这项,然后在…

    2022年7月13日
    48
  • windows 开机自动登录并锁定「建议收藏」

    windows 开机自动登录并锁定「建议收藏」首先来看看系统启动自动登录的设置:  按住Win键,再按R键(Win+R),启动”运行”窗口;  WindowsXP/2003/2008/2008R2输入”controluserpasswords2″(不含引号)回车;  Windows7输入”netplwiz”(不含引号),回车;  在”用户帐户”-“用户”界面中,取消”要使用本机,用户必须输入用户名和密码(E)”复选框;  按”确定”按钮

    2022年7月21日
    31
  • 如何制作一个简单的HTML登录页面(附代码)[通俗易懂]

    如何制作一个简单的HTML登录页面(附代码)[通俗易懂]几乎每个网站都会有登录页面,那你知道如何写HTML登录页面吗?这篇文章就和大家分享一个HTML简单登录界面的代码,有一定的参考价值,感兴趣的朋友可以看看。实例:制作一个HTML登录页面,包含邮箱,登录密码,立即注册,忘记密码等,代码如下:HTML部分:<divclass=”dowebok”><divclass=”logo”></div><divclass=”form-item”><inputid=”username”t

    2022年6月13日
    27
  • python进阶(6)深拷贝和浅拷贝[通俗易懂]

    python进阶(6)深拷贝和浅拷贝[通俗易懂]深拷贝和浅拷贝不管对于浅拷贝、还是深拷贝,针对不可变对象str、int、tuple(有点特殊)、boolean,它的内存地址是不变的,拷贝的仅仅是值importcopya=1b=co

    2022年7月29日
    9

发表回复

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

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