搭建VLC流媒体服务

http://www.emsym.com/blog/?p=353

概述:

流媒体技术是一种支持多媒体数据流通过网络从服务器向客户端传送,接受方边接收边播放的技术。

对网络服务的要求:

  1. 必须实时传输数据,仅容许少量的延迟(数百毫秒);
  2. 传送数据相对可靠性,容忍一定数量的数据丢失;
  3. 保证一定的带宽,以保证传输的数据量能够实时播放。

架设基于vlc的UDP服务器

UDP(用户数据报协议),是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,与面向连接的TCP协议相对应。

正是由于UDP协议没有TCP的拥塞控制和发送速率控制,也没有提供数据传输的可靠性保证,但是却保证了传输的实时性,所以被流媒体应用系统所广泛采用。主要用来支持那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。

利用vlc(VLC media player 1.0.1)实现UDP服务器:

首先在服务器端打开VLC播放器,如下:

qq

接下来选择媒体菜单—->选择高级打开文件,界面如下:

qq1

单击添加按钮,可以将磁盘上的媒体文件添加进来,然后在右下角的下拉菜单中选择流,进入下一步,如下:

qq12

在上面的的界面中,单击目标按钮,进行UDP设置,添加你想要的发送到的客户端,可以设置多个。另外,如需要转码则把激活转码选项打钩,其他可以选择默认的设置,不需要更改也可,当然也可以根据你的要求进行输出配置,进入下一步,视频就开始在服务器端进行播放,并向目标端发送流信息。

接下来,在客户端打开VLC播放器,单击媒体菜单,选择打开网络串流,出现如下界面:

qq123

选择UDP协议,端口默认即可,单击播放按钮就可以实现在客户端的播放了。

以上是利用图形界面进行操作,当然也可以使用命令来操作。

 

VLC 服务器RTSP功能实现

RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据 。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP 与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。

首先进入到VLC的安装目录下,执行类似如下的命令:

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

对上述参数的解释:–ttl:是对hop的限制;-vvv选项用来输出错误信息,可以省略;219.219.218.239是RSTP点播服务器的主机地址; videolan 是telnet登录RTSP点播服务器时输入的口令,这两个部分用户可以根据自己的情况进行修改。

登录RTSP点播服务器

在这里我是运用SecureCRT软件进行telnet登录。界面如下所示:

1

当点击连接后,要求输入密码:videolan,回车后如果显示:Welcome, Master,则表明登录成功。

在主机名栏输入:219.219.218.239,该内容必须与前面建立的RTSP点播服务器的主机地址一致;在端口栏输入:4212,该端口号在使用VLC默认设置时不能改为其他的数值。

接下来就可以设置点播文件了

在登录成功的界面上,输入以下的命令:

new Test vod enabled 
setup Test input myVideo.mpg

最后,就可以在客户端观看视频,命令如下:

vlc rtsp://219.219.218.239:5554/Test

还可以通过VLC播放器的VLM进行可视化配制,并生成.vlm配置文件,然后利用SecureCRT工具登录到RTSP点播服务器,利用load命令将配置文件导入,使用show命令可以查看导入的文件信息。

测试结果:

CDXA/MPEG-PS   未经过编码转换即可播放,但是仅可以用VLC播放器进行播放。原因是其他播放器无法解析rtsp://219.219.218.147:5554/Test 中的Test文件名。

利用RTP协议实现流输出

实时传送协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在用户数据报协议上的。

服务器端:

vlc -vvv input_stream –sout ‘#rtp{dst=192.168.0.12,port=1234,sdp=rtsp://server.example.org:8080/test.sdp}’

客户端:

vlc rtsp://server.example.org:8080/test.sdp

rtp: streams over RTP. This can only be used to stream MPEG-TS over plain RTP.

VLC实现mmsh/mms点播功能

MMS协议(Microsoft Media Server Protocol)是用来访问并且流式接收Windows Media服务器中.asf文件的一种协议。MMS协议用于访问Windows Media发布点上的单播内容。

示例视频.mpg格式。

vlc –vvv input_stream:sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a, ab=128,channels=2,samplerate=44100}:std{access=mmsh,mux=asfh,dst=:8080}

在VLC客户端中用以下命令播放:mmsh://server_ip_address:8080
在暴风影音,Windows Media Player中可以正常播放,在KMPlayer中视频格式正常,但没有声音,在real中无法播放,
错误原因:音频无法解析。
另外,我测试了几个高清视频(mov,mkv,wmv),发现的情况是,可以播放,但是太卡。

VLC实现http 点播功能

将需要的媒体文件放在服务器的某个路径下面,服务器可以是Apache,tomcat等均可。
然后在客户端可以利用多种播放器进行播放,如VLC,Windows Media Player,RealPlayer,在暴风影音,KMPlayer下不能播放
命令如下:http://localhost/fileName

文件太大的话无法正常播放,如我测试的dance.wmv 文件大小:351M ,但是在realPlayer下可以播放,缓冲时间比较长,在Windows Media Player缓冲较小时间就可以播放。

注:

ts: the MPEG2/TS muxer. This the standard muxer used to stream MPEG2. This muxer can be used with any access method. Supported codecs are MPEG 1/2/4, MJPEG, H263, H264, I263, WMV 1/2 and theora for video, MPEG audio, AAC and a52 for theaudio stream.

