- 博客(10)
- 收藏
- 关注
原创 理解视频编码H264结构
首先来一段大家都熟悉的官方话来介绍一下 H.264H.264: H.264/AVC项目的目的是为了创建一个比以前的视频压缩标准,在更低的比特率的情况下依然能够提供良好视频质量的标准(如,一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 )。同时,还要不会太大的增加设计的复杂性。优势:1)网络亲和性,即可适用于各种传输网络2)高的视频压缩比,当初提出的指标是比 H.263,MPEG-4,约为它们的 2 倍,现在都已基 实现;那么很明显,什么时候需要到压缩呢?当然是文
2022-04-01 21:20:28
659
原创 H264/AVC基本结构
从这篇开始,我们进入H264的学习实践,主要分三个阶段 学习H264基本结构(本文); 了解具体编码压缩技术; 分析了解相关开源库 x264和h264bitstream。 这篇我们来一起学习H264的基本结构目录 H264/AVC的目标和方案 H264分层结构- VCL和NAL NALU HEAD解析 NALU payload I/P/B帧的特点 切片Slice和宏块 资料 收获 一、H264/
2022-04-01 20:49:56
277
原创 视频会议终端到终端的加密
本次分享,将针对当前各类终端加密场景,分别介绍基于WebRTC的会议、SFU模式的会议以及WebRTC SFU模式的会议数据加密的异同。#视频会议安全背景介绍.下面我将分享一些传统视频通信的加密方法和目前263研发的几种视频会议终端到终端的加密方法。#端到端的加密.传统加密技术共有三种,对称加密、非对称加密和TLS加密。对称加密,即用同一个方法加密,对方再用同一个方法解密,这种加密技术要求双方公用密码需要通过私有通道提前分配,类似谍战电影中的密码本。对称加密..
2022-04-01 20:15:07
931
原创 KCP协议:从TCP到UDP家族QUIC/KCP/ENET协议对比
KCP协议科普KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。本文传输协议之考虑UDP的情况。整个KCP协议主要依靠一个循环ikcp_update来驱动整个算法的运转,所有的数据发送,接收,状态变化都依赖于此,所以如果有操作占
2022-04-01 20:05:05
980
原创 FFMpeg 实现视频编码、解码
FFMpeg 作为音视频领域的开源工具,它几乎可以实现所有针对音视频的处理,本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例:编码、解码、封装、解封装、转码、缩放以及添加水印。接下来会由发现问题->分析问题->解决问题->实现方案,循序渐进的完成。FFMpeg 编码实现本例子实现的是将视频域 YUV 数据编码为压缩域的帧数据,编码格式包含了 H.264/H.265/MPEG1/MPEG2 四种 CODEC 类型。实现的过程,可以大致用如下图表示:从图中可以大
2022-03-31 19:57:44
5135
原创 H.266视频编解码标准
H.266多功能视频编码编解码器标准,新的H.266 /VCC编解码器在保持清晰度不变的情况下,数据压缩效率获得极大提高,数据量减少了50%。新标准的公告中指出,由于改进了压缩技术,H.266将减少约50%的数据需求。使用之前的HEVC编解码器,传输一段90分钟的超高清(UHD)视频需要大约10GB的数据,而H.266只需5GB就可以做到这一点。据了解,该编解码器为全新设计,主要用于4K和8K流媒体视频,它将允许用户存储更多的高清视频,并减少移动网络的数据量。H.265/EVC编解码器是高效..
2022-03-31 19:45:39
9449
原创 动图图解 | TCP/IP到底是怎么分片的?
什么是TCP分段和IP分片我们知道网络就像一根管子,而管子吧,就会有粗细。一个数据包想从管子的一端到另一端,得过这个管子。(废话)但数据包的量有大有小,想过管子,数据包不能大于这根管子的粗细。问题来了,数据包过大时怎么办?答案比较简单。会把数据包切分小块。这样数据就可以由大变小,顺利传输。数据分片回去看下网络分层协议,数据先过传输层,再到网络层。这个行为在传输层和网络层都有可能发生。在传输层(TCP协议)里,叫分段。在网络层(IP层),叫分片。(注意以下提到的..
2022-03-31 17:00:56
2627
2
原创 音视频开发学习:HLS 协议详解
HLS 概述HLS 全称是 HTTP Live Streaming, 是一个由 Apple 公司实现的基于 HTTP 的媒体流传输协议。 他跟 DASH 协议的原理非常类似。通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件,提供给客户端,让客户端顺序地拉取这些媒体文件播放, 来实现看上去是在播放一条流的效果。由于传输层协议只需要标准的 HTTP 协议,HLS 可以方便的透过防火墙或者代理服务器,而且可以很方便的利用 CDN 进行分发加速,并且客户端实现起来
2022-03-31 16:32:54
3417
原创 安卓音视频开发,经典面试题
前言如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在 IT 圈“耍酷”,那你也不需要研读,如果你执着询问“退化”成为一名程序猿有啥捷径,那我只能告诉你,此路不通!不可否认,这是个浮躁的社会,程序猿干的是个专注活,这是个多元化的社会,程序猿面对的却是枯燥、单一的界面。所以,当你踏进这个行业,就注定要“看破红尘”、“一心皈依”,一步一个脚印地走完。下面是3个大厂音视频面试题(一二三面):1.泛型有什么优点?2.动态代理有什么作用?3.拉圾回收的 GCRoot 是什么
2022-03-30 21:23:47
3403
1
原创 c/c++语言宏定义的使用
1 概述在工程规模较小,不是很复杂,与硬件结合紧密,要求移植性的时候,可采用宏定义简化编程,增强程序可读性。当宏作为常量使用时,C 程序员习惯在名字中只使用大写字母。但是并没有如何将用于其他目的的宏大写的统一做法。由于宏(特别是带参数的宏)可能是程序中错误的来源,所以一些程序员更喜欢使用大写字母来引起注意。 简单宏定义 无参宏的宏名后不带参数,其定义的一般形式为:#define 标识符 字符串// 不带参数的宏定义#define MAX 10注意:不要在宏定义中放置任何额外
2022-03-30 20:52:30
962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人