构建H.265视频直播传输系统

2024-03-02 04:40

本文主要是介绍构建H.265视频直播传输系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们知道,CDN/带宽是视频行业的主要成本之一,而以云帆加速为代表的新兴CDN厂商,一直以为直播等互联网企业提供更高价值,降低带宽成本为目标,不断进行技术突破和模式创新。其去年推出的CDN+P2P融合方案,可为企业降低50%以上带宽成本,据了解,其为某客户年节省带宽费用1亿以上。作为一家CDN服务商,不想方设法让客户消耗掉更多的流量,而是为其降低带宽出谋划策,其创始人兼CEO佟永跃曾多次强调要,云帆加速希望让视频运营企业的成本更趋合理,让更多的预算用于精细化运营或是推出更好的内容,而不是被CDN捆住手脚,不敢放开去发展。

近日其宣布解决了直播中应用H.265实时编解码、传输的难题,推出全H.265视频直播传输解决方案,企业使用其CDN即支持H.265,方便快捷,可降低30%以上带宽。

什么是H.265标准

现在用户对视频质量的要求也越来越高,高清、4K等已经成为当前视频业务的主流发展方向。视频清晰度的提升带来了数据量的大幅增长,而现有的编码标准(如H.264、MPEG-2等)的数据压缩能力却难以同步增长,所以在现有的网络环境下,很多优质视频不得不降低质量标准,采用多种方式降低码率,牺牲质量换流畅播放。

在此背景下,市场呼吁一种新的能够提供更高压缩比例的视频编码技术,以应对当前视频业务的发展,H.265(标准全称为高效视频编码High Efficiency Video Coding)视频编码标准应运而生。H.265旨在在有限的带宽环境下传输更高质量的视频,只需原先约一半的带宽,即可播放相同质量的视频。这也意味着在现有网络环境下,在线视频观看将更加流畅,企业也将付出更少的带宽成本,更好的视频(高清、超高清4k)也将离我们越来越近。

H.265标准沿用了和H.264类似的混合编码框架,但是在此基础上,H.265进行了大量的技术改进,其中比较有代表性的包括:基于大尺寸四叉树编码结构、多角度帧内预测技术、运动估计融合技术、自适应运动矢量预测补偿技术、环路滤波、熵编码技术。

图片描述

H.265具备优良的网络适应性、并行处理能力及压缩效率,但H.265的算法复杂度相比H.264提高了2~10倍,采用H.265的实时编码对终端硬件性能提出更高要求,虽然有爱奇艺、乐视和 PPTV 等视频平台宣布支持 H.265 高清视频播放,但目前H.265标准尚未在视频行业实现规模化普及推广,而移动设备仍存在实时编解码难题,H.265标准在直播领域应用更少见。很多CDN厂商在宣传中表示支持H.265,但很少有完整的解决方案。

云帆加速充分考虑客户现有设备网络的状况和系统将来的扩展能力,国内首家推出H.265与现有H.264相结合的视频直播编解码、传输加速解决方案:即H.264编码推流–>云端转H.265–>传输H.265码流–>终端解H.265播放。相比其他厂商提出的H.265直播传输方案(H.265编码直播–>H.265解码观看)更便捷且更能保障视频质量。因为H.265编码对手机CPU计算压力大,目前无法实时高质量编码,所以只能浅编码,导致画质变差,可以说是阉割版的H.265方案,并未体现H.265的高画质低带宽的特点。

云帆加速H.265方案

A.在推流端依然采用H.264+aac的视音频编码方案,推送高清H.264直播视频流,为解决弱网环境下高清码率流畅传输可以选用主播端推流加速SDK;

图片描述

B.云转码,H.264视频流进入到云帆加速直播云服务端,开启H.264到H.265的实时转码,可同时输出H.264,和H.265直播流,支持H.265截图、H.265录制flv、MP4,以供后续点播。

C.H.264\H.265解码播放,经云转码平台,同时输出H.264,H.265不同视频流,经云帆加速CDN分发至终端,通过一定的约定规范,CDN 可以做到智能识别并响应不同编码格式的视频资源。支持 H.265 视频的Android、iOS、OTT客户端可以访问到 H.265 视频,不支持 H.265 视频的客户端、flash端可以访问到原H.264码流播放。对于H.265 解码SDK,企业可采用网络上发布的开源H.265解码器,也可以选用云帆H.265解码SDK,我们对多项技术进行了优化,可降低软解过程对CPU的占用,减少手机发热。

方案难点:实时转码,H.265编码的算法复杂度相比H.264提高了2~10倍,实时编码难度较大,云帆加速经过优化实现突破,支持单一台服务器转100-128路H.265直播流,相比H.264压缩率30%-50%。

方案优势

1.使用CDN即支持H.265 方便快捷

由于现在市场上使用的设备是以支持H.264格式为主,现实情况不能马上将所有设备升级替换掉,但为了发挥H.265的低码流,高质量的技术特点,在中途传输这过程采用H.265编码标准,通过一个编、转码过程,将高质量的视频信号在低码流情况下传输,同时还完整保留了高质量画面,在不影响现有H.264系统情况下,新老技术相互兼容,完整对接。企业使用云帆加速CDN即实现H.265传输直播,方便快捷。

2.降低成本

经云转码实现H.264实时转H.265,压缩率约20-50%,总体来看,传输过程中可保持原来视频质量,降低近30%以上带宽,为企业节省带宽成本。

图片描述

总结

目前H.264实时软编已非常成熟,H.265编码对手机计算压力大,无法实时高质量编码,而H.265实时解码并没有CPU瓶颈,采用推H.265和现有H.264相结合的方式实现使用云帆加速CDN即支持H.265,而无需更改其他系统,方便快捷。随着硬件、技术的升级,相信未来的五年甚至十年,H.265很可能将会成为主流。

这篇关于构建H.265视频直播传输系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/sunhf_csdn/article/details/80129690
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/764939

相关文章

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构