CN114173205A - 一种在小程序上播放rtsp音视频流的方法 - Google Patents

一种在小程序上播放rtsp音视频流的方法 Download PDF

Info

Publication number
CN114173205A
CN114173205A CN202111480819.9A CN202111480819A CN114173205A CN 114173205 A CN114173205 A CN 114173205A CN 202111480819 A CN202111480819 A CN 202111480819A CN 114173205 A CN114173205 A CN 114173205A
Authority
CN
China
Prior art keywords
stream
nginx
audio
rtsp
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111480819.9A
Other languages
English (en)
Inventor
董锴
杨舟
陈磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beizhi Intelligent Data Operation Co ltd
Original Assignee
Beizhi Intelligent Data Operation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beizhi Intelligent Data Operation Co ltd filed Critical Beizhi Intelligent Data Operation Co ltd
Priority to CN202111480819.9A priority Critical patent/CN114173205A/zh
Publication of CN114173205A publication Critical patent/CN114173205A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种在小程序上播放RTSP音视频流的方法,涉及互联网流媒体技术领域,解决了现有视频播放方案只能应用于浏览器中,无法用在小程序中且难以支撑大批量用户同时看音视频直播的问题问题,包括以下步骤:步骤1:部署两台或两台以上Linux服务器,搭建Nginx流媒体服务器集群;步骤2:部署一台Linux服务器,基于FFmpeg搭建FFmpeg流媒体转换服务器;步骤3:用户使用微信小程序对Nginx流媒体服务器集群进行RTMP拉流成功后自动播放,本发明一种在小程序上播放RTSP音视频流的方法提供一种能够在微信小程序上播放,且能支撑大批量用户同时看音视频直播的方法,具有巨大的实际应用价值。

Description

