#H264

使用ffmpeg实现对h264视频解码 -- (实现了一个易于使用的c++封装库)

H264是当今流行的视频压缩格式;ffmpeg是一个开源库,实现了对h264视频文件的解压缩。为了降低使用ffmpeg的复杂性,尽量隐藏实现细节,我写了一个封装库。c#也可以很方便的使用此库。解压后的数据可以为yuv格式,也可以为rgb格式。同时可以对rgb格式视频做缩放。类H264Decode实现了所有解码功能。最后...

C# 播放H264裸码流

要播放H264裸码流,可以分拆为以下三个工作:1.解码H264裸码流获取YUV数据2.将YUV数据转换为RGB数据填充图片3.将获取的图片进行显示要完成工作1,我们可以直接使用海思的解码库,由于海思的解码库是C++的动态库,要完成在C#中进行调用可以参考海思h264解码库这篇文章,介绍的很详细。但是对于该博文只介绍了一...
代码星球 ·2020-09-10

视频编解码学习之路(H264)

学习视频编解码技术很难吗?视频编解码技术的未来是什么?   明了的说,无论是软件还是硬件设计,视频编解码技术有很多难点,都需要很长一段时间积累才行。从一开始接触MPEG-2到最新的H.264标准,可算走过了一段心酸之路。   90年代以来,随着internet...

H264标准句法表中C的含义理解

下面一段是H264官方中文版中给出的解释:“类别(在表中以C表示)规定条带数据可以至多划分为三种条带数据类别。条带数据类别A包含了类别2的所有语法元素。条带数据类别B包含了类别3的所有语法元素。条带数据类别C包含了类别4的所有语法元素。其他类别值的含义不作规定。某些语法元素需要使用两个类别值,这两个值通过竖...

H264视频压缩算法

H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H264的基本原理弄清楚才行。今天我们就来看看H264的基本原理。H264...
代码星球 ·2020-04-22

流媒体技术学习笔记之(十六)H264编码profile & level控制

H.264有四种画质级别,分别是baseline,extended,main,high:1、BaselineProfile:基本画质。支持I/P帧,只支持无交错(Progressive)和CAVLC;2、Extendedprofile:进阶画质。支持I/P/B/SP/SI帧,只支持无交错(Progressive)和CA...

H264编码profile & level控制

背景知识先科普一下profile&level。(这里讨论最常用的H264) H.264有四种画质级别,分别是baseline,extended,main,high:   1、BaselineProfile:基本画质。支持I/P帧,只支持无交错(Progressive)和CAVLC; ...

hisi出的H264码流结构

hisi出的H264码流结构:  IDR帧结构如下:开始码+nalu+I帧  +  开始码+nalu+SPS  +   开始码+nalu+PPS  +  开始码+nalu...

RTP封装h264

网络抽象层单元类型(NALU):NALU头由一个字节组成,它的语法如下:     +---------------+     |0|1|2|3|4|5|6|7|     ...
ymnets ·2023-05-06

rtp h264注意点(FU-A分包方式说明)

 之前写过一篇文章,分析了h264使用rtp进行封包的格式介绍:RTP封装h264。但里面好像没有把拆分以及一些需要注意的情况说清楚,因此这里做补充,也作为自己的备忘(自己记性好像不太好)。 关于时间戳,需要注意的是h264的采样率为90000HZ,因此时间戳的单位为1(秒)/90000,因此如果当...

用实例分析H264 RTP payload

H264的RTP中有三种不同的基本负载(SingleNAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。在SDP中也说明了本次会话的属性SDP参数下面描述了如何在SDP中表示一个H.264流:.m=行中的媒体名必须是video.a=rtpmap行中的编码名称必须 ...