用vlc搭建流媒体服务器

作者:axu82119

来源:CSDN知识库

VLC是一种开源的播放器,同时也可以用作流媒体服务器。今天试验了几种搭建流媒体服务器的方法,这里做一个归纳总结。

本文使用的VLC版本为:2.1.5。

服务器平台操作系统:Windows 7 32位 旗舰版(Service Pack 1);

服务器IP地址:10.1.11.21;

客户端平台操作系统:Windows XP32位 Home Edition 2002(Service Pack 3);

客户端IP地址:10.1.11.99。

流媒体服务器大多是基于UDP的,这里只试验了其中几种。

1.     UDP(Latency)传统模式

服务器端操作

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

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

检查来源,没问题了选择“Next”。

在“目标设置”界面选择“UDP (legacy)”,如果要在本地同步显示视频,可勾选“在本地显示”,然后点击添加按钮。

在流目标输出“地址”栏输入客户端IP地址,本次实验客户端为10.1.11.99,默认端口1234,再单击“Next”。

在“转码选项”中,由于本次实验视频源为已经用H.264编码过,所以可以不勾选“激活转码”,如果视频源为原始视频,则可以通过勾选此复选框来选择编码方式(使用.h264视频源,并勾选“激活编码”,配置文件选择“H.264 + MP3”,经过试验也可以正常工作)。

下一步,直接选择“Stream”,服务器就开始发送视频流了。

客户端操作

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

通过EtherPeek抓包工具,可看到服务器在不停发送UDP数据包。

下图为UDP数据包的视频数据。

实验中共选择了三种数据源:h264文件,TS文件和USB摄像头,都可以播放。其中,h264文件由于分辨率不高,播放流畅;TS文件经h.264编码后,在客户端会有卡顿现象,明显网络传输带宽已经不够用了;USB摄像头视频经h.264编码后也可以正常解码播放,但是延迟比较大。

通过界面操作比较简单,但如果经常进行此类工作的话,脚本是比较靠谱的。这里并没有对脚本进行测试,只把脚本作为备份内容列在这里。

命令行操作方式

服务端(10.1.11.21):

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

客户端(10.1.11.99):

vlc udp://@:1234

2.     RTP方式

抓包发现,VLC的RTP是基于UDP的。

服务器端操作

前几步和“UDP(legacy)传统模式”类似,这里不再赘述。主要是在目标里面选择“RTP / MPEG Transport Stream”这个选项;目标IP为客户端IP(10.1.11.99),端口为默认值(5004)。

客户端操作

输入网路URL:rtp://@:5004,点击播放即可。

命令行操作方式

服务端(10.1.11.21):

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

客户端(10.1.11.99):

</pre><pre name="code" class="cpp">vlc rtp://@:5004

3.     RTSP方式

RTSP方式是通过RTP进行流媒体数据的传输的,VLC的实现也是基于UDP的。这种方式的图形界面操作与HTTP方式类似,就不赘述了。下面是命令行方式的操作。

命令行操作方式

服务端(10.1.11.21):

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}"

客户端(10.1.11.99):

vlc rtsp:// 10.1.11.21:8554/test

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

VLC的http方式搭建的流媒体服务器是用TCP方式进行数据传输的。

HTTP方式

界面操作与UDP相似,只是在服务器端,端口默认为8080,路径可设置为“/test”。

在客户端,URL为http://10.1.11.21:8080/test 。

命令行操作方式

服务端(10.1.11.21):

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}"

客户端(10.1.11.99):

vlc http:// 10.1.11.21:8080/test

以上就是全部的实验内容,命令行操作方式并没有在实验中验证,列在这里作为参考吧。

