H264裸碼流I/P/B幀型別判別
花了兩天時間做了個h264裸流nal型別和frame型別檢測的工具,已上傳至github,有需要的自行下載。
1.NAL型別檢測
nal型別檢測非常容易,對照下表即可容易判斷型別。
較常用nal型別包括:SPS(7)、PPS(8)、IDR(5)、SLICE(1)。
而nal_type嵌在碼流資料的nal_header(size=1Byte)中,佔據據該位元組的後五位bits。
nal_header結構為:F(1bit) + NRI(2bits) + NAL_Type(5bits)。
因此,用winhex看裸流的二進位制資料時,通常看到start_code後的nal_header為:0x67, 0x68, 0x65, 0x41,其分別對應SPS、PPS、I幀、P幀或B幀。
如下一段裸流,可以看出:(紅色為SPS,綠色為PPS,藍色為I幀)
2.frame型別檢測
從nal_header可以容易找到I幀(0x65),但卻無法分辨出P幀和B幀,因為nal_header都是0x41(對應於nal_unit_type的1)。
如何分辨出來呢?
需要進入到slice層利用熵編碼資料來判斷,本工具主要針對該問題而設計的。
下面是編譯後執行結果片段:
&n
相關推薦
H264裸碼流I/P/B幀型別判別
花了兩天時間做了個h264裸流nal型別和frame型別檢測的工具,已上傳至github,有需要的自行下載。 1.NAL型別檢測 nal型別檢測非常容易,對照下表即可容易判斷型別。 較常用nal型別包括:SPS(7)、PPS(8)、IDR(5)、SLICE(1)。 而nal_
H264 概念之 I P B 幀
I frame :幀內編碼幀 又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視訊壓縮技術)的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。I幀可以看成是一個影象經過壓縮後的產物。 P frame: 前向預測編碼幀 又稱predictive-frame,
I,P,B幀和PTS,DTS的關係
基本概念: I frame :幀內編碼幀 又稱intra picture,I 幀通常是每個 GOP(MPEG 所使用的一種視訊壓縮技術)的第一個幀,經過適度地壓縮,做為隨機訪問的參考點,可以當成圖象。I幀可以看成是一個影象經過壓縮後的產物。 P frame: 前向預測編碼
從H264/H265碼流中獲取寬、高及幀率
在做碼流分析時,影象解析度、幀率這類的基本資訊,當然不可少。本文介紹如何從NAL中計算到影象寬、高,還有解析度。於是H264和H265有相似性,就在一起寫了。 一、從碼流獲得寬、高 1、H264 寬高可從SPS欄位計算得到,公式如下: Width = (pic_width_in_mb
H264/H265碼流的編碼位元速率設定
H264/H265碼流的編碼位元速率設定 一、什麼是視訊位元速率? 視訊位元速率是視訊資料(視訊色彩量、亮度量、畫素量)每秒輸出的位數。一般用的單位是kbps。 二、設定
Wireshark Lua: 一個從RTP抓包裡匯出H.264 Payload,變成264裸碼流檔案(xxx.264)的Wireshark外掛
抓取一個包含H.264 Payload RTP包的SIP會話或RTSP會話後,用Wireshark的Play功能只能播放聲音,不能播放視訊。把RTP payload直接匯出成檔案後也是不能直接播放的,因為H.264 over RTP封包是符合RFC3984規範的,
利用mp4v2實現H.264裸碼流實時封裝
1. mp4v2庫配置、交叉編譯 mp4v2 庫是一個專用於處理mp4容器的開源專案,其使用c++編寫,並提供c語言介面。 下載mp4v2庫的最新程式碼以後,使用標準linux configure
將h.264裸碼流推送到RTMP伺服器
// SPS 000000016742802995A014016E40 // PPS 0000000168CE3880 // IFrame 0000000165B8041014C038008B0D0D3A071..... // PFram
H264視訊碼流格式淺析
針對H264碼流格式說明,網上已經有很多介紹了,最近也在看這個,這裡根據自己理解,做個記錄。 1、H264的功能分為兩層:視訊編碼層(VLC,Video Coding Layer)和網路提取層(NA
Android線上視訊,RTMP,MediaCodec,MediaCamera(碼流_解析度_幀率)
視訊頻寬計算公式(碼流_解析度_幀率) (自己整理過的.) MediaRecorder有很強的硬體依賴性,因此不同的手機表現是不一樣的,有的手機資料傳輸的時候會出現阻塞現象,實時性就降低了 碼流/位元速率 碼流(Data Rate)是指視訊檔案在單位時間內使
live555實現Rtp碼流讀到一幀資料怎麼傳遞客戶端
1)實現一個sink讀取Live555的一幀資料後,測試發現有的碼流sps,pps,I幀是單獨的資料包傳遞過來的,這樣的話,在sink裡面需要對這些資料進行組幀,live555有沒有功能可以自己將這些資料包組成一幀資料,並且自動新增00 00 00 01這樣的頭資訊呢,如果
如何判斷h264碼流中的I幀和P幀
如何判斷碼流中的I幀和P幀 if(pData[i] == 0 && pData[i+1] == 0 && pData[i+2] == 0 &&
h264 I幀、P幀和B幀的特點
I幀:幀內編碼幀I幀特點:1.它是一個全幀壓縮編碼幀。它將全幀影象資訊進行JPEG壓縮編碼及傳輸;2.解碼時僅用I幀的資料就可重構完整影象;3.I幀描述了影象背景和運動主體的詳情;4.I幀不需要參考其他畫面而生成;5.I幀是P幀和B幀的參考幀(其質量直接影響到同組中以後各幀
h264 Gop組 I 、P、B 幀
H.264視訊資料組織結構-GOP影象組和組中3類不同的影象幀 前言 ----------------------- H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱,在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結果表明,在相鄰幾幅影象畫面中,一般有差別的畫素只有
影象和流媒體 -- I 幀,B幀,P幀,IDR幀的區別
一、H246簡介 H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱,在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結果表明,在相鄰幾幅影象畫面中,一般有差別的
H264--1--編碼原理以及I幀B幀P幀
在H264中影象以序列為單位進行組織,一個序列是一段影象編碼後的資料流,以I幀開始,到下一個I幀結束。 一個序列的第一個影象叫做 IDR 影象(立即重新整理影象),IDR 影象都是 I 幀影象。H.264 引入 IDR 影象是為了解碼的重同步
(一)H264編碼原理以及I幀B幀P幀
---------------------- 前言 ----------------------- H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱,在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結果表明,在相鄰幾幅
H264編碼原理以及I、P、B幀詳解
reference:http://www.cnblogs.com/cy568searchx/p/6125031.html H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱,在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結
H264編碼基本原理以及I幀B幀P幀的概念
前言 H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱。 在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結果表明,在相鄰幾幅影象畫面中,一般有差
H264--1--編碼原理以及I幀B幀P幀(1)
----------------------- H264是新一代的編碼標準,以高壓縮高質量和支援多種網路的流媒體傳輸著稱,在編碼方面,我理解的他的理論依據是:參照一段時間內影象的統計結果表明,在相鄰幾幅影象畫面中,一般有差別的畫素只有10%以內的點,亮度差值變化不超過2%,而色度差值的變化