摘要:你知道VLC和 FFmpeg 吗?了解过h264/h265/vp8/vp9 编解码库背后的故事吗? 我们日常生活中使用最广泛的五种视频编码:H264(AVC)、H265(HEVC)、vp8、vp9、av1都分别是什么?由哪些组织/公司实现的?编解码库的授权协议都是什么?他们又分别有什么优点? 今天就
阅读全文
随笔分类 - h264/h265/mpeg
摘要:H264码流分两种组织方式,一种是AnnexB格式,一种是AVCC格式。 首先要了解的是H.264编码规范只是规定了如何编码,并没有规定以何种方式来排列编码后的数据。就如同AES算法只是规定如何加密一组数据,并没有强制规定如果分组。H.264规范没有规定如何组织数据,但是在附录B中提供了一种可选方案
阅读全文
摘要:H.264的两种打包/封装方法:字节流AnnexB格式 AVCC格式放用于网络发送时,要封装成RTP格式 1、AnnexB格式 用于实时播放 处于H264文档附录B(Annex-B Byte stream format)中 开始前缀(00000001或000001)+NALU数据 绝大部分编码器的默
阅读全文
摘要:FFMPEG转码器在封装成FLV或者MP4的时候,会用到h264_mp4toannexb、aac_adtstoasc这两个filter。老版本的bsf使用需要特别注意,一个不小心,就造成的内存泄漏,不容易察觉。 在阅读ffmpeg.3.2.2的代码过程中,发现ffmpeg使用bsf用了新的方法,所以
阅读全文
摘要:本文需要读者对H.264流有一定的了解才可以理解2种格式差异。 首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的
阅读全文
摘要:引言 目前 H.264 流行的包装方式有两种,一种叫做 AnnexB,一种叫做 avcC。对于这两种格式,各家的支持程度也不太一样,例如,Android 硬解码 MediaCodec 只接受 AnnexB 格式的数据,而 Apple 的 VideoToolBox,只支持 avcC 的格式。所以这就需
阅读全文
摘要:(1)Ffmpeg中的DTS 和 PTS H264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念
阅读全文
摘要:ffmpeg中的并行解码分为两种: Frame-level Parallelism Slice-level Parallelism Frame-level Parallelism 帧间依赖 我们之前讨论过Frame-level Parallelism。在之前的文章中,我们说过在进行帧级的并行处理时,
阅读全文
摘要:并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-level Decomposition 在h.264解码时进行功能划分,例如对于四核系统,各个核心分别执
阅读全文
摘要:本文需要读者对H.264流有一定的了解才可以理解2种格式差异。 首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的
阅读全文
摘要:头定义如下: 上一段码流: 前面 4个字节位00 00 00 01 为nul头,这个和H264是一样的。 下面两个字节为40 01 》二进制 0100 0000 0000 0001 F : 0 NalType:100 000 ==》32 =》VPS LayerID:0 0000 0==》0 TID:
阅读全文
摘要:H265相比较于H264,除了包含SPS、PPS外,还多包含一个VPS;在NALU header上,H.264的HALU header是一个字节,而H.265则是两个字节。 以OX4001为例,头信息可以被解析成4个部分,其中: forbidden_zero_bit = 0:占1个bit,与H.26
阅读全文
摘要:(1)Ffmpeg中的DTS 和 PTS H264里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念
阅读全文
摘要:1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体
阅读全文
摘要:写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。 互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495
阅读全文
摘要:网络抽象层单元类型 (NALU): NALU头由一个字节组成,它的语法如下: + + |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | + + F: 1个比特. forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.
阅读全文
摘要:firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 firehood的专栏 Wince嵌入式开发 目录视图 摘要视图 订阅 目录视图 摘要视图 订阅 目录视图 摘要视图 订阅 赠书 | AI专栏(AI圣经!《深度学
阅读全文
摘要:static int h264_parse(Track *tr, uint8_t *data, size_t len) { h264_priv *priv = tr->private_data; // double nal_time; // see page 9 and 7.4.1.2 size_t
阅读全文
摘要:H.264 RTPpayload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NALU 头由一个字节组成, 它的语法如下: + + |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | + + F: 1 个比特(禁
阅读全文
摘要:H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved) 应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性 SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "vid
阅读全文