h264】的更多相关文章

1 I帧,P帧,B帧,IDR帧,NAL单元 I frame:帧内编码帧,又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象.I帧可以看成是一个图像经过压缩后的产物: P frame: 前向预测编码帧,又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧: B frame: 双向预测内插编码帧,又称bi-directio…
通过上一篇文章,我们用ffmpeg分离出一个多媒体容器中的音视频数据,但是很可能这些数据是不能被正确解码的.为什么呢?因为在解码这些数据之前,需要对解码器做一些配置,典型的就是目前流行的高清编码“黄金搭档”组合H264 + AAC的搭配.本文将讲述H264和AAC的关键解码配置参数的解析,如果没有这些配置信息,数据帧往往不完整,导致了解码器不能解码. H264的配置信息解析 前面我们知道,ffmpeg的avformat_find_stream_info函数可以取得音视频媒体多种,比如播放持续时间…
海思的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…
上一篇   海思h264解码库 , 实现了H264帧的简单解码,但更换相机后,出现了解码视频中央出现水印的问题,水印如下图 查找网络,基本就这一篇相关的,还没给出好的解决办法. http://bbs.csdn.net/topics/390325547 哪位大侠知道:海思 H.264 PC 解码库 hi_h264dec_w.dll,视频解码时,如何去掉出现的 HISILICON Logo 啊? 但原因是知道了 听别人说,他这个库,是否显示 HSILICON Logo,取决于你让它解码的数据流,如果…
H264.TXT文件 来源于板子上串口输出的数据,需要把该数据转成 *.h264用 H264的软件打开观察 txt中数据截图如下: MATLAB读入数据的代码: clc;close all;clear ; filename = 'H264_fr4.TXT'; fid = fopen(filename,'r'); h264dat = fscanf(fid,'%2x'); origh264 = h264dat; fclose(fid); %%输出数据是要以二进制方式写入,所以使用 ‘wb’,写入函数…
公司项目原因,接触了一下视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解.该方法比较通用,但是占用CPU资源,编解码效率不高.一般系统都会提供GPU或者专用处理器来对视频流进行编解码,也就是硬件编码和解码,简称为硬编解码.苹果在iOS 8.0系统之前,没有开放系统的硬件编码解码功能,不过Mac OS系统一直有,被称为Video ToolBox的框架来处理硬件的编码和解码,终于在iOS 8.0后,苹果将该框架引入iOS系统. 由此,开发…
H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内.所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C帧,这样循环下去.这段图像…
官方原帖 http://www.raspberrypi.org/phpBB3/viewtopic.php?f=43&t=45368&sid=b81f6551e478f0f6e172aa40e31ee179 安装 crtmpserver服务 sudo aptitude install crtmpserver 添加 crtmpserver日志文件 sudo mkdir /var/log/crtmpserver 配置crtmpserver服务环境 sudo nano /etc/crtmpserv…
之前写过 <从H264码流中获取视频宽高 (SPS帧)> . 但发现很多局限性,而且有时解出来是错误的. 所以重新去研究了. 用了 官方提供的代码库来解析. 花了点时间,从代码库里单独把解析SPS的代码提取出来,写成函数. <最权威的从H264码流中,解析出最全的SPS信息. 包括宽高等> 欢迎大家下载,指导查看. 使用说明: 使用说明:1. 在使用的CPP中包含ProcessSPS.h2. 参考使用代码DataPartition *dp = AllocPartition(1);s…
获取.h264视频宽高的方法 花了2个通宵终于搞定.(后面附上完整代码) http://write.blog.csdn.net/postedit/7852406 图像的高和宽在H264的SPS帧中.在H264码流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"为开始码的,找到开始码之后,使用开始码之后的第一个字节的低5位判断是否为7(sps),等于7表示该帧就是SPS帧,从该帧就可以解析出高和宽,SPS是个结构体,里面有两个成…
虽然还是没有搞出来,但总感觉快了哈哈(哪来的自信) 1.RTP协议接受数据 #region 1-RTP协议变量声明 RTPSession session; RTPReceiver receiver; RTPParticipant participant; private Dictionary<uint, List<RTPPacket>> Clients; #endregion #region 对RTP进行初始化,并接收数据,调用之后就可以接收数据了 session = new RT…
今天看了不少,却感觉收获寥寥. 1.H264相关知识 因为RTP协议发过来的数据已经经过了H264编码,所以这边需要解码.补充一下H264的相关知识. 与以往的视频压缩标准相比,H.264 视频压缩标准(简称H.264)具有更出色的性能,因此H.264 被称为新一代视频压缩标准.H.264 与H.263 或MPEG-4 相比,       主要新增特性如下:      1.采用更为精细和丰富的帧内编码及帧间预测方式,有效地减少残差数据.      2.引入新的算术编码方式,使得数据压缩比更高. …
转自:http://blog.csdn.net/sphone89/article/details/17492433 H.264 Profiles H.264有四种profile,每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP.EP.MP.HP: 1.BP-Baseline Profile: a.I/P slices b.Multiple reference frames (–refs <int>, >1 in the x264 CLI) c.In-loop d…
iOS音频AAC视频H264编码 推流最佳方案 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1    功能概况 *  实现音视频的数据的采集 *  实现音视频数据的编码,视频编码成h264,音频编码成aac *  实现音视频数据的发布,将编码好的音视频数据传输到服务器 2 视频和音频编码方案 视频硬编码需要使用AVAssetWriter,但是他只支持直接将数据编码成h264并写入文件,不提供接口中途获取视频数据处理,我们需要在保存的文件中读出数据 据顶采用软编码,主流开源编解…
480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清   美国消费电子协会(CEA)将4K的分辨率正式命名为Ultra HD(Ultra High-Definition) 目前视频行业里的视频分辨率的规范: (1)高清(High Definition),是我们目前相对比较熟悉的一个词语.高清是在广播电视领域首先被提出的,最早是由美国电影电视工程师协会(SM…
本文整理自自网络,非原创,喜欢相关文章请关注我们的微信公众号:blackerteam H.265 H.265是ITU-TVCEG继H.264之后所制定的新的视频编码标准.H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进.新技术使用先进的技术用以改善码流.编码质量.延时和算法复杂度之间的关系,达到最优化设置.具体的研究内容包括:提高压缩效率.提高鲁棒性和错误恢复能力.减少实时的时延.减少信道获取时间和随机接入时延.降低复杂度等.H264由于算法优化…
1. H.264是MPEG4的第十部分,是一个标准.对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC. 2.x264是一个编码器,他参照的标准是H.264.对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性.但x264非常优秀,并不比H264的商业编码器差. 3.h264与AVC1都是FourCC (他俩通常在什么情况下使用呢?)FOUR…
  http://blog.csdn.net/u012917616/article/details/40921861 不废话,直接上.sh脚本: export NDK=/home/xxx/my_software/android-ndk-r10 export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt export PLATFORM=$NDK/platforms/android-14/arch-arm export PRE…
转自:http://www.360doc.com/content/13/0124/08/9008018_262076786.shtml   SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐. EBSP 扩展字节序列载荷-- >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码…
1.NAL全称Network Abstract Layer, 即网络抽象层.         在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL).其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输.因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外).在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的…
H264--编码原理以及I帧B帧P帧--1 前言 ----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内.所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/…
H264元素的分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 在H.264 中,句法元素共被组织成  序列.图像.片.宏块.子宏块五个层次.在这样的结构中,每一层的头部和它的数据部分形成管理与被管理的强依赖关系,头部的句法元素是该层数据的核心,而一旦头部丢失,数据部分的信息几乎不可能再被正确解码出来,尤其在序列层及图像层. 在 H.264 中,分层结构最大的不同是取消了序列层和图像层,并将原本属于序列和图像头部的…
前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内.所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C帧,这样循环下去.这…
H.264有四种profile,对应四种H264画质级别.每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP.EP.MP.HP: 1. BP-Baseline Profile 基本画质,支持I/P帧,无B帧.只支持无交错(Progressive)和CAVLC 主要用于可视电话.会议电视.无线通信等实时视频通信. 2. EP-Extended Profile 进阶画质,支持I/B/P/SP/SI帧.只支持无交错(Progressive)和CAVLC 主要用于流媒体服务. 3…
1.NAL全称Network Abstract Layer, 即网络抽象层.         在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL).其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输.因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外).在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的…
专业名词解释 VCL(Video Coding Layer)视频编码层 NAL(Network Abstraction Layer)网络提取层 SPS(Sequence Parameter Set) 序列参数集 PPS(Picture Parameter Set)图像参数集 IDR(Instantaneous Decoding Refresh)即时解码刷新 ES(Elementary Stream) 基本码流,包含视频,音频或数据的连续码流 PES(Packet Elementary Strea…
#include "libavcodec/avcodec.h" #include "libswscale/swscale.h" #include "libavutil/opt.h" #include "libavutil/imgutils.h" #include <stdio.h> #include <string.h> #include <jni.h> #include <andro…
使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两项从哪里获取呢?答案是从H264码流中获取.在H264码流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"为开始码的,找到开始码之后,使用开始码之后的第一个字节的低5位判断是否为7(sps)或者8(pps), 及data[4] &…
// [h264编码出的NALU规律]// 第一帧 SPS[0 0 0 1 0x67] PPS[0 0 0 1 0x68] SEI[0 0 0 1 0x6] IDR[0 0 0 1 0x65]// p帧      P[0 0 0 1 0x61]// I帧    SPS[0 0 0 1 0x67] PPS[0 0 0 1 0x68] IDR[0 0 0 1 0x65]// [mp4v2封装函数MP4WriteSample]// 此函数接收I/P nalu,该nalu需要用4字节的数据大小头替换原有…
录制程序要添加新功能:录制CMMB电视节目,我们的板卡发送出来的是RTP流(H264视频和AAC音频),录制程序要做的工作是: (1)接收并解析RTP包,分离出H264和AAC数据流: (2)将H264视频和AAC音频以某种格式封装,最后存成文件,供用户查看. 第一步已经有部分代码可供参考,因此很快就完成了. 第二步,我们决定封装成mp4,查找了一些资料后,决定使用开源库mp4v2来合成mp4文件. 技术路线已确定,就开工干活. (一)mp4格式的基础知识. 关于mp4格式,网上介绍的不少,有以…