项目08 流媒体直播和点播服务的架设_第1页
项目08 流媒体直播和点播服务的架设_第2页
项目08 流媒体直播和点播服务的架设_第3页
项目08 流媒体直播和点播服务的架设_第4页
项目08 流媒体直播和点播服务的架设_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows

Server2019网络组建项目化教程课程标准(教学大纲)教学设计方案(教案)PPT电子课件教材习题参考答案模拟试卷及参考答案(4套)主编:夏笠芹

“十二五””十三五”职业教育国家规划教材教材资源清单资源下载地址:/classification.asp?sid=126

随着宽频时代的到来,“宽频KTV、影音聊天室、线上电影院、远程教育和视频监控系统”的应用越来越广泛。使得公司的宣传网站也需要大批量的视频资料展示给用户访问收看。项目背景项目8流媒体直播和点播服务的架设知识目标了解:流媒体的概念,主流的流媒体技术产品熟悉:流媒体的传输协议、发布方式,流媒体应用系统的组成掌握:使用nginx搭建流媒体服务器,创建直播和点播应用项目,在推流端计算机上使用ffmpeg完成录像直播和现场直播的推送,在客户端使用VLC访问流媒体直播和点播视频。能力目标会使用nginx搭建流媒体服务器,完成直播、点播配置会在推流端计算机上使用ffmpeg完成录像直播和现场直播的推送能在客户端上使用VLC访问直播、点播视频教学目标项目8流媒体直播和点播服务的架设8.2

项目知识准备

流媒体:应用流技术在网络上传输的多媒体文件流技术:是把连续的影像和声音信息经过压缩处理后放到网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器后才可以观看的网络传输技术。流媒体技术广泛应用于:在线直播、视频点播、语音聊天、视频监控、远程教育、网络广告、远程医疗、网络电台、视频会议等8.2.1

什么是流媒体8.2

项目知识准备RTP(实时传输协议)RTCP(实时传输控制协议)RTSP(RealTimeStreamingProtocol,实时流媒体协议)RSVP(ResourceReserveProtoco,资源预订协议)8.2.2流媒体传输协议8.2

项目知识准备1.流媒体的播放方式根据客户端与媒体服务器之间谁发起链接,流媒体的播放方式有:点播:点播连接时,客户端主动发起与服务器连接,允许用户控制媒体流的播放,比如:用户能够对媒体进行开始、停止、后退、快进或暂停等操作。点播连接提供了对流的最大控制,但是这种方式由于每个客户端各自连接服务器,服务器需要给每个用户建立连接,对服务器负荷和网络带宽的需求都比较大。广播:指的是用户被动接受流。在广播过程中,客户端只能被动接收,不具备交互性,因而也就不能控制流。例如,用户不能暂停、快进和后退。广播方式中数据包的单独一个拷贝将发送给网络上的所有用户。8.2.3流媒体的发布方式与处理流程2.流媒体的传输方式:单播:单播发送时,客户端与服务器之间要建立一条单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。单播传输可以用在点播播放方式和广播播放方式上。广播:网络对其中每一台服务器发出的信号都进行无条件复制并转发,所有客户机都可以接收到所有信息(不管你是否需要)。有线电视网就是典型的广播型网络,防止广播数据影响大面积的计算机,一般只在一个子网中使用。组播(多播):组播发送时,服务器将一组客户请求的流媒体数据发送到支持组播技术的路由器上,然后由路由器一次将数据包根据路由表复制到多个通道上,再向用户发送,属于一对多连接。这时候,媒体服务器只需要发送一个信息包,所有发出请求的客户端都共享同一信息包。组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。但组播不仅需要服务器端支持,更需要有多播路由器乃至整个网络结构的支持。组播传输方式一般只能用作广播播放方式,因为用作点播会存在用户控制问题。8.2.3流媒体的发布方式与处理流程8.2.3流媒体的发布方式与处理流程3.流媒体的处理流程:主要包含以下环节:采集→编码→推流→转码→拉流→解码采集:通过摄像机、网络摄像头和麦克风等设备直接采集音视频数据。编码:由于采集到的原始音视频的体积非常大,为了便于视频的传输(推流、拉流)以及存储,需要经过压缩技术来处理,以降低视频的大小来提高视频的存储和传输效率,编码的核心是在分辨率、码率、帧率等参数中找到最佳平衡点,达到体积最小画面最优的效果。推流:把音视频数据使用传输协议进行封装,变成流数据,通过一定的算法将音视频流数据推送到流媒体服务器(集群)进行分发。转码:为了能适配不同网络和分辨率的终端设备的播放,服务端需要对媒体流进行不同格式的编码转换。拉流:是指用户端通过播放器从服务器拉取音视频流到客户端的过程。解码/播放:它是编码的逆过程,是指从压缩编码过的音视频数据中提取还原为原始数据(提取后的原始数据,并非原始采样数据,存在一定的信息丢失)。8.2

