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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • WinServer2012配置AD域

    WinServer2012配置AD域WinServer2012配置AD域一、修改域控主机网卡IP,配置为静态IP,DNS配置为本机,并修改计算机名修改计算机名后需要重启注:若发现域控主机外部无法ping通请注意修改防火墙配置二、安装AD服务,将主机作为域控主机点击添加功能后,单击下一步随后添加功能组件,根据需求添加,点击下一步等待安装完成安装完成点击关闭安装完成后,点击上方的通知选择将此服务器提升为域控制器选择添加新林,设置好域名后点击下一步设置域还原密码,用于当域主机出现故障

  • Mac安装telnet_苹果电脑怎么telnet

    Mac安装telnet_苹果电脑怎么telnet问题描述新版本的macos取消了内置的telnet命令安装homebrew1、查看是否已经安装homebrewbrewhelp2、安装homebrew/usr/bin/ruby-e”$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)”使用homebrew安装telnet安装telnetbrewinstalltelnet查看是否安装成功telnet..

  • jQuery仿阿里云购买选择购买时间长度

    效果:http://hovertree.com/texiao/jquery/61/jQuery仿阿里云购买服务器选择时间长度,操作简单,只需点击所要选的时间段代码:转自:http://hover

    2021年12月22日
  • 分区表-理论

    分区表-理论目的分区表的主要目的是方便数据的维护,而不是提升MySQL数据库的性能。《高性能MySQL》中:分区的一个主要目的是将数据按照一个较粗的粒度分在不同的表中,这样做可以将相关的数据放在一起,另外

  • hashmap put过程面试_面试时问你base在哪儿

    hashmap put过程面试_面试时问你base在哪儿一个HashMap能跟面试官扯上半个小时关注安琪拉的博客1.回复面试领取面试资料2.回复书籍领取技术电子书3.回复交流领取技术电子书前言HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。开场面试官:你先自我介绍一下吧!安琪拉:我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目…

  • 史上最全 Java 多线程面试题及答案「建议收藏」

    史上最全 Java 多线程面试题及答案「建议收藏」这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。1、多线程有什么用? 一个可能在很多人…

发表回复

您的电子邮箱地址不会被公开。

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