流媒体服务器ZLMediaKit与FFmpeg

发布时间:2023年12月27日

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

johnvansickle.com/ffmpeg/ 在此下载合适的版本,安装好后,使用ffmpeg -protocols查看ffmpeg支持的协议。查看他是否支持srt协议,因为我要用srt协议推拉流。

vlc

www.videolan.org/vlc/ 下载相应的版本即可。

视频准备

ssyoutube.com/en156Bz/you… 去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

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拉取流媒体服务器上的实时视频流。

本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

文章来源:https://blog.csdn.net/m0_73443478/article/details/135243637
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。