ps: the MPEG2/PS muxer. This the standard muxer for MPEG 2 files(.mpg). It can be used with the file and http output methods. Supported codecs are MPEG 1/2 and MJPEG for video, MPEG audio and a52 for audio streams.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建流媒体服务器需要以下步骤: 1. 安装Linux操作系统,建议使用Ubuntu或CentOS等常见的Linux发行版。 2. 安装流媒体服务器软件,常用的有Nginx-rtmp、Wowza、Red5等。其中,Nginx-rtmp是一个轻量级的流媒体服务器,安装简单,配置灵活,适合小型的流媒体应用;Wowza和Red5则是功能更为强大的流媒体服务器,支持更多的协议和功能。 3. 配置流媒体服务器,包括设置端口、协议、编码格式、流媒体文件存储路径等。 4. 配置流媒体客户端,如VLC、FFmpeg等,以便能够与流媒体服务器进行通信。 5. 测试流媒体服务器,可以使用本地文件或网络摄像头等设备进行测试,确保流媒体服务器正常工作。 总之,搭建流媒体服务器需要一定的技术水平和经验,建议在实践前先学习相关的知识和技术。 ### 回答2: 流媒体服务器是指一个服务器能够接收、编码、存储、和分发流媒体内容的服务器。Linux系统在搭建流媒体服务器上拥有很大优势,因为它拥有从Linux社区和开源社区获得的强大工具箱。在本文中,我们将探讨如何在Linux上搭建流媒体服务器。 第一步:安装Linux操作系统 在搭建流媒体服务器之前,我们需要先选择一个Linux操作系统。我们可以选择稳定,经过良好测试的Debian或者Ubuntu操作系统,也可以选择其他的开源操作系统。然后,我们需要执行以下步骤: 1.安装操作系统。你可以通过官方网站下载需要的系统镜像。 2.在安装过程中设置管理员的用户名和密码。 3.在安装过程中选择安装需要的软件和服务。 第二步:安装LAMP 拥有一个互联网流媒体服务器需要安装一个完整的LAMP(Linux操作系统,Apache HTTP服务,MySQL数据库,以及PHP编程语言)服务集合。在此我们将重点介绍如何搭建Apache服务以及与之相关的一些服务。 1.安装Apache服务器。你可以使用包管理工具apt或dnf来安装。 2.安装MySQL组件。MySQL允许我们在Linux操作系统上运行和存储数据库。 3.安装PHP组件。PHP是用于Web开发的编程语言,在架设流媒体服务器上有很大的用处。 第三步:安装流媒体软件 完成了第二步之后,我们现在需要安装一些流媒体服务软件。这些软件可以帮助我们在Linux操作系统上运行一个实时流媒体服务器。 1.安装Icecast。Icecast是一个开源项目,用于流媒体服务器的基础服务。 2.安装DarkIce。这是一个广泛被流媒体服务器系统使用的基础编码器。 第四步:配置流媒体软件 在安装完所需组件之后,我们需要对它们进行配置,以便流媒体服务器能够顺利的工作。下一步我们将讲述这个操作示例。 1.配置icecast。Icecast的配置文件在”/etc/icecast.xml”目录下,需要在此修改后进行保存。 2.配置DarkIce。配置DarkIce的方法可以参考相关文档等。 第五步:故障排除和调试 最后,我们需要对流媒体服务器进行故障排除和调试。如果你遇到了问题或问题无法解决,可以通过查询问题的错误日志来查出问题所在。这些错误日志可以在”/var/log或/srv/jellies目录下找到。 总结: 以上就是用Linux安装搭建流媒体服务器的大致流程。这个流程包括安装操作系统、安装LAMP、安装流媒体软件、配置流媒体软件以及故障排查等工作。需要注意的是,这些过程可能因系统版本、软件版本等影响而有所不同。因此,请仔细查阅官方文档以及相关技术博客。最后,总结一下,Linux作为开源操作系统在流媒体服务器架设上有着良好的使用体验,它对于高可靠性、高安全性处理有着卓越的表现,值得我们进一步挖掘和使用。 ### 回答3: Linux是一个开放源代码的内核,它可以为用户提供自由、强大和高度安全的操作系统。通过Linux,我们可以轻松地搭建一个高效的流媒体服务器,用于实时广播音频和视频内容。 搭建流媒体服务器的第一步是安装Linux操作系统。现在市场上有很多不同的发行版可以选择,比如Ubuntu、CentOS、Debian等等。在选择系统的同时,我们还需要确保网络配置以及系统更新等步骤完成。 接下来,我们需要安装流媒体服务器软件。我们可以选择一些流行的免费软件,比如FFmpeg、VLC或者Nginx。在这里我们以Nginx作为例子进行讲解。 Nginx是一款非常流行的服务器软件,它可以用来处理HTTP和其他网络协议。在流媒体方面,Nginx的优势在于可以快速地向多个客户端播放视频和音频。 安装Nginx非常简单,首先要做的就是打开终端,输入以下命令: sudo apt-get install nginx 安装完成后,我们需要配置Nginx的流媒体服务。 第一步是创建一个RTMP块,在这里我们将定义一些RTMP流媒体的设置。打开配置文件并添加以下内容: rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } } 其中,listen指定RTMP服务器监听的端口号,chunk_size定义信息块的大小,live表示开启直播功能,record表示关闭录制功能。 接下来,我们需要设置Nginx服务来支持MP4格式的视频流。在server块中添加以下内容: location /videos { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 5m; alias /var/www/html/videos/; } 其中,mp4表明本段服务支持MP4格式的视频,mp4_buffer_size和mp4_max_buffer_size用来设置视频缓冲区的大小,alias用来设置文件夹路径,即视频文件夹的路径。 完成以上配置后,我们需要重新加载Nginx服务以应用新的设置。在终端输入以下命令: sudo service nginx reload 这样就完成了一个流媒体服务器搭建。现在,我们只需要将我们的音频或视频内容上传到/var/www/html/videos/文件夹中,即可通过RTMP块和MP4服务向多个用户提供实时流媒体内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值