进入新公司之后,发现他们的视频播放使用的是ZlmediaKit这个工具,自己尝试使用了一下发现很好用,于是在自己机器上搭建了一个服务玩玩。
因为没有在线的摄像头,所以这里采用的是ffmpeg推送mp4文件作为视频流输入,推送到zlmedia服务,再利用zlmedia本身所带的拉流服务,最终实现视频流的播放。.i
首先按照官网编译Zlmedia服务,官网地址:https://github.com/ZLMediaKit/ZLMediaKit
之后启动服务。./MediaServer -d使用守护进程的方式启动,官方推荐。
接着使用ffmpeg推流,具体指令如下:ffmpeg -re -i yz.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://172.16.128.100/live/test
使用vlc播放,发现视频卡顿严重,于是发现问题,没有处理。但在0921日,同时偶然发了一个ffmpeg推流指令给我,如下:ffmpeg -re -stream_loop -1 -i yz.mp4 -c copy -f rtsp -rtsp_transport tcp rtsp://172.16.128.100/live/test86
使用这个推流,不卡顿,自己对比里面的参数,发现同事发送的这个是不带音频的,也没有设置视频流格式,还设置了循环推流,自己试了一下,感觉还是和不带音频关系较大。
接着使用webrtc播放,访问media服务所在服务器ip,默认端口是80
进入后提示需要输入secret,这里备注一下,这个secret在media中的config.ini里是有的,直接拷贝即可,配置完成之后,进入之后找到了数据列表
接着进入webrtc测试,准备播放视频流,
出现url返回404的问题,对比公司之前的服务发现公司的没有问题,后面仔细想一下是不是这个media服务有问题,于是找了一下,发现确实是没有编webrtc,于是启动webrtc版本的media服务,果然可以播放视频了。
但目前还存在一个问题,就是webrtc播放的视频很卡,查看了一下视频属性,帧率25,分辨率1920x808,而且电脑资源还够,暂未找到问题。后续继续研究。