一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率
| Parameter Name | Type | Value | Comments |
| forbidden_zero_bit | u(1) | 0 | Despite being forbidden, it must be set to 0! |
| nal_ref_idc | u(2) | 3 | 3 means it is “important” (this is an SPS) |
| nal_unit_type | u(5) | 7 | Indicates this is a sequence parameter set |
| profile_idc | u(8) | 66 | Baseline profile |
| constraint_set0_flag | u(1) | 0 | We’re not going to honor constraints |
| constraint_set1_flag | u(1) | 0 | We’re not going to honor constraints |
| constraint_set2_flag | u(1) | 0 | We’re not going to honor constraints |
| constraint_set3_flag | u(1) | 0 | We’re not going to honor constraints |
| reserved_zero_4bits | u(4) | 0 | Better set them to zero |
| level_idc | u(8) | 10 | Level 1, sec A.3.1 |
| seq_parameter_set_id | ue(v) | 0 | We’ll just use id 0. |
| log2_max_frame_num_minus4 | ue(v) | 0 | Let’s have as few frame numbers as possible |
| pic_order_cnt_type | ue(v) | 0 | Keep things simple |
| log2_max_pic_order_cnt_lsb_minus4 | ue(v) | 0 | Fewer is better. |
| num_ref_frames | ue(v) | 0 | We will only send I slices |
| gaps_in_frame_num_value_allowed_flag | u(1) | 0 | We will have no gaps |
| pic_width_in_mbs_minus_1 | ue(v) | 7 | SQCIF is 8 macroblocks wide |
| pic_height_in_map_units_minus_1 | ue(v) | 5 | SQCIF is 6 macroblocks high |
| frame_mbs_only_flag | u(1) | 1 | We will not to field/frame encoding |
| direct_8x8_inference_flag | u(1) | 0 | Used for B slices. We will not send B slices |
| frame_cropping_flag | u(1) | 0 | We will not do frame cropping |
| vui_prameters_present_flag | u(1) | 0 | We will not send VUI data |
| rbsp_stop_one_bit | u(1) | 1 | Stop bit. I missed this at first and it caused me much trouble. |
skip_bits(&h->gb, 2);跳过两个位,表现为GetBitContext.index后移两个位置。
- 当前SPS的帧的宽 = (sps_info.pic_width_in_mbs_minus1 + 1) * 16
- 当前SPS的帧的高 = (sps_info.pic_height_in_map_units_minus1 + 1) * 16
extract the h.264 NAL units from the file using ffmpeg:
ffmpeg.exe -i Old Faithful.mp4 -vcodec copy -vbsf h264_mp4toannexb -an of.h264
fps=time_scale/(2*num_units_in_tick);
30/(2*1)=15fps 
一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率的更多相关文章
- H.264码流结构解析
from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...
- 使用FFMPEG类库分离出多媒体文件中的H.264码流
在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流.只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可. 经试验,在分离MP ...
- (转)使用FFMPEG类库分离出多媒体文件中的H.264码流
出自:http://blog.csdn.net/leixiaohua1020/article/details/11800877 在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的 ...
- (转载)H.264码流的RTP封包说明
H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...
- h.264码流解析_一个SPS的nalu及获取视频的分辨率
00 00 00 01 67 42 00 28 E9 00 A0 0B 77 FE 00 02 00 03 C4 80 00 00 03 00 80 00 00 1A 4D 88 10 94 0 ...
- 【视频编解码·学习笔记】6. H.264码流分析工程创建
一.准备工作: 新建一个VS工程SimpleH264Analyzer, 修改工程属性参数-> 输出目录:$(SolutionDir)bin\$(Configuration)\,工作目录:$(So ...
- 海思3518EV200 SDK中获取和保存H.264码流详解
/****************************************** step 2: Start to get streams of each channel. ********** ...
- RTP协议全解析(H264码流和PS流)
转自:http://blog.csdn.net/chen495810242/article/details/39207305 写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个 ...
- RTP协议全解析(H264码流和PS流)(转)
源: RTP协议全解析(H264码流和PS流)
随机推荐
- spring融合activitymq-all启动报错的解决办法
报错信息: nested exception is java.lang.NoSuchMethodError: org.springframework.core.annotation.Annotated ...
- 直接拿来用!最火的iOS开源项目(三)
相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红.尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱.在“直接拿来用!最火的iOS开源项目”系列文章(一).(二 ...
- Node.js 连接mySQL程序
环境:Oracle Enterprise Linux R5U7 安装mySQL 关于离线安装,下次在尝试,目前先来在线安装,过程如下: $ rpm -qa | grep -i mysql $ wget ...
- gin框架中间件解决跨域问题
http://www.niu12.com/article/45// 初始化routerrouter := gin.New() router.Use(gin.Logger()) router.Use(g ...
- Windows数据备份软件Deltacopy-数据备份与还原
官方网站:http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp System Requirements XP, 2000, 2003, 2008, Vi ...
- 增强学习--Q-leraning
Q-learning 实例代码 import numpy as np import random from environment import Env from collections import ...
- Python 的 LEGB 规则(转载)
转载:https://mp.weixin.qq.com/s?timestamp=1498528588&src=3&ver=1&signature=DfFeOFPXy44ObCM ...
- Yii使用公共函数
在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便. 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其 ...
- Mounting the NFS share on a Windows server
今天遇到一个相当奇怪的问题,在windows 上mount LINUX NFS, powershell 脚本可以成功, 用图形界面也可以成功,但BATCH就是不行.提示53网络错误. 不过公司已经有人 ...
- 在虚拟机安装 Linux Server (ubuntu-14.04-server)
在虚拟机安装 Linux Server (ubuntu-14.04-server) 过程 从下载開始到成功安装历时约1小时 还算快的啦 可能国庆假期间网速快点吧 1. 下载安装文件 watermar ...