一种在小程序上播放RTSP音视频流的方法
技术领域
本发明涉及互联网流媒体技术领域,更具体的是涉及一种在小程序上播放RTSP音视频流的方法。
背景技术
随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在发生变革,5G的商用以及移动手持设备硬件性能的提升,使得在用户手机上播放实时音视频成为可能,微信小程序是一种用户不需要下载安装即可使用的移动应用,实现了应用“触手可及”的梦想。在实际应用中,音视频厂商普遍提供的是对RTSP协议的支持,但在微信小程序中,播放实时音视频流目前仅支持flv、RTMP协议。
专利CN107197386A公开了一种无客户端的跨平台视频播放实现方法,步骤包括:1、客户端向流媒体服务器发起视频请求;2、流媒体服务器对Web客户端请求进行解析处理;3、Web客户端向流媒体服务器发起HTTP请求;4、流媒体服务器通过HTTP协议传递特定视频分片至Web客户端;5、Web客户端解析视频分片内容并播放;服务端只需将原始视频流按照MPEG-DASH规范打包处理,客户端无需单独实现解码;用户仅借助浏览器,无需安装特定客户端或第三方插件,即可在Windows、Linux、Android、iOS等不同平台下完成视频的调阅,安装部署简单,用户体验度高。
但其方法只能应用于浏览器中,无法运用微信小程序实现“触手可及”的梦想,另外此方法没有提到集群,难以支撑大批量用户同时观看音视频直播,因此,研究一种让RTSP协议的音视频流能够在微信小程序上播放,且能支撑大批量用户同时看音视频直播的方法,具有巨大的实际应用价值。
发明内容
本发明的目的在于:为了解决现有视频播放方案只能应用于浏览器中,无法用在小程序中且难以支撑大批量用户同时看音视频直播的问题,本发明提供一种在小程序上播放RTSP音视频流的方法。
本发明为了实现上述目的具体采用以下技术方案:
一种在小程序上播放RTSP音视频流的方法,包括以下步骤:
步骤1:部署两台或两台以上Linux服务器,所述Linux服务器均安装有Nginx,搭建Nginx流媒体服务器集群,其中一台Linux服务器作为Nginx负载均衡器,作为集群代理,其他Linux服务器作为Nginx流媒体服务器,所述Nginx流媒体服务器还安装带有带监听端口的第三方模块nginx-rtmp-module,接收RTMP拉流和推流请求;
步骤2:部署一台Linux服务器,基于FFmpeg搭建FFmpeg流媒体转换服务器,将原始RTSP音视频流处理转换后以RTMP协议推流到Nginx流媒体服务器集群;
步骤3:用户使用微信小程序作为客户端,通过调用live-player组件对Nginx流媒体服务集群进行RTMP拉流,拉流成功后自动播放。
进一步地,步骤1中部署四台或四台以上Linux服务器。
进一步地,步骤1中的Nginx流媒体服务器在第三方模块nginx-rtmp-module中开启application live。
进一步地,步骤2中对原始RTSP音视频流处理转换的具体步骤如下:
步骤21:FFmpeg通过-rtsp_transport tcp输入参数指定以TCP的方式对原始RTSP音视频流进行拉流;
步骤22:FFmpeg通过-i输入参数指定原始RTSP音视频流地址;
步骤23:FFmpeg通过缺省的解码格式,即由FFmpeg自行判断原始RTSP音视频流的编码格式,将原始RTSP视频解码为像素数据,将原始RTSP音频解码为采样数据;
步骤24:FFmpeg通过-vcodec输出参数将像素数据编码为指定格式的目标视频码流,通过-acodec输出参数将采样数据编码为指定格式的目标音频码流;
步骤25:FFmpeg通过-f flv输出参数将目标视频码流和目标音视码流封装为flv格式;
步骤26:对flv格式的封装,FFmpeg通过tee协议输出多路流,再以RTMP协议推流到Nginx流媒体服务器集群。
进一步地,步骤23中原始RTSP音视频流的编码与转换后的视频编码相同,则无需解码后再编码。
进一步地,步骤3中调用live-player组件的具体步骤如下:
步骤31:设置src参数,指向Nginx流媒体服务器集群地址,进行RTMP拉流;
步骤32:设置mode参数为RTC;
步骤33:设置autoplay参数为开启。
本发明的有益效果如下:
1.本发明能让RTSP协议的音视频流能够在微信小程序上播放,实际应用中,音视频厂商普遍提供的是对RTSP协议的支持,但在微信小程序中,播放实时音视频流目前仅支持flv、RTMP协议,因此本发明通过部署一台Linux服务器,基于FFmpeg搭建FFmpeg流媒体转换服务器,对原始RTSP音视频流解码后重新编码为指定格式的目标音视频码流,再将目标视频码流和目标音视码流封装为flv格式,通过tee协议输出多路流,以RTMP协议推流到Nginx流媒体服务器集群,用户使用微信小程序作为客户端,通过调用live-player组件对Nginx流媒体服务器集群进行RTMP拉流,拉流成功后即可自动播放。
2.本发明能支撑大批量用户同时看音视频直播,本发明部署两台或两台以上Linux服务器,搭建Nginx流媒体转换服务器集群,集群***控制器能把有限的信道动态地、自动地最佳分配给***的所有用户,为***的全体用户共用,具有自动选择信道功能,其中一台服务器作为Nginx负载均衡器,作为集群代理,接收到客户端RTMP拉流请求后根据客户端IP地址的Hash值决定最终请求到哪台Nginx流媒体服务器。
附图说明
图1是本发明的工作流程示意图;
图2是本发明的Nginx流媒体服务器集群示意图;
图3是本发明的FFmpeg流媒体转换服务器示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明一种在小程序上播放RTSP音视频流的方法,如图1所示,包括以下步骤:
步骤1:部署两台或两台以上Linux服务器,所述Linux服务器均安装有Nginx,搭建Nginx流媒体服务器集群,其中一台Linux服务器作为Nginx负载均衡器,作为集群代理,其他Linux服务器作为Nginx流媒体服务器,所述Nginx流媒体服务器还安装带有带监听端口的第三方模块nginx-rtmp-module,接收RTMP拉流和推流请求;
如图2所示,部署四台Linux服务器,搭建Nginx流媒体服务器集群,Nginx是一款自由的、开源的、高性能的反向代理服务器,可以用于反向代理进行负载均衡的实现。
其中一台服务器作为Nginx负载均衡器,通过Nginx的server模块配置对外的代理端口,用于接收到客户端RTMP拉流请求,再对集群配置转发策略:hash$remote_addrconsistent,即根据客户端IP地址的Hash值决定最终请求到哪台Nginx流媒体服务器。
其他三台服务器作为Nginx流媒体服务器,使用Nginx的stream模块,将这三台服务器的IP及RTMP端口配置到一个组,这样就实现了将这三台服务器加入到Nginx流媒体服务器集群,所述Nginx流媒体服务器配置带有监听端口的第三方模块nginx-rtmp-module,在nginx-rtmp-module模块中开启application live后,会指定一个路径application/live,对这个路径下的请求进行监听,接收RTMP推流和拉流请求。
集群***控制器能把有限的信道动态地、自动地最佳分配给***的所有用户,为***的全体用户共用,具有自动选择信道功能。
Nginx流媒体服务器配置带有监听端口的第三方模块nginx-rtmp-module,有两个作用:
1)接收FFmpeg的RTMP音视频推流;
2)对小程序的RTMP推流请求作出响应。
步骤2:部署一台Linux服务器,基于FFmpeg搭建FFmpeg流媒体转换服务器,将原始RTSP音视频流处理转换后以RTMP协议推流到Nginx流媒体服务器集群;
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。在实际应用中,音视频厂商普遍提供的是对RTSP协议的支持,但在微信小程序中,播放实时音视频流目前仅支持flv、RTMP协议,因此本发明通过部署一台Linux服务器,基于FFmpeg搭建FFmpeg音视频转换服务,对原始RTSP音视频流处理转换后以RTMP协议推流到Nginx流媒体服务器集群。
步骤3:用户使用微信小程序作为客户端,通过调用live-player组件对流媒体服务集群进行RTMP拉流,拉流成功后自动播放;
调用live-player组件的具体步骤如下:
步骤31:设置src参数,指向Nginx流媒体服务器集群地址,进行RTMP拉流;
步骤32:设置mode参数为RTC,采用RTC模式播放,时延较低;
步骤33:设置autoplay参数为开启。
实施例2
如图3所示,对原始RTSP音视频流处理转换的具体步骤如下:
步骤21:FFmpeg通过-rtsp_transport tcp输入参数指定以TCP的方式对原始RTSP音视频流进行拉流;
步骤22:FFmpeg通过-i输入参数指定原始RTSP音视频流地址;
步骤23:FFmpeg通过缺省的解码格式,即由FFmpeg自行判断原始RTSP音视频流的编码格式,将原始RTSP视频解码为像素数据,将原始RTSP音频解码为采样数据;
步骤24:FFmpeg通过-vcodec输出参数将像素数据编码为指定格式的目标视频码流,通过-acodec输出参数将采样数据编码为指定格式的目标音频码流;
步骤25:FFmpeg通过-f flv输出参数将目标视频码流和目标音视码流封装为flv格式;
步骤26:对flv格式的封装,FFmpeg通过tee协议输出多路流,再以RTMP协议推流到Nginx流媒体服务器集群。
如果满足下列条件,则可以简化解码、编码的过程,进而提升转换效率:
1.如果原始RTSP流的视频编码与转换后RTMP流的视频编码相同,则可以通过FFmpeg的-vcodec copy参数以拷贝的方式完成视频转换,无需解码后再编码。
2.如果原始RTSP流的音频编码与转换后RTMP流的音频编码相同,则可以通过FFmpeg的-acodec copy参数以拷贝的方式完成音频转换,无需解码后再编码。

