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)
- wget packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
2、导入 GPG key
- rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
3、安装 rpm 安装包
- rpm -i rpmforge-release-0.5.2-2.el6.rf.i686.rpm
4、更新安装源
- yum check-update
5、安装 vlc
- 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)
- 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}'
举例:
- 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 认证。
【转码】
媒体文件可能本身不是流媒体格式,这个时候需要转码再串流。举例:
- 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 流:
- vlc pikesi.mkv -I "dummy" -L --no-inhibit --sout '#std{access=udp{ttl=1},mux=ts,dst=localhost:1234}'
然后,将 input_stream 改为网络地址,进行 http 串流:
- 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 ... &"
Linux 下搭建流媒体服务器的更多相关文章
- 【转】在Linux下搭建Git服务器
在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...
- window 下搭建流媒体服务器ffmpeg nginx-rmtp-module
媒体介绍和需要下载需要软件 1.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp 2.ng ...
- 在 Linux 下搭建 Git 服务器
环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...
- Linux下搭建VPN服务器(CentOS、pptp)转
先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GR ...
- Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法
首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion ...
- 在Linux下搭建Git服务器的方法是什么样?
第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...
- Linux下搭建BT服务器
P2P(Peer to Peer 即对等网络)就是在这种背景下提出的一种网络技术,P2P可以简单地定义为通过直接交换信息,共享计算机资源和服务,对等计算机兼有客户机和服务器的功能.在这种网络中所有的节 ...
- 转载-Linux下搭建VPN服务器(CentOS、pptp)
转自:http://www.cnblogs.com/sixiweb/archive/2012/11/20/2778732.html 搭建过程参考这篇文章 先说我搭建过程中出现的问题吧: 按照 教程搭建 ...
- Linux 下搭建jsp服务器(配置jsp开发环境)
Linux 做为服务器的高效一直时为人所熟知的了,在linux 上搭建各种各样的服务器和开发环境也时学计算机的人常做的.以下时最近在linux配置jsp服务器的全过程,包含一些基本步骤和排错过程: 1 ...
随机推荐
- GIT(3)----问题汇总
1.git pull出现的合并问题: Please enter a commit message to explain why this merge is necessary,especially i ...
- linux基础环境部署
Content 0.序 1.更新安装库 2.安装基础库 0.序 本文主要是记录php在 Centos下的安装配置 .文中如无特别说明.表示php-5.6.31代码目录. 1.更新安装库 $ yum u ...
- Git提交空文件夹的技巧
这个只能说是技巧不能说是方法,原理是在每个空文件夹新建一个.gitignore文件,然后提交. 快捷命令: find . -type d -empty -exec touch {}/.gitignor ...
- 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- Dropbox Folder Sync – 让 Dropbox 同步任意文件夹
「DropBox」可以说是目前世界上最流行的线上同步工具,非常简单的同步方式, 流畅的档桉上传下载速度,让你可以轻易的在两台.三台电脑之间同步重要资料. 而你要做的步骤只是在每一台电脑安装DropBo ...
- Android Tasker应用之自动查询并显示话费流量套餐信息
Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ...
- GCC 对C语言的扩展
http://www.cnblogs.com/emituofo/archive/2012/07/20/2600995.html http://blog.csdn.net/andyhuabing/art ...
- 多线程调试必杀技 - GDB的non-stop模式
作者:破砂锅 (转) 开源的GDB被广泛使用在Linux.OSX.Unix和各种嵌入式系统(例如手机),这次它又带给我们一个惊喜. 多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持a ...
- 事物的隔离级别与并发完美体现了cap理论(确保数据完整、安全、一致性,在此基础上实现高性能访问(鱼和熊掌不可兼得)
事物的隔离级别与并发完美体现了cap理论(确保数据完整.安全.一致性,在此基础上实现高性能访问(鱼和熊掌不可兼得)
- [翻译] 学习iOS开发的建议:如何从菜鸟到专家
[文章原地址] http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-from-novice-to-expert/ 翻译有误之处请勿见笑, ...