流媒体服务器ZLMediaKit与FFmpeg
流媒体服务器ZLMediaKit与FFmpeg
overview
关键字:ZLMediaKit、FFmpeg、srt、vlc
如果想快速拥有自己的流媒体服务器,那么可以使用开源项目自己搭建。开源的流媒体服务器,在国内,GitHub star数量比较高的:srs和ZLMediaKit。因为在工作中使用的是Mediakit,因此就介绍此开源流媒体服务器。
题外话:听说有人白嫖价低的云服务器,然后就向各个直播平台全天循环播放《周星驰系列》《铁齿铜牙纪晓岚》《小牛说电影》等等,听说收益不错嘞。
本文就说一下通过ffmpeg向mediakit推流,使用vlc拉取mediakit的视频流。
环境准备
mediakit
部署时使用docker是最方便的,但是他的docker镜像比较大,大约有400~500MB。如果在意大小的话,可以自己编译。自己编译的话最终的可执行文件只有11MB。
#此镜像为github持续集成自动编译推送,跟代码(master分支)保持最新状态
docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master
1935是rtmp,8080是http接口,8443是https,8554是rtsp,10000是rtp,8000是rtc,9000是srt
ffmpeg
https://johnvansickle.com/ffmpeg/ 在此下载合适的版本,安装好后,使用ffmpeg -protocols查看ffmpeg支持的协议。查看他是否支持srt协议,因为我要用srt协议推拉流。
vlc
https://www.videolan.org/vlc/ 下载相应的版本即可。
视频准备
https://ssyoutube.com/en156Bz/youtube-video-downloader 去YouTube下个好看的视频吧。
推送视频流到mediakit
当我们从YouTube下载好喜欢的视频后,我们可以通过ffmpeg将他推送到mediakit上。比如说我下载了周杰伦的《还在流浪》,然后我以srt协议推送到mediakit上。
./ffmpeg -re -stream_loop -1 -i "/opt/still_wandering.mp4" -c copy -f mpegts 'srt://127.0.0.1:9000?streamid=#!::r=live/test,m=publish'
关于mediakit对于srt支持
然后我们的mediakit就接受到这个srt流了,我们通过调用他提供的http接口:getMediaList

https://github.com/ZLMediaKit/ZLMediaKit/blob/master/postman/ZLMediaKit.postman_collection.json 通过下载这个json文件,可以将他导入到postman中方便调用他的REST接口
mediakit默认配置会将推送到其上的流转为rtmp、rtsp、hls等协议。我们可以通过他所转换之后的流媒体协议再去拉这个流。
vlc拉取视频流
使用vlc从mediakit上拉流。对于srt协议有些特殊,需要在vlc上配置一下stream参数。

比如我们刚才ffmpeg推流live/test,那么这样配置就行。然后填写srt地址:

192.168.16.152是mediakit服务器ip。
对于其他协议,比如我们使用rtmp:

rtsp:


conclusion
以上就是本篇内容。主要讲述了如何拥有一个自己的流媒体服务器。使用开源项目ZLMediaKit作为流媒体服务器,使用srt协议推流。使用vlc拉取流媒体服务器上的实时视频流。
流媒体服务器ZLMediaKit与FFmpeg的更多相关文章
- Mac上搭建rtmp流媒体服务器(结合FFmpeg的使用)
1.确保安装homebrew ---安装则跳到第二步 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器[转]
转 :http://redstarofsleep.iteye.com/blog/2123752 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个n ...
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...
- 基于ffmpeg的流媒体服务器
OS:ubuntu 12.04ffmpeg:N-47141-g4063bb2x264:0.133.2334 a3ac64b目标:使用ffserver建立流媒体服务器使用ffmpeg对本地文件流化(x2 ...
- Linux-Nginx+rtmp+ffmpeg搭建流媒体服务器
Nginx+rtmp+ffmpeg搭建流媒体服务器 说明: nginx搭建流媒体服务需要用到 nginx-rtmp-module 模块 具体操作步骤: 安装nginx (1)下载第三方扩展模块ngin ...
- centos7+nginx+rtmp+ffmpeg搭建流媒体服务器(保存流目录与http目录不要随意配置,否则有权限问题)
搭建nginx-http-flv-module升级代替rtmp模块,详情:https://github.com/winshining/nginx-http-flv-module/blob/master ...
- 流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...
- ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/74783269 需求 在做EasyDSS开发时,总 ...
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
参考: 1,使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器笔记(一)http://blog.csdn.net/xdwyyan/article/details/4319 ...
- 使用ffmpeg -re循环推流(循环读取视频文件)推送EasyDSS RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器的方法
需求分析 众所周知,EasyDSS与EasyNVR最大的区别是,EasyDSS被动接受前端设备的推流,将推送过来的直播流进行直播转码.智能处理.视频分发,在通过CDN分发节点分发到终端播放SDK.而E ...
随机推荐
- [面向对象] 魔术方法 (__set, __get, __unset, __isset)
__set, __get,__isset, __unset 是面向对象里用来友操作的魔术方法. 先看看使用方法 echo $类->属性; //取不存在属性或私有保护属性时, 以下方法被调用 ...
- mpi转以太网连接200PLC转以太网modbusTCP服务器通信配置方法
兴达易控200PLC转以太网modbusTCP服务器通信配置方法 产品简介 兴达易控PPI-ETH-XD1.0用于西门子S7-200/SMART S7-200PLC的以太网数据采集,非常方便构建生产管 ...
- 查看docker容器使用的cpu和内存
转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称. 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情 ...
- Django框架项目之支付功能——支付宝支付
文章目录 支付宝支付 入门 支付流程 aliapy二次封装包 GitHub开源框架 依赖 结构 alipay_public_key.pem app_private_key.pem setting.py ...
- Django框架——forms组件、cookie与session
文章目录 1 forms 组件 1 校验字段功能 2 渲染标签功能 渲染方式1 渲染方式2 渲染方式3 3 渲染错误信息功能 视图 模板 4 组件的参数配置 5 局部钩子 6 全局钩子 2 cooki ...
- Arduino基础入门之三按键开关
目的:通过读取按键开关的信号,实现其他器件的控制 难点:下拉电阻和上拉电阻 一.关于按键开关 按键开关如上图[1]所示,但我拿到实物,最令我头疼的是按钮下边4个角,我不知那两边是相通的(就是和图中12 ...
- 常见的企业Wiki
企业Wiki(Enterprise Wiki)指适用于企业或组织内部使用的Wiki.与非企业Wiki(如著名的MediaWiki)最根本的不同点在于,企业Wiki是为企业量身定做的Wiki.通过鼓励. ...
- CF862B
题目简化和分析: 这是一道较为经典的二分图染色题. 二分图的基本概念 但这题让我们求得是完全二分图. 什么是完全二分图 \(cnt_{1}\) 表示染成颜色种类为 \(1\) 的个数. \(cnt_{ ...
- 【Unity3D】Shader Graph节点
1 前言 Shader Graph 16.0.3 中有 208 个 Node(节点),本文梳理了 Shader Graph 中大部分 Node 的释义,官方介绍详见→Node-Library. ...
- Django+celery+eventlet+flower+redis异步任务创建及查询实现
1.环境版本:Django 3.2.12celery 5.3.4eventlet 0.33.3flower 2.0.1redis 3.5.3项目名称:new_project 2.celery配置(se ...