项目知识准备推流端/主播端:通常由一台普通计算机、一块音视频采集卡和流媒体编码软件组成。音视频采集卡负责将音视频信息源输入到计算机,供编码软件处理。编码软件负责将音视频采集卡传送过来的数字音视频信号压缩成流媒体格式,如需直播,它还负责实时地将压缩好的流媒体转换成音视频流并推送至流媒体服务器。媒体存储及内容检索系统。服务器:负责管理、存储、发布编码器传上来的流媒体节目。网络与协议:适合流媒体传输协议或实时传输协议的网络。客户端/拉流端:供客户访问流媒体文件的播放器等。8.2.4流媒体应用系统的组成8.2

项目知识准备8.2.5主流的流媒体技术产品

公司类别AppleMicrosoftRealNetworksAdobe服务端QuickTimeStreamingServerDarwinStreamingServerIISMediaServicesWindowsMediaServerHelixServerRealServerAdobeMediaServe编码、编辑工具QuickTmieProExpressionEncoder4WindowsMediaRealproducerRealSlideShow等AdobePremiereProAdobeAfterEffects客户端播放器或解码器QuickTimePlayerWindowsMediaPlayerSilverlight插件RealPlayerAdobeFlashPlayer支持的流文件格式.mov、.qt.asf、.wma、.wav、.avi、.wmv.ra、.rm、.rmvb.swf、.flv、.f4v支持协议rtp、rtcp、rtsphttp、mmsrtp、rtcp、rtsprtmp(rtmpt/rtmpe/rtmps)表8-1常用商业公司的流媒体技术产品8.2

项目知识准备8.2.5主流的流媒体技术产品表8-2常用开源流媒体技术产品类别常用产品典型产品介绍主播端/推流端PC端:FFmpeg、OpenBroadcasterSoftware(OBS)、iAVcast、800LiEducationPodcast手机端:Yasea、EasyRTMPFFmpeg:对音视频进行编码、转码、提取、合并、截取、拼接、截图、加水印、滤波、播放和流化。市面上大量的播放器和转码工具都是以其为内核进行的二次开发服务器端nginx和nginx-rtmp-module流媒体插件、SRS、Red5、DarwinStreamingServer(Apple公司)、EasyDarwin(国内基于DarwinStreamingServer二次开发的,有中文支持网站)、Live555、sewise、FreeCast、Wowzanginx(发音同enginex)是一款开源且跨平台,支持高性能,高并发的Web服务、反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务软件。通过第三方的nginx-rmtp-module流媒体插件,使Nginx服务器扩展成rtmp流媒体服务器客户端/播放器PC端:VLCmediaplayer、bomi(CMPlayer)、DeepinMovie、ExMplayer、Gnome、Miro、SMPlayer、Rhythmbox、Audacious、Spotify手机端:Vitamio、ijkplayerVLCmediaplayer:是一款跨平台(有Linux、Windows、MacOS、BeOS、BSD、PocketPC及Solaris多个版本)多媒体播放器及框架,可播放大多数多媒体文件,以及DVD、音频CD、VCD及各类流媒体协议任务8-1使用nginx和rtmp搭建流媒体服务器1.Nginx和nginx-rmtp-module的下载与安装步骤1:

