首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    H264解码流程

    H264解码过程比较复杂,这里仅简要概述大致流程 如果是非黑即白的二值图像,不压缩的情况下一个像素只需要1个bit。

    1.3K30编辑于 2022-09-07
  • 来自专栏txp玩Linux

    H264之NALU解析

    一、H264简介: H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。 : 三、H264中I帧、P帧、B帧: 这块知识介绍在之前的文章里面有介绍,为了知识的完整性,今天这里再次介绍一下。 H264使⽤帧内压缩和帧间压缩的⽅式提⾼编码压缩率;H264采⽤了独特的I帧、P帧和B帧策略 来实现,连续帧之间的压缩: 帧的分类 中文 意义 I帧 帧内编码帧 (intra picture) I帧通常是每个 四、H264编码结构解析: H264除了对视频压缩处理之外,为了方便网络传输,提供了对应的视频编码和分片策略;类似网络数据封装成IP帧,在H264中将其称为组(GOP,gruop of pictures )、片(slice)、宏块(Macroblock)这些一起组成了H264的码流分层结构;H264将其组织成为序列(GOP)、图片(pictrue)、片(slice)、宏块(Macroblock)、子块(

    2.8K10编辑于 2022-03-21
  • 来自专栏全栈程序员必看

    海思h264解码库

    海思的dll,解码h264 解码后转出yuv12 dll自己百度下载 hi_h264dec.dll hi_h264dec_w.dll 调用方法: if (H264Dec.Hi264DecAU (_decHandle, pH264Data, frameLen, 0, ref _decodeFrame, 0) == 0) pH264Data是h264帧的句柄,frameLen是h264 帧的长度,_decodeFrame是解码后的yuv帧 海思H264解码库 hi_h264dec_w.dll 水印问题 #region 解码器相关变量声明 ///

    1.3K20编辑于 2022-09-07
  • 来自专栏machh的专栏

    H264编码profile & level控制

    H264编码profile&level控制 H.264的四种画质级别 分别是baseline, extended, main, high: Baseline Profile:基本画质。

    1.7K30编辑于 2022-06-10
  • 来自专栏Flutter入门

    H264码流分析导读

    Android硬编码得到的H264是Annexb这种格式的。

    2.3K10发布于 2018-08-30
  • 来自专栏曾大稳的博客

    ffmpeg 视频解码h264和yuv

    av_read_frame(pFmtCtx, pPacket) == 0) {//读取一帧压缩数据 if (pPacket->stream_index == videoIndex) { //写入H264 数据到文件 fwrite(pPacket->data, 1, pPacket->size, h264FilePath); //把H264数据写入h264FilePath文件 //解码数据

    4.5K20发布于 2018-09-11
  • 来自专栏全栈程序员必看

    ffmpeg h264解码器提取

    ffmpeg包含了很多的音视频解码器,本文试图通过对ffmpeg的简单分析提取h264解码器. CODEC_ID_H264) 将decode函数指针为 h264_decoder, 即 AVCodec ff_h264_decoder = { .name = “h264

    1.4K10编辑于 2022-07-04
  • 来自专栏GoCoding

    RTSP H264 流 MSE 播放

    Video is streamed as H264 encapsulated in MP4. Only H264 is supported - browser MSE's do not support H246 yet (and neither does libValkka). /nginx.conf -g 'error_log error.log warn;' # 设置相机发送 H264(该项目只支持 H264) 使用 发送 RTSP 流: sudo snap install ,H265 > YUV, WebGL gliese1337/h264decoder[24]: H264 > YUV mattdesl/mp4-h264[25]: H264 > YUV/RGB mattdesl /mp4-wasm[26]: H264 其他 HTML5 RTSP player[27]: 收费 脚注 [1] elsampsa/websocket-mse-demo: https://github.com

    2.9K30发布于 2021-07-20
  • 来自专栏smy

    H264编码之GOP含义

    H264编码之GOP含义 GOP说白了就是两个I帧之间的间隔.比较说GOP为120,如果是720p60的话,那就是2s一次I帧.        

    4.3K20发布于 2019-01-07
  • 来自专栏全栈程序员必看

    H264解码过滤花屏视频帧

    于是乎我有看了看ffmpeg的h264解码,注意到了一个0x80这么数值,还是在alloc_pic的时候,难道这就是传说中的赋初始值?看着像,具体也没看太明白。。。。

    1.8K40编辑于 2022-07-04
  • 来自专栏全栈程序员必看

    H264解码输出yuv文件

    中将h264视频数据写入到输出文件。 解码是首先打开一个h264格式的文件作为输入文件,从这个文件中先读出文件头数据,写入到解码器的输入buf中,再初始化解码器,之后就是不断地将H264格式输入文件中的一段段NALU数据写入到解码器的输入buf 而H264格式文件中每一段NALU的长度不是固定的,这就需要在读取文件中做判断。下面给出一个h264格式文件的前160个字节(文件用Hex模式查看)。 接下来既可以说下这个h264格式的文件怎么读取了。 要注意的是,测试这个程序是,所选的h264格式文件不要太大,因为解码后的yuv格式文件很大,所以编码h264格式文件时,尺寸要小于640*480,帧数小于200帧最好。

    1.5K20编辑于 2022-07-02
  • 来自专栏进击的多媒体开发

    Android MediaCodec 硬编码 H264 文件

    以将相机预览的 YUV 数据编码成 H264 视频流为例来解析 MediaCodec 的使用。 对于 I 帧间隔,也就是隔多久出现一个 H264 编码中的 I 帧。 取出 MediaCodec.BufferInfo 内的数据之后,根据不同的标识符进行不同的操作: BUFFER_FLAG_CODEC_CONFIG 表示当前数据是一些配置数据,在 H264 编码中就是 01 65 的数据, BUFFER_FLAG_END_OF_STREAM 表示结束,MediaCodec 工作结束 对于返回的 flags ,不符合预定义的标识,则可以直接写入,那些数据可能代表的是 H264 对于 MediaCodec 硬编码解析之相机内容编码成 H264 文件就到这里了,主要还是讲述了关于 MediaCodec 的使用,一旦熟悉使用了,完成编码工作也就很简单了。

    3.8K12发布于 2019-11-18
  • 来自专栏构建FFmpeg Android播放器

    H264系列--压缩编码技术

    Android FFmpeg专题结构 概述 H264 无疑是目前应用最广泛的编码技术。一些比较优秀的开源库x264/openh264, ffmpeg等让人们处理h264编解码变得相对容易。 为了能更好地理解和处理h264问题,还是有必要了解相关的原理 H264压缩技术主要采用了以下几种方法对视频数据进行压缩: 帧内预测压缩,解决的是空域数据冗余问题。 运动估计与运动补偿 在H264编码器中将帧分组后,就要计算帧组内物体的运动矢量了。还以上面运动的台球视频帧为例,我们来看一下它是如何计算运动矢量的。 H264编码器首先按顺序从缓冲区头部取出两帧视频数据,然后进行宏块扫描。当发现其中一幅图片中有物体时,就在另一幅图的邻近位置(搜索窗口中)进行搜索。 帧内压缩(这部分也看不懂,后面补充) 计算残差数据 --->DCT ---> CABAC 帧内预测,计数残差值 H264的帧内压缩与JPEG很相似。

    1.1K40发布于 2021-03-07
  • 来自专栏后端码匠

    【音视频】H264编码基础

    ---- H264编码基础 0x1 基本介绍 视频是由一帧帧图像组成,视频为了不卡顿,一秒钟至少要16帧画面,但是图片内容太大,传输不现实。因此需要对他们编码。 H264编码使用的是0阶哥伦布编码方式压缩,但是这种方式可能在某些时候不减数据量,反而增大。 0x112 H264编码过程 简介 每一帧的H图像被分为一个或多个条带(slice)进行编码。 每一个条带包含多个宏块(MB)。 片是H264中提出的新概念,在编码图片后切分并整合出来的一个概念。 片之所以被创造出来,主要目的是为限制误码的扩散和传输。使编码片相互间是独立的。 字节流格式:这是在h264官方协议文档中规定的格式,所以它也成为了大多数编码器,默认的输出格式。它的基本数据单位为NAL单元,也即NALU。

    2.2K40编辑于 2022-12-05
  • 来自专栏全栈程序员必看

    AVC1与H264的区别

    MEDIASUBTYPE_H264 ‘H264’ H.264 bitstream with start codes. MEDIASUBTYPE_h264 ‘h264’ Equivalent to MEDIASUBTYPE_H264, with a different FOURCC.

    1.2K40编辑于 2022-07-05
  • 来自专栏雪月清的随笔

    H264码流之AnnexB和AVCC

    引言 H264的主要目标是实现高的视频压缩比和提供良好的网络亲和性(可适用于各种网络传输),因此在功能层面上划分为视频编码层VCL和网络提取层NAL两层 其中预测(帧内预测和帧间预测)、DCT、量化 、编码和切片等步骤都属于VCL,VCL最终会被包装为NAL NAL由一系列NAL Unit组成 不过接下来并不对NALU进行展开,而是关注另一个问题,即:在H264码流中是如何将NALU进行分割的 要搞清楚这点 ,就需要了解目前H264主流的码流组织方式AnnexB和AVCC两种格式,其中Android的硬解码MediaCodec只支持AnnexB格式的数据,而Apple的VideoToolBox只支持AVCC (起始码)的东西,起始码的内容为三字节的0 0 1或者4字节的0 0 0 1 (其中起始码在NALU为SPS、PPS或NALU为AU的第一个NALU时使用4字节,其他情况使用3字节) 当我们读取一个 H264H264编码格式整理】 https://zhuanlan.zhihu.com/p/71928833 3.

    2.8K20编辑于 2022-09-21
  • 来自专栏AI算法与图像处理

    OpenCV保存H264视频的问题

    使用H264编码器 在上面代码的基础上我们修改一下,使用h264编码器 import cv2 cap = cv2.VideoCapture('test.mp4') width = int(cap.get ('output.mp4', fourcc, fps, (width, height)) # 后面代码省略了 执行代码后,报错了 OpenCV: FFMPEG: tag 0x34363248/'H264 字节码并不被支持,自动帮你替换成了avc1,opencv默认使用ffmpeg框架来处理视频,但是ffmpeg并没有h264解码器。 ), yuv420p, 1440x1080, 538 kb/s, 29.92 fps, 29.92 tbr, 29917 tbn, 59834 tbc (default) 可以看到,视频编码确实是h264 为什么不内置h264 这主要是许可证的问题,libx264是基于GPL的,而ffmpeg要使用libx264的话,必须--enable-gpl,而opencv则用的是MIT许可。

    6.9K40发布于 2021-09-06
  • 来自专栏FreeSWITCH中文社区

    H264,你不知道的小技巧

    学习小技巧之前,我们先来了解一下什么是H264? 先来看一个问题,为什么要编码呢? H264即是这样一种高压缩高质量的视频压缩标准,其核心算法是帧内压缩与帧间压缩。 H264码流是由一个个的NALU组成。 答:右键,选择解码为,选择RTP 此时如果只显示RTP而不是H264呢? 答:依次选择编解-首选项-Protocol-H264,修改PT值即可。 接下来介绍一些小技巧吧! 除此之外我们有自己的mod_pcap模块并已经集成到我们自己的FreeSWITCH版本中,可以将pcap包中H264数据转为yuv文件,以及提供play_pcap的APP,方便在工作中对H264数据进行的直观的查看

    2K10发布于 2020-12-21
  • 来自专栏Android点滴分享

    H264和H265的nalu介绍

    本篇介绍 本篇介绍下H264H264的编码格式,包括avcc,annexb,以及转换方法。annexb 用于实时流的场景,avcc用于多媒体文件,如mp4,mkv等场景。 h264 h264是一种编码格式,NAL(Network Abstraction Layer)和VCL(Video Coding Layer)是其中2个主要内容。 H264编码过程中的3种数据: SODB(string of data byte),数据比特流,最原始的编码数据,也就是VCL数据,没有附加其他数据。 数据: Screenshot from 2022-05-04 14-53-54.png H264的AVCC格式 在头部保存长度信息,并将长度信息所用的字节长度和sps,pps等数据放到extradata TID: nuh_temporal_id_plus1:NALU 的标识符,类似于H264的NRI。

    3.4K10编辑于 2022-10-25
  • 来自专栏君正T31开发实战指南

    H264和H265的视频编码

    1.什么是H264,什么是H265? 2.H264的视频编码格式2.1:H264桢结构在H264视频编码中,视频被分为多个GOP序列。 2.2 桢序列H264 输出数据都封装为一个个NAL单元。进行传输。 然后重要性标志,一般大于等于1就可以了,所以我上面在某个芯片录制出来的H264格式的编码图像数据就是25代表的是I桢。 F:禁止位:必须为0,跟H264是一样的。TYPE类型是6位类型,就证明H265格式的类型最大可以支持64种可能。

    7.9K21编辑于 2023-12-24
领券