用vlc搭建流媒体服务器相关推荐

  1. 支持组播的流媒体服务器,VLC 搭建流媒体服务器

    1.安装VLC https://www.videolan.org/vlc/#download 2.设置UDP流服务器 IP 238.0.0.1是区域网可多播的地址之一. 也可以是目标客户端的地址.组播 ...

  2. ffmpeg libx264_nginx+ffmpeg搭建流媒体服务器(直播流)

    这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...

  3. 音视频开发(8)---nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/redstarofsle ...

  4. obs nginx-rtmp-module搭建流媒体服务器实现直播 ding

    欢迎大家来此浏览,希望大家一块在此学习,共同交流进步. 接下来我就简单跟大家介绍一下利用nginx来搭建流媒体服务器. 我选择的是腾讯云服务器 1.下载nginx-rtmp-module: nginx ...

  5. Linux---nginx+ffmpeg搭建流媒体服务器

    这里实现了简单nginx+ffmpeg 推本地mp4视频文件的功能,以后将会继续更新 环境 系统环境:CentOS release 6.7 (Final) 需求 利用nginx和ffmpeg搭建流媒体 ...

  6. nginx+ffmpeg搭建流媒体服务器

    安装ffmpeg: 下载FFmpeg和libx264的包 ffmpeg-2.4.1.tar.bz2  last_x264.tar.bz2 libx264需要yasm,所以先安装yasm apt-get ...

  7. nginx的rtmp搭建流媒体服务器实现直播流

    最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...

  8. srs服务器播放文件,使用SRS+ffmpeg搭建流媒体服务器播放m3u8格式视频

    1.简介 srs是一个简单的流媒体开源直播软件,ffmpeg是完整的跨平台解决方案,用于记录,转换和流传输音频和视频. 2.相关 官网下载页面:点击我到达 在线演示播放页面:点击我到达 Git页面:点 ...

  9. 使用EasyDarwin + ffmpeg 搭建流媒体服务器,实现多台智能电视同步播放宣传视频

    近期单位用户提出需求,需要在单位内部的9台安卓智能电视(小米电视)上同步播放用户提供的宣传视频,希望能够做到所有电视音视频同步播放(电视均位于食堂内部,使用内置扬声器,各电视间音频延迟不同会导致混响) ...

最新文章

  1. Juce源代码分析(一)Juce的优势
  2. The Historical Accident of Waterfall Validity--瀑布开发模型在历史事件中的印证
  3. 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷
  4. mysql为什么使用b 树作为索引_为什么Mysql用B+树作为索引
  5. [总结]DataGrid 固定表头实现(纵向和横向滚动条滚动,而Header不动)
  6. 数据库中间件漫谈——看看云时代,它会走向何方
  7. DOM中Property与Attribute的区别
  8. python如何和qt交互_Python 之Pyqt5操作交互处理,原来这么简单!
  9. linux listener作用,Local_listener 的作用
  10. CRM【第三篇】: crm业务
  11. 【Java定时任务调度工具】Timer
  12. SQL数据库连接超时时间已到
  13. paypal tp 对接_PayPal支付接入
  14. 关于 Jupyter Notebook 中 No module named ‘torch‘ 的解决办法
  15. 【云原生|实践指北】5:真实业务场景下云原生项目落地实践学习
  16. Faceless geometries are not supported
  17. jquery.webcam.js实现调用摄像头拍照兼容各个浏览器
  18. 什么是SDK?MFC?
  19. 雷达、定位、跟踪等信号处理邻域SCI期刊整理及推荐
  20. 2021杭州恒生电子实习一面面经

热门文章

  1. Redis保姆级学习教程
  2. sklearn分类算法(逻辑回归、朴素贝叶斯、K近邻、支持向量机 、决策树、随机森林 )的使用
  3. AI二次开发c#开发环境搭建
  4. 网站做好后不能用手机浏览吗_企业的网站建设如何跟上时代的发展?
  5. 2、STM32CubeMX软件的使用
  6. java中的减_Java中的增量和减量运算符
  7. 免费且开源 ,还有抽奖活动,猪齿鱼数智化开发管理平台V1.1.0 开源版邀您体验
  8. 如何判断庄家出货(转贴)
  9. python画笑脸表情_python
  10. winform鼠标悬停在空间上显示提示tip