Claims (6)

1.一种在小程序上播放RTSP音视频流的方法,其特征在于,包括以下步骤:
步骤1:部署两台或两台以上Linux服务器,所述Linux服务器均安装有Nginx,搭建Nginx流媒体服务器集群,其中一台Linux服务器作为Nginx负载均衡器,作为集群代理,其他Linux服务器作为Nginx流媒体服务器,所述Nginx流媒体服务器还安装带有带监听端口的第三方模块nginx-rtmp-module,接收RTMP拉流和推流请求;
步骤2:部署一台Linux服务器,基于FFmpeg搭建FFmpeg流媒体转换服务器,将原始RTSP音视频流处理转换后以RTMP协议推流到Nginx流媒体服务器集群;
步骤3:用户使用微信小程序作为客户端,通过调用live-player组件对Nginx流媒体服务集群进行RTMP拉流,拉流成功后自动播放。
2.根据权利要求1所述的一种在小程序上播放RTSP音视频流的方法,其特征在于,步骤1中部署四台或四台以上Linux服务器。
3.根据权利要求1所述的一种在小程序上播放RTSP音视频流的方法,其特征在于,步骤1中的Nginx流媒体服务器在第三方模块nginx-rtmp-module中开启application live。
4.根据权利要求1所述的一种在小程序上播放RTSP音视频流的方法,其特征在于,步骤2中对原始RTSP音视频流处理转换的具体步骤如下:
步骤21:FFmpeg通过-rtsp_transport tcp输入参数指定以TCP的方式对原始RTSP音视频流进行拉流;
步骤22:FFmpeg通过-i输入参数指定原始RTSP音视频流地址;
步骤23:FFmpeg通过缺省的解码格式,即由FFmpeg自行判断原始RTSP音视频流的编码格式,将原始RTSP视频解码为像素数据,将原始RTSP音频解码为采样数据;
步骤24:FFmpeg通过-vcodec输出参数将像素数据编码为指定格式的目标视频码流,通过-acodec输出参数将采样数据编码为指定格式的目标音频码流;
步骤25:FFmpeg通过-f flv输出参数将目标视频码流和目标音视码流封装为flv格式;
步骤26:对flv格式的封装,FFmpeg通过tee协议输出多路流,再以RTMP协议推流到Nginx流媒体服务器集群。
5.根据权利要求4所述的一种在小程序上播放RTSP音视频流的方法,其特征在于,步骤23中原始RTSP音视频流的编码与转换后的视频编码相同,则无需解码后再编码。
6.根据权利要求1所述的一种在小程序上播放RTSP音视频流的方法,其特征在于,步骤3中调用live-player组件的具体步骤如下:
步骤31:设置src参数,指向Nginx流媒体服务器集群地址,进行RTMP拉流;
步骤32:设置mode参数为RTC;
步骤33:设置autoplay参数为开启。
CN202111480819.9A 2021-12-06 2021-12-06 一种在小程序上播放rtsp音视频流的方法 Pending CN114173205A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111480819.9A CN114173205A (zh) 2021-12-06 2021-12-06 一种在小程序上播放rtsp音视频流的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111480819.9A CN114173205A (zh) 2021-12-06 2021-12-06 一种在小程序上播放rtsp音视频流的方法

