在视频编码中,延迟是一个常见的问题。对于实时性要求较高的应用(如视频直播、视频会议等),延迟问题尤为重要。本文将重点讲解FFmpeg中H264和H265编码器的延迟问题,以及如何优化和降低编码延迟。
SkeyeVSS视频云支持HEVC/H265编码格式的摄像机直接接入,同时不需要后台转码,直接在WEB网页前端采用H5直接进行无插件播放;
官方的Chrome浏览器是不支持h265格式的MP4播放,可能是由于Google处于维护在的VP9编码生态考虑(不要跟我说专利费太重问题,微软的edge,苹果的safari都支持)。实际上chrome最初也不支持h264视频解码,但h264在视频编码媒体领域中已经是势不可当(2003年发布),处于绝对的领导地位,后面不得不支持h264的MP4播放。对于新一代视频编码h265,Google同样持以抵制的态度,至今为止H265商业化8年了(2013年发布),Google的chrome还是不支持。但实际上硬件编码器都已经完全支持h265编码,相反大多数硬编码器都不支持VP9(目前的英伟达,AMD,显卡都不支持VP9编码)。要想实现低流量,高质量的视频传输,加上硬件的加持,编码器只能使用h265了,同时客户端目前所有的显卡(包括Intel核显)都支持h265解码了。而chrome 为了封杀h265,就是不支持h265解码。本文就介绍如何定制开源的chrome,支持h265视频解码。
h265编码是h264编码的升级版,h265目前在视频点播方面使用的更加普遍,而在视频直播方面,由于难以达到h265编码的解码速度,运用起来还是有些难度的,还需要看未来我们的流媒体技术的发展。那么既然出现了更加先进的编码技术,大家肯定会问了,h264与h265哪个更清晰?哪个画质好?本文我们就是来回答这个问题的。
H.264和H.265是两种不同的视频编码标准,它们在压缩质量和带宽需求方面有所不同。
OBS官方明确表态不支持H265,貌似以后也不会支持,什么原因呢?可以看官方论坛上的吵架
不久前我们已经在RTMP推送端扩展支持了HEVC(H.265 后文统称H265)编码格式,但是,由于RTMP官方指定的协议格式已经不再更新,官方的播放器的Flash播放器并不支持H265格式的编码数据进行解码播放;现在,我们需要在播放器端解析RTMP流时对H265编码格式进行扩展支持。
H.265技术在码率上进行了深度优化,同等画质下,可以比H.264节省近50%的码率,使存储成本大大降低。我们流媒体服务器和流媒体播放器都将会趋向于H265编码,之前我们实现了H265编码的播放:EasyRTMP-Android使用H265编码流程,而现在我们也实现了RTSP/Onvif网络摄像头流媒体服务器播放H265编码视频。
在之前两篇关于SkeyeRTMPClient扩展支持HEVC(H.265)解决方案的文章中,我们已经完成了对H265的支持,本文主要阐述将H26和H265支持兼容起来,实现不同视频编码格式的自适应兼容适配。
我们都知道h.264编码,目前互联网主流的视频播放器播放的视频就是H.264编码,但是随着更新一代视频编码技术h.265编码诞生,其在同样画质和码率下相对占用的存储空间理论上要少的优势,使得流媒体服务器更加偏向于H.265视频网站使用H265编码能提高视频清晰度吗?。
如果大家有不懂的可以看我之前的文章:Android音视频开发——MedCodec实现屏幕录制编码成H264
视频编解码硬件方案最早是在嵌入式领域中广泛存在,如采用DSP,FPGA,ASIC等,用来弥补嵌入式系统CPU等资源能力不足问题,但随着视频分辨率越来越高(从CIF经历720P,1080P发展到4K,8K),编码算法越来越复杂(从mpeg2经历h264,发展到h265),PC的软件规模也越来越庞大,视频应用也越来也丰富,单独靠CPU来编解码已经显得勉为其难,一种集成在显卡中gpu用来参与编解码工作已经成为主流。
网络视频一直都很火。虽然在页面上嵌入 Instagram 和 Youtube 视频非常简单,但是有越来越多的需求 —— 比如许多电子商务的场景 —— 要求定制的视频传输方法。
TSINGSEE青犀视频经过在视频平台项目开发过程中的多年积累和沉淀,已经有了EasyNVR、EasyGBS、EasyDSS、EasyCVR等优秀的视频流媒体软件平台,此外还具有EasyNVR、EasyCVR的视频边缘智能网关设备。不管是软件平台还是网关设备,都具备接入视频通道进行转码、直播、分发的基础功能。
在刚提出4K视频的时候,大多数人都觉得没有必要,4K的出现,意味着更高的硬件规格和传输要求,1080P看的很爽、很清晰,完全满足了日常的需求。随着电视的尺寸越来越大,原本1080P成像已经无法满足人们对于细节的极致追求,4K视频不仅成像更细腻,在细节处理上优势也非常明显,颜色也更亮丽、饱满,逼真,给人身临其境的感觉。4K视频具有高分辨率、宽色域、高动态范围等优势,随着5G技术和H.265(HEVC)编码标准的出炉,4K视频直播迎来了曙光。
其中H265的编码格式压缩水平更加大,所以目前常用的IPC和NVR设备都是使用H265编码格式。
目前摄像头存在H.265和H.264两种编码格式,我们的摄像头已经支持H265编码视频的传输。H.264编码格式可以直接在web浏览器通过H5来进行视频解码来完成播放,但是对于H.265编码的视频,无法通过H5直接解码来进行视频播放,当前的方案是通过H5调用编解码组件来进行web直播。
H.264是一种高度压缩数字视频编解码器标准,由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组建的联合视频组(JVT,Joint Video Team)共同制定,由此H.264既是ITU-T的H.264标准,又是ISO/IEC的MPEG-4标准的第10部分:高级视频编码(AVC,Advanced Video Coding),因而H.264别名为AVC、MPEG-4 Part 10以及ISO/IEC 14496-10,H.264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
悄悄的,H265它来了!我们的电脑播放器,大多都默认支持H264视频编码,但H265技术正在步入我们的生活,直面H265视频时,我们需要对电脑播放器进行升级,以获得H265视频播放功能。当PotPlayer或其他播放器提示“不支持S/W HEVC(H265)解码”时,可按如下方式进行升级。
TSINGSEE青犀视频研发团队的成果包含了视频相关的很多内容,有视频流媒体平台EasyNVR、EasyGBS、EasyDSS,有视频智能分析平台EasyCVR,有H265视频播放器EasyWasmPlayer及各种专用直播流播放器,还有视频组件及推流辅助设备等,其中视频流媒体平台内就结合了最新的H265播放器EasyWasmPlayer。
在视频处理和传输应用中,将视频数据编码为高效的格式是非常重要的。H.265(也称为HEVC)是一种先进的视频编码标准,具有更好的压缩性能和图像质量,相比于传统的编码标准(如H.264),可以显著减少视频的带宽和存储需求。
熟悉我们的小伙伴都知道,当我们的RTSP/Onvif流媒体服务器与摄像头可以进行网络连接时,通过RTSP/Onvif流媒体服务器自带的Onvif探测即可实现Onvif摄像头的设备IP探测,成功后返回需要的流地址,实现摄像头的PTZ云台控制,PTZ控制包含转动、变焦等。
Webrtc使用是RTP分装码流,跟视频监控领域,IPTV领域,会议电视一样都是RTP承载媒体流,只不过webrtc信令遵守ICE框架,走自定义信令,IPTV领域走RTSP信令,视频监控走GB28181或者onvif信令,会议电视走h323或SIP协议。但webrtc 不能像传统IPTV和视频监控,会议电视一样可以直接抓包导流播放,因为webrtc的RTP流做了以下工作:
EasyNVR视频图像智能分析平台具备高度集成性和可用性,其中丰富的API接口能够在集成或者对接其他平台时自由调用,拓展性强。
RTSP协议视频平台EasyNVR经过了很多代的升级,目前已经支持H.265编码视频的播放,然而我们很多客户使用的还是旧版本的EasyNVR视频服务器软件(4.0.0之前的版本统称为旧版,均不支持H265输入与播放),所以有一些旧版本上的问题目前有不支持的情况。
与H.264/AVC 类似,H265/HEVC也采用视频编码层(Video Coding Layer,VCL)和网络适配层(Network Abstract Layer, NAL)的双层结构,以适应不同网络环境和视频应用。网络适配层的主要任务是对视频压缩后的数据进行划分和封装,并进行必要的标识,使其更好的适应各种网络环境。
我们在对接开发者的时候,遇到这样的诉求:除了正常的RTMP、RTSP直播播放外,有些硬件设备输出编码后(H.264/H.265)的数据,比如无人机或类似硬件产品,回调出来的H.264/H.265数据,除了正常转推到RTMP、轻量级RTSP服务或GB28181外,还需要本地预览甚至重新对数据做二次处理,基于这样的场景诉求,我们开发了外部编码后数据实时预览播放模块。
FuboTV 是一家美国流媒体电视服务公司,为美国、加拿大和西班牙的客户提供服务,主要专注于分发体育直播的频道。根据国家/地区的不同,Fubo 提供的频道可能包括访问 NFL、MLB、NBA、NHL、MLS、CPL 和国际足球,以及新闻、网络电视连续剧和电影。
利用刚才生成ffplay时,同时生成的ffmpeg文件,我们可以生成一路包含H265编码的RTMP媒体流,命令:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
在视频传输平台中,由于数据较大,不可避免会出现内存增长的问题,在EasyNVR视频平台中,由于支持了H265视频的播放,内存占用会较小,因此在大多情况下我们推荐用户采用H265编码格式播放视频,然而在一些需要用到H264格式的项目中,更新H265转H264模块后,EasyNVR的内存使用量会随着时间一直增长,且显示占用非常高。
随着H.265的普及,越来越多的开发者希望大牛直播SDK(Github)能支持低延迟的RTSP H.265播放,并分享相关经验:
在网络视频直播系统中常见编码器有H264/H265/VP8/VP9,其中H264和H265用的比较多,VP8和VP9用的比较少,H265的出现虽然时间短,但很多开发公司都一开始尝试使用H265作为直播编码的一种方式,但H264依然是主流的一种编码方式。下面给大家普及一下关于H264格式的知识。
FFMpeg在官方网站中提供了已经编译好的可执行文件,用FFmpeg的人很多,因为FFmpeg是开源的,并且可以自己DIY,而且很强大,所以,FFmpeg还有一个优势就是开源。而在使用Linux时,无论是用ubuntu或者redhat,如果使用系统提供的源安装ffmpeg时会发现,版本相对比较老旧,例如apt-get install ffmpeg后或者yum install ffmpeg后会发现,版本很老,有些新的功能不一定支持,例如一些新的封装格式,或者通信协议。所以会编译FFmpeg这个技能就至关重要了,甚至让自己DIY起来更加顺利。 2.1 FFmpeg Windows平台编译 FFmpeg在Windows平台中编译时使用的cygwin来进行编译,首先需要安装cygwin环境,然后才可以编译,如果不希望使用cygwin而使用Visual Studio的话,则需要消耗很多时间去支持到Visual Studio平台,与其话费时间去做这些事,还不如直接使用cygwin进行支持。 由于cygwin的平台使用方式为模拟Linux的环境,所以编译FFmpeg在cygwin平台下,也同样简单,同样方便。
大家知道EasyPlayer播放器系列是一套很稳定全面的视频播放器了,涵盖了PC端、手机端、网页端等多种系统的播放版本,并且EasyPlayer播放器已经支持集成在EasyGBS、EasyNVR、EasyCVR等多个流媒体平台中,体验H265编码的视频播放效果。
3.1 FFmpeg本身支持一些编码、封装与协议,但是支持的依然有限,有些是因为licence,有些是因为相对来说比较大,FFmpeg所做的是提供一套基础的框架,而这些编码、封装与协议可以作为一个FFmpeg的模块挂在FFmpeg中,这些模块以第三方的外部库的方式提供支持,可以通过FFmpeg的源码的configure进行查看FFmpeg默认支持的编码、封装与协议的支持,不支持的可以再configure –help的时候查看所支持的第三方外部库,可以通过对应的参数选项进行支持:
EasyPlayer播放器系列项目提供了非常简单易用的SDK及API接口,用户通过API调用就可以非常快速地开发出属于自己的应用程序,进行第二次开发。新版的EasyPlayer因为支持265网页播放,所以很多用户都在集成使用。
TSINGSEE青犀视频开发的视频结构化智能分析平台EasyGBS、EasyNVR等现均已支持H265视频编码的播放,在配置中心界面即可自由设定是否启动H265播放器。
注:参考自bilibili系列视频,从0开始做播放器-第6章-图像编码的基础概念(理论课)https://www.bilibili.com/video/BV1PK41157jz
今天你黑了吗,哈哈,当然不是指的你皮肤变黑了,而是身处在直播浪潮中的你,在观看直播中是否碰见了黑屏的现象,不过不要慌张,接下来就以腾讯云直播为例告诉您引起黑屏的原因以及如何去规避黑屏。
之前的博文中我们讲过,为了适应现阶段H265编码的发展,TSINGSEE青犀视频在EasyNVR中首次加入了自主选择播放器的功能,可以选择使用EasyPlayer播放器播放H264编码视频,也可以选择使用EasyWasmPlayer播放器播放H265编码视频。
本文来自The broadcast knowledge的演讲,演讲者是FuboTV公司的工程负责人Nick Krzemienski,演讲内容为HLS和DASH多编解码器的编码和打包。
YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用。 webrtc支持为自主研发,非谷歌lib,兼容webrtc协议 ,可与谷歌Lib和浏览器互通 支持Linux/Windows操作系统,android/ios/mac版本正开发中 yangwebrtc功能 •
继续上文NVIDIA Jetson nano可以处理4K相机吗?来验证编码性能吧(上)
T113-i 是一种为多媒体解码平台设计的高级应用处理器。T113-i 集成了64位玄铁C906 RISC-V CPU, 双核 Cortex - A7 CPU 和 HiFi4 DSP,提供高效的计算能力。 主要特性 支持 H.265、H.264、MPEG-1/2/4、JPEG 等全格式解码。独立的编码器可以用 JPEG 或 MJPEG 来进行编 码。 T113-i 集成了 H.265/H.264 4K 解码和 SmartColor2.0 后处理,提供完美的视频娱乐体验。
EasyDSS视频直播点播平台支持视频的上传,上传的点播文件也支持不同方式的视频转码:软件转码和硬件转码。之前的博文中为大家介绍过两种解码方式的区别:EasyDSS点播配置中视频转码方式中软件转码和硬件转码的差别,大家可以了解一下。
是的,一般场景是用不到的,我们在开发这块前几年已经开发了非常稳定的RTMP、RTSP直播播放模块,不过也遇到这样的场景,部分设备输出编码后(视频:H.264/H.265,音频:AAC/PCMA/PCMU)的数据,比如无人机或部分智能硬件设备,回调出来的H.264/H.265数据,除了想转推到RTMP、轻量级RTSP服务或GB28181外,还需要本地预览甚至对数据做二次处理(视频分析、实时水印字符叠加等,然后二次编码),基于这样的场景诉求,我们开发了Android平台外部编码数据实时预览播放模块。
我们在做Windows平台RTMP推送或轻量级RTSP服务模块的时候,遇到这样的问题,有些超高清场景(4K甚至更高分辨率)或高帧率场景(50帧+)的编码,比如地铁安检机数据分析检测,设备性能一般的话,软编码很容易出现瓶颈,这个时候就需要硬编。基于此,我们前几年发布了基于NVIDIA的硬编。
领取专属 10元无门槛券
手把手带您无忧上云