在nginx官网上下载的nginx是不带rtmp模块的,可由地址http://nginx-win.ecsds.eu/download进入nginx下载页面→下载其中的nginxGryphon文件(该版本的nginx包含rtmp组件,通过rtmp组件,才能提供流媒体服务)和vcredist_x86.exe文件1.Nginx和nginx-rmtp-module的下载与安装步骤2:将下载后的nginxGryphon.zip文件进行解压→将解压后的目录放置适合的位置(如:E盘中)并重命名为“nginx”→双击下载的文件vcredist_x86.exe→按提示完成安装,如图8-4所示。任务8-1使用nginx和rtmp搭建流媒体服务器1.Nginx和nginx-rmtp-module的下载与安装步骤3:进入E:\nginx\conf目录,将配置文件nginx-win.conf更名为nginx.conf。步骤4:同时按下【+R】组合键→在弹出【运行】对话框的【打开】编辑框中输入cmd→单击【确定】按钮→打开【cmd.exe】命令行窗口,依次执行“e:”和“cdnginx”命令使系统进入到E盘的nginx目录→执行“nginx-v”命令检测安装是否成功→执行“startnginx”命令,以载入缺省的./conf/nginx.conf配置文件来启动nginx,如图8-5所示。任务8-1使用nginx和rtmp搭建流媒体服务器1.Nginx和nginx-rmtp-module的下载与安装步骤5:测试。在浏览器地址栏中输入nginx所在电脑的IP地址(如,),若能显示如图8-6所示,则表示nginx启动成功。任务8-1使用nginx和rtmp搭建流媒体服务器2.下载与安装服务器状态检查程序步骤1:由地址/arut/nginx-rtmp-module进入nginx-rtmp-module-master下载页面→单击【Cloneordwonload】下拉按钮→在弹出的下拉页面中单击【DownloadZIP】开始下载,如图8-7所示。任务8-1使用nginx和rtmp搭建流媒体服务器2.下载与安装服务器状态检查程序步骤1:下载完成后,将下载的文件nginx-rtmp-module-master.zip解压后复制到nginx目录下,如图8-8所示。任务8-1使用nginx和rtmp搭建流媒体服务器任务8-2推流端工具ffmpeg的安装与使用1.ffmpeg的下载与安装步骤1:进入ffmpeg官网→单击【download】按钮→在打开的新页面中选择【Windows】版本→单击【WindowsbuildsbyZeranoe】,如图8-9所示。任务8-2推流端工具ffmpeg的安装与使用1.ffmpeg的下载与安装步骤2:打开【FFmpegBuilds】页面,在版本号中选择第一个稳定版(如:4.2.3)→根据计算机CPU的位数选32位或64位版本→在分发形式上选择【Static】→单击【DownloadBuild】,如图8-10所示。任务8-2推流端工具ffmpeg的安装与使用1.ffmpeg的下载与安装步骤3:将下载的ffmpeg-4.2.3-win64-static.zip文件解压到适合的位置(如:E:\ffmpeg)→进入解压后的ffmpeg文件夹→进入bin子文件夹→将ffmpeg.exe的路径“E:\ffmpeg\bin”进行复制,如图8-11所示。任务8-2推流端工具ffmpeg的安装与使用1.ffmpeg的下载与安装步骤4:在桌面上鼠标右击【此电脑】→选择【属性】→依次单击【高级系统设置】→【环境变量】→在【系统变量】显示框中找到并选择变量【path】→单击【编辑】按钮→在现有变量值后增加“分号”并将ffmpeg.exe的路径“E:\ffmpeg\bin”添加其后→连续三次单击【确定】按钮以保存修改后的内容,如图8-12所示。任务8-2推流端工具ffmpeg的安装与使用1.ffmpeg的下载与安装步骤4:ffmpeg验证。同时按下【

+R】组合键→在弹出【运行】对话框的【打开】编辑框中输入cmd→单击【确定】按钮→在打开的【cmd.exe】命令行窗口中,执行“ffmpeg-version”后,若出现如图8-13所示的提示,即表示ffmpeg安装配置成功。任务8-2推流端工具ffmpeg的安装与使用2.ffmpeg命令的简单使用ffmpeg命令的一般格式:ffmpeg输入格式控制符

输入的文件/设备/地址输出格式控制符

输出的文件/设备/地址说明:●命令的各个语法单位之间一定要用一个以上空格隔开。●若使用的符号有歧义时,应当用单引号或双引号括起来(如文件路径、设备名称中有空格等字符时,应该把路径名或设备名用引号括起来)。●当格式控制符没有出现时,系统会用ffmpeg预设的值对格式进行控制。●若要终止正在执行的命令,可以按“q”键,这样被操作的文件才能安全释放。任务8-2推流端工具ffmpeg的安装与使用2.ffmpeg命令的简单使用表8-3常用参数说明类别参数作用参数作用主要参数-i设定输入流-f设定输出格式-ss开始时间-t持续时间视频参数-vframes设定要输出的视频帧数-b:v视频码率-b设定视频的码率,默认为200Kbit/s-r设定帧速率,默认为25-aspect设定画面的纵横比例,如4:3、16:9或1.3333、1.7777-vn不处理视频(去掉视频)-vcodec设定视频编解码器,未设定时则使用与输入流相同的编解码器,后面若为copy表示用原来的编解码方式,即不重新编码;常用的编码格式有libx264-s设定画面的宽与高,即分辨率控制-vf视频过滤器-g关键帧间隔控制音频参数-aframes设定要输出音频帧数-ar设定采样率-acodec设定音频编解码器,未设定时则使用与输入流相同的编解码器,后面若为copy表示用原来的编解码方式,即不重新编码-an不处理音频(去掉音频)-b:a音频码率-ac设定声音的Channel数-af音频过滤器

