收费点播网站源码分享(点播源码,开源网站)

大家好,今天来为大家分享收费点播网站源码分享的一些知识点,和点播源码,开源网站的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

环境

ubuntu18.0464bitZLMediaKit20210924ffmpeg3.4.8

前言

ZLMediaKit是一个基于C++11的高性能运营级流媒体服务框架,这个项目定位于商用级流媒体服务器,支持linux、macos、windows、android、ios全平台,支持多种协议,如RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4、MP4、WebRTC等,且支持协议互转,提供了完善的标准CAPI、RESTfulAPI和webhook,支持丰富的业务逻辑,真正做到了拿来即用

功能清单

下图是ZLMediaKit的功能清单,涵盖的内容非常广泛

C++音视频开发学习资料:点击莬费领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

RTSP[S]

RTSP[S]服务器,支持RTMP/MP4/HLS转RTSP[S],支持亚马逊echoshow这样的设备RTSP[S]播放器,支持RTSP代理,支持生成静音音频RTSP[S]推流客户端与服务器支持rtpoverudprtpovertcprtpoverhttprtp组播四种RTP传输方式服务器/客户端完整支持Basic/Digest方式的登录鉴权,全异步可配置化的鉴权接口支持H265编码服务器支持RTSP推流(包括rtpoverudprtpovertcp方式)支持H264/H265/AAC/G711/OPUS编码,其他编码能转发但不能转协议RTMP[S]RTMP[S]播放服务器,支持RTSP/MP4/HLS转RTMPRTMP[S]发布服务器,支持录制发布流RTMP[S]播放器,支持RTMP代理,支持生成静音音频RTMP[S]推流客户端支持http[s]-flv直播支持websocket-flv直播支持H264/H265/AAC/G711/OPUS编码,其他编码能转发但不能转协议支持RTMP-H265支持RTMP-OPUSHLS支持HLS文件生成,自带HTTP文件服务器通过cookie追踪技术,可以模拟HLS播放为长连接,可以实现HLS按需拉流、播放统计等业务支持HLS播发器,支持拉流HLS转rtsp/rtmp/mp4支持H264/H265/AAC/G711/OPUS编码TS支持http[s]-ts直播支持ws[s]-ts直播支持H264/H265/AAC/G711/OPUS编码fMP4支持http[s]-fmp4直播支持ws[s]-fmp4直播支持H264/H265/AAC/G711/OPUS编码HTTP[S]与WebSocket服务器支持目录索引生成,文件下载,表单提交请求客户端提供文件下载器(支持断点续传),接口请求器,文件上传器完整HTTPAPI服务器,可以作为web后台开发框架支持跨域访问支持http客户端、服务器cookie支持WebSocket服务器和客户端支持http文件访问鉴权GB28181与RTP推流支持UDP/TCP国标RTP(PS或TS)推流服务器,可以转换成RTSP/RTMP/HLS等协议支持RTSP/RTMP/HLS转国标推流客户端,支持TCP/UDP模式,提供相应restfulapi支持H264/H265/AAC/G711/OPUS编码支持海康ehome推流MP4点播与录制支持录制为FLV/HLS/MP4RTSP/RTMP/HTTP-FLV/WS-FLV支持MP4文件点播,支持seek支持H264/H265/AAC/G711/OPUS编码WebRTC支持WebRTC推流,支持转其他协议支持WebRTC播放,支持其他协议转WebRTC支持simulcast支持rtx/nack支持单端口、多线程、客户端网络连接迁移(开源界唯一)

C++音视频开发学习资料:点击莬费领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

其他支持丰富的restfulapi以及webhook事件支持简单的telnet调试支持配置文件热加载支持流量统计、推拉流鉴权等事件支持虚拟主机,可以隔离不同域名支持按需拉流,无人观看自动关断拉流支持先拉流后推流,提高及时推流画面打开率提供capisdk支持FFmpeg拉流代理任意格式的流支持httpapi生成并返回实时截图支持按需解复用、转协议,当有人观看时才开启转协议

源码编译及测试

源码编译之前,先安装编译器、cmake构建工具及需要的第三方依赖库

其它依赖库\nsudoapt-getinstalllibssl-devlibsdl-devlibavcodec-devlibavutil-devffmpeg

完成后,就可以开始拉取源码并编译了,依次执行下面命令

gitclonehttps://github.com/ZLMediaKit/ZLMediaKit.git\ncdZLMediaKit\n\n可以通过-h来查看命令支持的参数\nsudo./MediaServer-d

