=====================================================
视音频编解码学习工程系列文章列表:

视音频编解码学习工程:H.264分析器

视音频编解码学习工程:AAC格式分析器

视音频编解码学习工程:FLV封装格式分析器

视音频编解码学习工程:TS封装格式分析器

视音频编解码学习工程:JPEG分析器

=====================================================

本文介绍一个自己的开源小项目:H.264码流分析器。在学习过程中,从开源社区获得了很多的资源,在此也算是对开源社区的回馈了。

我这个项目规模不大,主要可以用来学习H.264码流结构。使用VC 2010的MFC开发完成。在对H.264的NAL进行解析的过程中,用到了另外一个开源工程:h264bitstream。h264bitstream工程本身还是挺优秀的,可以比较详细的列出NAL的信息。

软件的exe以及源代码已经上传到了SourceForge上。上传前又增加了一个英文界面,紧跟国际潮流~

项目主页

SourceForge:https://sourceforge.net/projects/h264streamanalysis/

Github:https://github.com/leixiaohua1020/h264_analysis

开源中国:http://git.oschina.net/leixiaohua1020/H264_Analysis

CSDN下载地址(程序+源代码):http://download.csdn.net/detail/leixiaohua1020/6838801

更新记录==============================

1.1版(2014.7.8)

* 更换了界面

* 原工程支持Unicode编码

* 支持中英文切换

* 修复了一个内存泄漏的Bug

* 原版本仅支持鼠标单击NAL显示其详细信息,新版本支持键盘上下键操作浏览NAL详细信息。

编译好的可执行程序:http://download.csdn.net/detail/leixiaohua1020/7767725

CSDN源代码:http://download.csdn.net/detail/leixiaohua1020/7767631

PUDN源代码:http://www.pudn.com/downloads644/sourcecode/multimedia/detail2605169.html

新版(2016.1.1)

* 精简了代码,使之更通俗易懂

* 修改了少量界面UI

* 修正了少量解析错误

* 增加了解析速度

已经更新至SourceForge上

软件使用介绍

其实软件的使用还是相当简单的,一共也没有几个按钮。

软件运行后,首先打开一个码流文件(支持拖拽)。然后单击“开始”,可以解析出一系列NAL,在左侧的列表中显示出来。列表中显示出了每一个NAL的nal_reference_idc、nal_type等信息,不同种类的NAL被标记成了不同的颜色。单击任意一个NAL,可以在右边显示出其详细信息。界面如图所示:

由于传到了SourceForge上。还做了个英文界面。

软件源代码简析

源代码方面和普通的MFC程序差不太多,懂得MFC的人应该很快就能看懂。大部分地方都做了注释。唯一比较特殊的地方,可能就在于对开源项目h264bitstream进行了一个简单的封装,在此就不细说了。注释方面做得比较充分。

如果有什么使用问题,可以反馈给我,以后有时间进行修改升级。代码某些地方还不完善,以后有时间修改。



视音频编解码学习工程:H.264分析器的更多相关文章

  1. 视音频编解码学习工程:JPEG分析器

    =====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...

  2. 视音频编解码学习工程:TS封装格式分析器

    =====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...

  3. 视音频编解码学习工程:AAC格式分析器

    =====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...

  4. 视音频编解码学习工程:FLV封装格式分析器

    ===================================================== 视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习 ...

  5. [总结]FFMPEG视音频编解码零基础学习方法--转

    ffmpeg编解码学习   目录(?)[-] ffmpeg程序的使用ffmpegexeffplayexeffprobeexe 1 ffmpegexe 2 ffplayexe 3 ffprobeexe ...

  6. FFMPEG视音频编解码零基础学习方法

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...

  7. FFMPEG视音频编解码零基础学习方法-b

    感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...

  8. [总结]FFMPEG视音频编解码零基础学习方法

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...

  9. 【转】[总结]FFMPEG视音频编解码零基础学习方法

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...

随机推荐

  1. iOS多线程编程--NSOperation(转)

    这篇文章写得非常不错,基础用法都涉及到了,我把文章提到的例子都写到了demo里面, 原文地址: iOS多线程--彻底学会多线程之『NSOperation』 demo下载:https://github. ...

  2. js数组排序,支持正反排序以及多维度排序

    工作中遇到js数组排序问题,数组中存储的都是对象,于是就百度了下,利用别人的代码进行修改,最终完成可以倒序.反序,可以进行多维度排序的功能源码如下: /** * js数组排序 支持数字和字符串 * @ ...

  3. 剑指架构师系列-Redis安装与使用

    1.安装Redis 我们在VMware中安装CentOS 64位系统后,在用户目录下下载安装Redis. 下载redis目前最稳定版本也是功能最完善,集群支持最好并加入了sentinel(哨兵-高可用 ...

  4. south 命令学习

    south 命令学习 概述 在django某个版本之前,django自身提供一个创建数据库的命令-syncdb,它会根据model来创建相应的表,但是这个命令不好的地方在于,如果想要对model进行更 ...

  5. 04_Struts2标签

    1.通用标签: property标签: 用来输出值栈属性的值 如果value属性没有给出,ValueStack值栈栈顶对象的值被输出 许多情况下,EL表达式可以提供更简洁的语法 url标签: url方 ...

  6. Vulkan API基本概念

    设备初始化 Instance --> GPU --> Device Instance表示具体的Vulkan应用.在一个应用程序中可以创建多个实例,这些实例之间相互独立,互不干扰. 当调用A ...

  7. Swift3中dispatch_once废弃的解决办法

    在Swift中如果想搞类的单例模式,那么在初始化的时候一般会使用just one time执行的方式,我们使用dispatch_once_t配合调用dispatch_once方法,一般的代码如下: s ...

  8. python 3 dict函数 神奇的参数规则

    >>> dict({1:2},2=3)SyntaxError: keyword can't be an expression>>> dict({1:2},**{2: ...

  9. 百度map 3.0初探

    1.简介 在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联.因此,您必须先有百度帐户,才能获得开发密钥.并且,该密钥与您创建的过程名称有 ...

  10. android的activity栈管理

    在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplicat ...