论文部分内容阅读
【摘要】2016年是网络直播元年,自此之后各行业的云直播遍地开花,从网红直播带货,到博物馆、景点的24小时慢直播,再到广电突破电视大屏全面挺进手机等移动互联网,网络直播依托互联网宽带资源,采用流媒体视频压缩技术,将拍摄、录制的音视频信号经过一系列的编码压缩处理,再互联网上实时播放,网友足不出户可以再网上“浏览”各地美景,看遍电视节目。
【关键词】 流媒体;网络直播;技术问题
中图分类号:TN94 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.15.045
1. 网络直播的方式和特点
从直播的方式可以分为图文直播、音频直播和视频直播。图文直播利用直播平台将现场的各种发言、表述等内容通过图片、文字实时直播出来。音频直播主要实时传播活动的声音,也兼有图片文字的描述。视频直播就是依托互联网将现场的视频、声音、图片、文字等组合形成网络现场直播。
网络直播有别于电视直播,相对于电视直播的单一性、严肃性、复杂性、专项性等特点,网络直播最主要的特点就是主体多样化,同时网络直播以成本低,内容广泛,播出时间自由,并且兼具网络本身所具有的互动性,更加贴近观众,另外,与电视直播不同的是,因网络存储空间不限,从而使得网络直播后能够更加方便的点播,更加有效、立体的达成宣传效果。
2. 网络直播系统的组成
网络直播系统其实就是各种信号通过流媒体技术在网络上进行直播、录播、点播,各个终端用户通过访问指定的直播页面,来访问向服务器请求的节点,从而取得流媒体数据,达到观看直播的相关音视频内容。
直播系统完整的工作流程如图1所示:广播、电视、卫星等信号通过采集设备进行采集,一般来说是音视频信号传递给编码器,通过编码器的压缩、编码等一系列的操作转换成适合网络传播的流媒体信号,将流媒体信号传递给流媒体直播服务器,最终信号通过网络传输给各个终端用户,网络直播中两个核心组成部分就是直播服务器和编码设备。
3. 工作中出现的网络直播问题
直播服务器选用开源的wowza软件,推流编码设备采用OBS Studio等主流推流设备,在日常的工作直播中主要出现了以下一些问题。
3.1 直播流跨域问题
随着互联网的普及化,网络攻击也更加频繁,为了给用户更安全的访问环境,大多数网站都从HTTP转换成为HTTPS,实现更加安全的加密传输。然而这就出出现一个常见的问题就是HTTP和HTTPS的跨域问题,HTTPS的页面里面请求HTTP的直播流没有办法播放。但是HTTP的直播流单独用播放器可以播放。
跨域问题根本来说就是浏览器的同源策略,在总结各种跨域问题之前,我们先来了解一下浏览器的同源策略。协议、域名、端口都相同才叫同源。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的Cookie,会发生什么?
很显然,如果Cookie包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie往往用来保存用戶的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。
由此可见,"同源政策"是必需的,否则Cookie可以共享,互联网就毫无安全可言了。
受到同源限制:
1)无法读取不同源的Cookie、LocalStorage和 IndexDB 。
2)无法获得不同源的DOM。
3)不能向不同源的服务器发送ajax请求。
不受同源限制:在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以跨域加载资源,而不受同源策略的限制。
3.2 直播推流追求高码率问题
直播中码率、分辨率、帧率、关键帧等的大小是非常重要的参数,这些参数的设定关系到直播画面的清晰度以及流畅性问题。
在直播参数中,码率控制的方法有几种,分别是CBR,VBR,ABR和CVBR。CBR是以恒定比特率方式编码,简单来说,当码率恒定的情况下,静止画面清晰度要比动态画面清晰度要高,因此图像质量会不稳定,适合流式播放。VBR是以可变的比特率方式进行编码,画面的细节越丰富,码率就会越高,这样画面质量有保证,同时也兼顾带宽的限制,适合媒体存储。ABR是介于CBR和VBR两者之间,属于平均比特率,意思是说,在一段时间内的平均码率,静态图像的码率分配会低,复杂画面的码率会高,这样适合网络传输。CVBR是对VBR的一种改进,兼顾CBR和VBR的优点。
直播参数中,对于分辨率可以和设备分辨率一致,另外参考直播终端呈现,为了流畅性,对于小屏,可以采用低一点的分辨率。帧率越高越清晰,对于小屏帧率设置到25左右。码率是和推流端的网络带宽息息相关的,码率设置一定要参考推流端的上行带宽。并不是一味追求高码率。
如图2所示,视频的码率超高,已经严重和上行带宽不符,推流端一直存在带宽不足,码率太高,导致推流丢帧,推流源丢帧导致整个直播的卡顿,所有的终端用户都有不好的体验。直播码率是一个动态的参数,码率越高,生成的文件越大,越需要较大的带宽支撑,需要根据实际情况进行动态调整。
3.3 直播中推流设置软硬件编码问题
推流中,采用软件编码还是硬件编码,也是需要视情况而定,软件编码也就是CPU编码,硬件编码也就是非CPU编码如显卡的GPU等。软编实现更加直接简单参数已调整而且兼容性好。硬编能够减少对于CPU的依赖,从而降低CPU过热导致视频降帧、卡顿,无法录制的问题。
直播技术随着互联网技术一样在飞速发展,快直播、慢直播等各种场景的应用也需要不同的侧重进行调整,如何做到直播过程流畅、低延迟、直播流兼容各种平台和播放器等仍是需要不断探索研究的问题。
参考文献:
[1]黄仁根.浅谈对网络直播及其技术的认识[J].中国科技财富,2010,(4):3-3.
[2]王林.传统媒体与网络媒体的融合与发展[J].新闻窗,2013,(2):10-11.
[3]黄波.音频视频世界中的MPEG家族[J].辽宁警专学报,2007,(6):90-91.
[4]赵梦媛.网络直播在我国的传播现状及其特征分析[J].西部学刊(新闻与传播),2016,(16):29-32.
[5]信永恒.流媒体服务器的设计与实现[D].吉林:吉林大学,2010:10-11.
[6]乔然.Linux平台下网络直播系统的实现[J].科技展望,2016,(35):13-13.
[7]陈凤娟.跨域问题汇总[EB/OL].https://segmentfault.com/a/1190000012158485,2017-11-25.
【关键词】 流媒体;网络直播;技术问题
中图分类号:TN94 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.15.045
1. 网络直播的方式和特点
从直播的方式可以分为图文直播、音频直播和视频直播。图文直播利用直播平台将现场的各种发言、表述等内容通过图片、文字实时直播出来。音频直播主要实时传播活动的声音,也兼有图片文字的描述。视频直播就是依托互联网将现场的视频、声音、图片、文字等组合形成网络现场直播。
网络直播有别于电视直播,相对于电视直播的单一性、严肃性、复杂性、专项性等特点,网络直播最主要的特点就是主体多样化,同时网络直播以成本低,内容广泛,播出时间自由,并且兼具网络本身所具有的互动性,更加贴近观众,另外,与电视直播不同的是,因网络存储空间不限,从而使得网络直播后能够更加方便的点播,更加有效、立体的达成宣传效果。
2. 网络直播系统的组成
网络直播系统其实就是各种信号通过流媒体技术在网络上进行直播、录播、点播,各个终端用户通过访问指定的直播页面,来访问向服务器请求的节点,从而取得流媒体数据,达到观看直播的相关音视频内容。
直播系统完整的工作流程如图1所示:广播、电视、卫星等信号通过采集设备进行采集,一般来说是音视频信号传递给编码器,通过编码器的压缩、编码等一系列的操作转换成适合网络传播的流媒体信号,将流媒体信号传递给流媒体直播服务器,最终信号通过网络传输给各个终端用户,网络直播中两个核心组成部分就是直播服务器和编码设备。
3. 工作中出现的网络直播问题
直播服务器选用开源的wowza软件,推流编码设备采用OBS Studio等主流推流设备,在日常的工作直播中主要出现了以下一些问题。
3.1 直播流跨域问题
随着互联网的普及化,网络攻击也更加频繁,为了给用户更安全的访问环境,大多数网站都从HTTP转换成为HTTPS,实现更加安全的加密传输。然而这就出出现一个常见的问题就是HTTP和HTTPS的跨域问题,HTTPS的页面里面请求HTTP的直播流没有办法播放。但是HTTP的直播流单独用播放器可以播放。
跨域问题根本来说就是浏览器的同源策略,在总结各种跨域问题之前,我们先来了解一下浏览器的同源策略。协议、域名、端口都相同才叫同源。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的Cookie,会发生什么?
很显然,如果Cookie包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie往往用来保存用戶的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。
由此可见,"同源政策"是必需的,否则Cookie可以共享,互联网就毫无安全可言了。
受到同源限制:
1)无法读取不同源的Cookie、LocalStorage和 IndexDB 。
2)无法获得不同源的DOM。
3)不能向不同源的服务器发送ajax请求。
不受同源限制:在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以跨域加载资源,而不受同源策略的限制。
3.2 直播推流追求高码率问题
直播中码率、分辨率、帧率、关键帧等的大小是非常重要的参数,这些参数的设定关系到直播画面的清晰度以及流畅性问题。
在直播参数中,码率控制的方法有几种,分别是CBR,VBR,ABR和CVBR。CBR是以恒定比特率方式编码,简单来说,当码率恒定的情况下,静止画面清晰度要比动态画面清晰度要高,因此图像质量会不稳定,适合流式播放。VBR是以可变的比特率方式进行编码,画面的细节越丰富,码率就会越高,这样画面质量有保证,同时也兼顾带宽的限制,适合媒体存储。ABR是介于CBR和VBR两者之间,属于平均比特率,意思是说,在一段时间内的平均码率,静态图像的码率分配会低,复杂画面的码率会高,这样适合网络传输。CVBR是对VBR的一种改进,兼顾CBR和VBR的优点。
直播参数中,对于分辨率可以和设备分辨率一致,另外参考直播终端呈现,为了流畅性,对于小屏,可以采用低一点的分辨率。帧率越高越清晰,对于小屏帧率设置到25左右。码率是和推流端的网络带宽息息相关的,码率设置一定要参考推流端的上行带宽。并不是一味追求高码率。
如图2所示,视频的码率超高,已经严重和上行带宽不符,推流端一直存在带宽不足,码率太高,导致推流丢帧,推流源丢帧导致整个直播的卡顿,所有的终端用户都有不好的体验。直播码率是一个动态的参数,码率越高,生成的文件越大,越需要较大的带宽支撑,需要根据实际情况进行动态调整。
3.3 直播中推流设置软硬件编码问题
推流中,采用软件编码还是硬件编码,也是需要视情况而定,软件编码也就是CPU编码,硬件编码也就是非CPU编码如显卡的GPU等。软编实现更加直接简单参数已调整而且兼容性好。硬编能够减少对于CPU的依赖,从而降低CPU过热导致视频降帧、卡顿,无法录制的问题。
直播技术随着互联网技术一样在飞速发展,快直播、慢直播等各种场景的应用也需要不同的侧重进行调整,如何做到直播过程流畅、低延迟、直播流兼容各种平台和播放器等仍是需要不断探索研究的问题。
参考文献:
[1]黄仁根.浅谈对网络直播及其技术的认识[J].中国科技财富,2010,(4):3-3.
[2]王林.传统媒体与网络媒体的融合与发展[J].新闻窗,2013,(2):10-11.
[3]黄波.音频视频世界中的MPEG家族[J].辽宁警专学报,2007,(6):90-91.
[4]赵梦媛.网络直播在我国的传播现状及其特征分析[J].西部学刊(新闻与传播),2016,(16):29-32.
[5]信永恒.流媒体服务器的设计与实现[D].吉林:吉林大学,2010:10-11.
[6]乔然.Linux平台下网络直播系统的实现[J].科技展望,2016,(35):13-13.
[7]陈凤娟.跨域问题汇总[EB/OL].https://segmentfault.com/a/1190000012158485,2017-11-25.