任务8-2推流端工具ffmpeg的安装与使用2.ffmpeg命令的简单使用ffmpeg-ivideo.avi //查看本地的视频信息ffmpeg-i/2022/20220112.f4v.mp4 //查看远程http视频信息(1)获取视频信息(3)视频转码ffmpeg-itest2.avi-vcodeccopy-anoutput2.avi //分离视频流(提取视频)ffmpeg-itest2.avi-acodeccopy-vnoutput2.wav //分离音频流(提取音频)ffmpeg-iinput.mp4-anoutput.mp4 //去掉视频中的音频fmpeg-itest.h264-vcodeccopy-fmpegtsoutput3.ts //h264视频转ts视频流ffmpeg-itest.h264-vcodeccopy-fmp4output3.mp4 //h264视频转mp4ffmpeg-itest.mp4-b:v640koutput3.flv //mp4转flvffmpeg-ivideo_file4-iaudio_file-vcodeccopy-acodeccopyoutput_file4(2)分离视频音频流(4)视频封装任务8-2推流端工具ffmpeg的安装与使用2.ffmpeg命令的简单使用ffmpeg-ss0:1:30-t0:0:20-iinput5.avi-vcodeccopy-acodeccopyoutput5.avi(5)视频剪切(7)视频解复用ffmpeg-itest6.avi-r1-fimage2image-%6d.jpegffmpeg–itest.mp4–vcodeccopy–an–fm4vtest.264ffmpeg–itest.avi–vcodeccopy–an–fm4vtest.264ffmpeg-irtmp://server/live/streamName-ccopydump8.flvffmpeg-irtsp://:5555/test-vcodeccopyoutput8.avi(6)提取图片(8)将直播媒体保存至本地文件(视频录制)任务8-3视频直播的配置与访问2.ffmpeg命令的简单使用1.录像直播录像直播就是将本地已有的音视频文件当做直播内容推送到流媒体服务器,如:将媒体文件“公司宣传片.mp4”推送到nginx流媒体服务器的操作步骤如下:步骤1:按照任务8-1的步骤安装和启动nginx媒体服务器。步骤2:在服务器端,进入E:\nginx\conf目录→使用记事本打开主配置文件nginx.conf,在其中添加媒体处理的内容如下:worker_processes2; #第4行:Nginx的进程数,一般设置为CPU的总核数worker_connections8192; #第14行:工作模式与连接数上限…… #省略若干行#添加以下各行:rtmp{server{listen1935; #监听端口,若被占用,可以更改

chunk_size4000; #数据传输块的大小

applicationlive{ #创建一个叫live的应用

liveon; #开启live应用

allowpublish; #允许发布视频的主机的IP地址

allowplayall;}}}1.录像直播步骤3:进入Windows的cmd命令行窗口→进入E:\nginx\conf目录→执行“nginx-t”命令以检测nginx的配置文件是否正确,当输出如下信息时,表示配置文件nginx.conf正确→nginx-sreload,重载nginx服务,使修改后的配置文件生效,如图8-14所示。任务8-3视频直播的配置与访问1.录像直播步骤4:在主播端/推流端中准备好被推流的媒体文件(如,公司宣传片.mp4)→进入Windows的cmd命令行窗口→进入媒体文件所在的磁盘和目录(如,E:\live)→执行推流命令:ffmpeg-re-i公司宣传片.mp4-vcodeclibx264-acodecaac-fflvrtmp://:1935/live/test1,如图8-15所示。任务8-3视频直播的配置与访问1.录像直播步骤4:拉流测试。在客户端启动VLC播放器→选择【媒体】→【打开网络串流】→单击【网络】选项卡→在【请输入网路URL】编辑框中输入“rtmp://:1935/live/test1”地址→单击【播放】按钮就可以看到播放的视频了,如图8-16所示。任务8-3视频直播的配置与访问2.现场直播所谓现场直播就是通过现场架设的录音录像设备对现场采集的实况信息进行实时直播。其实现的步骤如下:步骤1:在主播端/推流端将带麦克风的USB摄像头(USB摄像头不限牌子)插入计算机的USB接口→进入命令行窗口→执行查看设备命令:ffmpeg-list_devicestrue-fdshow-idummy,如图8-17所示。任务8-3视频直播的配置与访问2.现场直播步骤2:在主播端/推流端将现场音视频信息推送到服务器,其执行命令如下:ffmpeg-fdshow-ivideo="USB2.0PCCAMERA":audio="麦克风(USB2.0MIC)"-vcodeclibx264-acodeccopy-preset:vultrafast-tune:vzerolatency-fflv"rtmp:///live/test2"步骤3:与录像直播类似,在客户端使用VLC播放器,通过输入“rtmp://:1935/live/test2”地址观看现场直播,如图8-18所示。任务8-3视频直播的配置与访问步骤1:在服务器端进入nginx文件夹的conf目录下→使用记事本打开主配置文件nginx.conf→在其中添加实现点播功能的applicationvod{…}配置模块如下:任务8-4视频点播的配置与访问worker_processes2; #第4行:Nginx的进程数,一般设置为CPU的总核数worker_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论