用vlc搭建简单流媒体服务器(UDP和TCP方式)

简介: <p lang="zh-CN" style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; border: 0px; font-size: 13px; background-color: transparent; font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Gra

VLC不仅仅是个播放器,也可以作为流媒体服务器使用。这个网上有相关的资料,我就不多说了。

声明下本文用的VLC版本:2.0.3

VLC搭建基于UDP的流媒体服务器

流媒体服务器大多数是基于UDP的,这个在VLC中也有好几种实现,我这里只列出我用到的几个。

1UDPlegacy)传统模式

服务端操作

打开“媒体——流”选项,如图所示:

点击“添加”按钮选择流媒体文件,然后点击“串流”按钮

点击“下一个”后,在“目标设置”界面选择“UDP (legacy)”,然后点击添加按钮

填上目标ip地址,并在“转码选项”中选择相应的编码类型(这个视情况而定)

可以点击“下一个”进行相关设置,也可以点击“串流”来完成服务端的设定。这里我点击“串流”完成服务端的设定。

客户端操作

点击“媒体——打开网络串流”,在弹出的框中输入“udp://@1234,点击“播放”按钮即可。

通过界面操作比较简单,但如果经常进行此类工作的话,脚本是比较靠谱的。

命令行操作方式

服务端(172.16.1.1):

vlc -vvv sample1.avi --sout udp:172.16.1.100:1234 --ttl 10

客户端(172.16.1.100):

vlc udp://@:1234

2RTP方式

虽然有基于TCPRTP,但抓包发现,VLCRTP是基于UDP的。

 

服务端操作

前几步和“UDPlegacy)传统模式”类似,这里不再赘述。主要是在目标里面选择“RTP / MPEG Transport Stream”这个选项,如图所示:

IP,选端口:

点击“串流”按钮即可完成服务端操作。

客户端操作

点击“播放”按钮即可。

命令行操作方式

服务端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{dst=172.16.1.100,port=5004,mux=ts,ttl=10}" 

客户端(172.16.1.100):

vlc rtp://@:5004

3RTSP方式

RTSP方式是通过RTP进行流媒体数据的传输的,VLC的实现也是基于UDP的。这种方式网上的参考资料比较多,我就不截图了,直接叙述命令行方式的操作。

命令行操作方式

服务端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:8554/test}" 

客户端(172.16.1.100):

vlc rtsp://172.16.1.1:8554/test

VLC搭建基于TCP的流媒体服务器

VLChttp方式搭建的流媒体服务器是用TCP方式进行数据传输的,这里就以这个为例子了。

HTTP方式

这个的界面操作和RTSP的类似,就不赘述。

命令行操作方式

服务端(172.16.1.1):

vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/test}" 

客户端(172.16.1.100):

vlc http://172.16.1.1:8080/test

 好,就这些了,希望对你有帮助。

相关文章
|
4天前
|
网络协议 Java API
【JavaEE】——Udp翻译器的实现(回显服务器)
网络编程,DatagramSocket 和 DatagramPacket类,回显服务器,服务器实现,客户端实现,
|
4天前
|
缓存 网络协议 Java
【JavaEE】——TCP回显服务器(万字长文超详细)
ServerSocket类,Socket类,PrintWriter缓冲区问题,Socket文件释放问题,多线程问题
|
6天前
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。
|
16天前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
|
27天前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
124 1
|
1月前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
71 4
|
1月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
59 3
|
1月前
|
网络协议 算法 网络性能优化
|
1月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
43 4
|
1月前
|
缓存 负载均衡 网络协议
面试:TCP、UDP如何解决丢包问题
TCP、UDP如何解决丢包问题。TCP:基于数据块传输/数据分片、对失序数据包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;UDP:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU