码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 流媒体服务器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

    image-20231221140236526

    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参数。

    image-20231221142253329

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

    image-20231221142358094

    192.168.16.152是mediakit服务器ip。

    对于其他协议,比如我们使用rtmp:

    image-20231221142613761

    rtsp:

    image-20231221142638148

    conclusion#

    以上就是本篇内容。主要讲述了如何拥有一个自己的流媒体服务器。使用开源项目ZLMediaKit作为流媒体服务器,使用srt协议推流。使用vlc拉取流媒体服务器上的实时视频流。

  • 相关阅读:
    我用WebGL打造了一款动态壁纸
    新型数据中心,助力加快构建以数据为关键要素的数字经济
    基于BP神经网络的PID控制,神经网络算法pid控制
    基于物联网技术的工程、地质自动化安全监测产业链及工程应用
    Pulsar3.0 升级指北
    基于kubernetes平台微服务的部署
    【C++常见八股2】vector 的 push_back 扩容问题 | char *和 char [] 区别
    关于dubbo快速开发和服务提供者无法注册上注意点
    clock gating
    sqlalchemy_No1_简介及快速入门
  • 原文地址:https://www.cnblogs.com/keboom/p/17919098.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号