Publications (1)

Publication Number Publication Date
CN114173205A true CN114173205A (zh) 2022-03-11

Family

ID=80483508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111480819.9A Pending CN114173205A (zh) 2021-12-06 2021-12-06 一种在小程序上播放rtsp音视频流的方法

Country Status (1)

Country Link
CN (1) CN114173205A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019019370A1 (zh) * 2017-07-24 2019-01-31 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端
CN111324462A (zh) * 2020-02-20 2020-06-23 杭州梦视网络科技有限公司 一种具有Web负载均衡技术的***及方法
CN112822435A (zh) * 2019-11-15 2021-05-18 中兴通讯股份有限公司 一种用户可轻松接入的安防方法、装置及***
CN113110933A (zh) * 2021-03-11 2021-07-13 浙江工业大学 一种具有Nginx负载均衡技术的***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019019370A1 (zh) * 2017-07-24 2019-01-31 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端
CN112822435A (zh) * 2019-11-15 2021-05-18 中兴通讯股份有限公司 一种用户可轻松接入的安防方法、装置及***
CN111324462A (zh) * 2020-02-20 2020-06-23 杭州梦视网络科技有限公司 一种具有Web负载均衡技术的***及方法
CN113110933A (zh) * 2021-03-11 2021-07-13 浙江工业大学 一种具有Nginx负载均衡技术的***

Similar Documents

Publication Publication Date Title
US10250664B2 (en) Placeshifting live encoded video faster than real time
EP3000215B1 (en) Live media processing and streaming service
CN112073423A (zh) 基于WebRTC进行浏览器推流的方法及***
CN102118428B (zh) 一种播放流媒体的方法和***
KR101821123B1 (ko) 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치
CN107197386B (zh) 一种无客户端的跨平台视频播放实现方法
CN112839238B (zh) 投屏播放方法、装置和存储介质
CN101115185B (zh) Iptv中用于第三方实现音视频播放的装置及其方法
US10958703B2 (en) Processing of live multimedia content over a communication network
US8817983B2 (en) Streaming video to cellular phones
WO2015192683A1 (zh) 一种基于码流自适应技术的内容分发方法、装置及***
KR101821124B1 (ko) 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치
CN107276990B (zh) 一种流媒体直播方法及装置
CN107547517B (zh) 音视频节目录制方法和网络设备及计算机装置
CN114025191B (zh) 一种基于Nginx-rtmp的webrtc低延迟直播方法及***
US9871840B2 (en) Electronic apparatus and method for transferring contents on cloud system to device connected to DLNA
CN111711870B (zh) 一种跨网络边界的实时流传输方法
CN101335851A (zh) 一种可以通过网络观看视频直播的网络电视接收机
CN113132194A (zh) 一种信息流转方法、装置、设备、服务器及存储介质
CN114173205A (zh) 一种在小程序上播放rtsp音视频流的方法
CN115150642B (zh) 通信方法、服务器、电子设备和存储介质
CN112073727B (zh) 转码方法、装置、电子设备及存储介质
CN101242527A (zh) 分布式实时播放方法与装置
CN114866842A (zh) 一种Web视频的预览方法、设备及介质
CN113556612A (zh) 一种浏览器上播放h.265视频流的方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20220311

RJ01 Rejection of invention patent application after publication