(base)xugaoxiang@1070Ti:~/workshop/github/ZLMediaKit/release/linux$sudo./MediaServer-d\n2021-09-2414:27:54.227DMediaServer[1895-mainthread]System.cpp:100startDaemon|启动子进程:1897\n2021-09-2414:27:54.227IMediaServer[1897-mainthread]System.cpp:130systemSetup|core文件大小设置为:18446744073709551615\n2021-09-2414:27:54.227IMediaServer[1897-mainthread]System.cpp:139systemSetup|文件最大描述符个数设置为:1048576\n2021-09-2414:27:54.232WMediaServer[1897-mainthread]SSLUtil.cpp:98loadPublicKey|error:02001002:systemlibrary:fopen:Nosuchfileordirectory\n2021-09-2414:27:54.232WMediaServer[1897-mainthread]SSLUtil.cpp:126loadPrivateKey|error:2006D080:BIOroutines:BIO_new_file:nosuchfile\n2021-09-2414:27:54.232DMediaServer[1897-stampthread]util.cpp:342operator()|Stampthreadstarted!\n2021-09-2414:27:54.233IMediaServer[1897-mainthread]EventPoller.cpp:466EventPollerPool|创建EventPoller个数:4\n2021-09-2414:27:54.233IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:554\n2021-09-2414:27:54.234IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:332\n2021-09-2414:27:54.234IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:1935\n2021-09-2414:27:54.234IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:19350\n2021-09-2414:27:54.235IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:8080\n2021-09-2414:27:54.235IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:443\n2021-09-2414:27:54.235IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:9000\n2021-09-2414:27:54.236IMediaServer[1897-mainthread]TcpServer.cpp:188start_l|TCPServerlisteningon0.0.0.0:10000\n2021-09-2414:27:54.236IMediaServer[1897-mainthread]UdpServer.cpp:78start_l|UDPServerbindto0.0.0.0:10000\n2021-09-2414:27:54.237IMediaServer[1897-mainthread]main.cpp:368start_main|已启动httpapi接口\n2021-09-2414:27:54.237IMediaServer[1897-mainthread]main.cpp:370start_main|已启动httphook接口

服务启动好了以后,就可以在客户端推流,简单起见,就在同一台机器上推流,不同主机的话,修改下ip地址即可

C++音视频开发学习资料:点击莬费领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

使用rtsp方式推流

h265编码\nffmpeg-re-itest.mp4-vcodech265-acodecaac-frtsp-rtsp_transporttcprtsp://127.0.0.1/live/test

ffmpeg推流成功后,注意看下服务器端的输出信息

2021-09-2416:47:42.327DMediaServer[21725-eventpoller0]RtspSession.cpp:53RtspSession|140068211663280(127.0.0.1:55128)\n2021-09-2416:47:42.329IMediaServer[21725-eventpoller0]MediaSource.cpp:414emitEvent|媒体注册:hls__defaultVhost__livetest\n2021-09-2416:47:42.329DMediaServer[21725-eventpoller0]MediaSink.cpp:141emitAllTrackReady|alltrackreadyuse0ms\n2021-09-2416:47:42.329IMediaServer[21725-eventpoller0]MultiMediaSourceMuxer.cpp:297onAllTrackReady|stream:rtsp://127.0.0.1:554/live/test,codecinfo:mpeg4-generic[48000/2/16]H264[854/480/48]\n2021-09-2416:47:45.596IMediaServer[21725-eventpoller0]MediaSource.cpp:414emitEvent|媒体注册:rtsp__defaultVhost__livetest\n2021-09-2416:47:45.641IMediaServer[21725-eventpoller0]MediaSource.cpp:414emitEvent|媒体注册:rtmp__defaultVhost__livetest\n2021-09-2416:47:45.641IMediaServer[21725-eventpoller0]MediaSource.cpp:414emitEvent|媒体注册:ts__defaultVhost__livetest\n2021-09-2416:47:45.728IMediaServer[21725-eventpoller0]MediaSource.cpp:414emitEvent|媒体注册:fmp4__defaultVhost__livetest

可以看到几个媒体注册的消息,同时支持rtsp、rtmp、hls等协议,现在可以另一台机器上开个播放器播放了,像vlc、ffplay都可以,播放的url是

rtsp://192.168.1.140/live/test\nrtmp://192.168.1.140/live/test\nhttp://192.168.1.140/live/test/hls.m3u8

其中192.168.1.140是开启视频服务的机器IP地址

hls默认端口是80,我这里由于冲突,已经将配置文件config.ini中的端口改成了8080,这个ini文件也是视频服务器的配置文件,可以根据自己的实际情况进行修改

使用rtmp方式推流

ffmpeg-re-itest.mp4-vcodech264-acodecaac-fflvrtmp://127.0.0.1/live/test\n\n#RTMP标准不支持H265,但是国内有自行扩展的,如果你想让ffmpeg支持RTMP-H265,需要重新编译ffmpeg,可以参考:https://github.com/ksvc/FFmpeg/wiki/hevcpush

ffmpeg推流成功后,服务器端产生的url与上面的rtsp推流方式类似,这里不再赘述

使用rtp方式推流

ffmpeg-re-itest.mp4-vcodech264-acodecaac-frtp_mpegtsrtp://127.0.0.1:10000

ffmpeg推送后,服务器端输出了对应流的ID

拿到了这个ID后,这时候就可以拼接url进行播放了,如

rtmp://192.168.1.140/rtp/C20C27F2\nrtsp://192.168.1.140/rtp/C20C27F2\nhttp://192.168.1.140:8080/rtp/C20C27F2/hls.m3u8

如果你对音视频开发感兴趣,或者对本文的一些阐述有自己的看法,可以在下方的留言框,一起探讨。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平