FMUSER Wirless Transmit Video And Audio More Easier !

[email protected] WhatsApp +8618078869184
Language

    [H.264 / AVC video codec technology] Fifth. Code stream package format of H.264

     

    "H.264 / AVC Video Code Technology Detailed" video tutorial has been on "CSDN", which details the background, standard protocol and implementation of H.264, and through a practical engineering form to H.264 Standard analysis and implementation, welcome to watch! "The paper is very shallow, perceived this matter", only the standard document is operated in the form of code, in order to have a sufficient understanding and understanding of the video compression coding standards! Link address: H.264 / AVC video codec technology detailed This section video free H.264 syntax element after the encoding, to generate output data are encapsulated NAL Unit is passed, the data combining together to form a plurality of NAL Unit of total output stream. For different application scenarios, NAL different predetermined format adapted to transmit a common package type. NAL Unit is usually divided into two types of transmission formats: RTP packet format and the byte stream format; Byte stream format: byte stream format specified in Annex B of the H.264 standard protocol documents, most of the default output format encoder implementation. Byte stream format transmitted in the form of a continuous bit stream of bytes, must be obtained from the code stream NAL Unit. The method of identification is an identification code of the NAL Unit code stream: 0x00 00 00 01 or 0x 00 00 01. The series is based H.264 stream using a stream-based format. RTP packet format: NAL Unit Packet Format The Format Encapsulated method according to RTP packets. RTP packet format using no additional segmentation identification code, data length information corresponding to the information in the RTP packet encapsulation. This package format is not clearly defined in the standard protocol documents, but do some processing JM Decoder in. Usually represented by the length of the whole length of the NAL Unit with a fixed length code at the start of the NAL Unit. H.264 code stream format stream structure shown below: NAL Unit byte stream format: leading_zero_8bits: before the first 0 byte prefix NAL unit; zero_byte: a character byte 0; start_code_prefix_one_3bytes: 3-character prefix starting symbol, the value of 0x 00 00 01, and together constitute a zero_byte 0x 00 00 0001 prefix character; nal_unit: Unit represents a bit of NAL; trailing_zero_8bits: 0 end characters; For H.264 stream format byte stream read from the code stream NAL Unit method to detect data between 0x 00 00 01 or two 0x 00 00 00 01 start code. The following presents a simple procedure to extract NAL UNIT Reference: // FindNALContent.cpp: custom console application entry point. // #include "stdafx.h" typedef unsigned char uint8; Using namespace std; static int find_nal_prefix (FILE ** pFileIn, vector & nalBytes) { FILE * pFile = * pFileIn; / * 00 00 00 01 x x x x x x 00 00 00 01 * / uint8 prefix [3] = {0}; uint8 fileByte; / * [0] [1] [2] = {0 0 0} -> [1] [2] [0]} = {0 0 0 -.1882 [2] [0] [1] = {0 00} getc () = 1 -> 0 0 0 1 [0] [1] [2] = {0 0 1} -> [1] [2] [0] = {0 0 1} -> [2] [0] [1] = {0 01} * / nalBytes.clear (); int pos = 0, getPrefix = 0; for (int idx = 0;. idx .1881 3; idx ++) { prefix [idx] = getc (pFile); nalBytes.push_back (prefix [idx]); } while (! feof (pFile)) { if ((prefix [pos% 3] == 0) && (prefix [(pos + 1)% 3] == 0) && (prefix [(pos + 2)% 3] == 1)) { // 0x 00 00 01 found getPrefix = 1; nalBytes.pop_back (); nalBytes.pop_back (); nalBytes.pop_back (); Break; } else if ((prefix [pos% 3] == 0) && (prefix [(pos + 1)% 3] == 0) && (prefix [(pos + 2)% 3] == 0)) { if (1 == getc (pFile)) { // 0x 00 00 00 01 found getPrefix = 2; nalBytes.pop_back (); nalBytes.pop_back (); nalBytes.pop_back (); Break; } } Else { fileByte = getc (pFile); prefix [(pos ++)% 3] = fileByte; nalBytes.push_back (fileByte); } } return getPrefix; } int _tmain (int argc, _TCHAR * argv []) { FILE * pFile_in = NULL; _tfopen_s (& pFile_in, argv [1], _T ( "rb")); if (! pFile_in) { printf ( "Error: Opening input file failed \ n."); } . Vector

     

     

     

     

    List all Question

    Nickname

    Email

    Questions

    Our other product:

    Professional FM Radio Station Equipment Package

     



     

    Hotel IPTV Solution

     


      Enter email  to get a surprise

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org ->Afrikaans
      sq.fmuser.org ->Albanian
      ar.fmuser.org ->Arabic
      hy.fmuser.org ->Armenian
      az.fmuser.org ->Azerbaijani
      eu.fmuser.org ->Basque
      be.fmuser.org ->Belarusian
      bg.fmuser.org ->Bulgarian
      ca.fmuser.org ->Catalan
      zh-CN.fmuser.org ->Chinese (Simplified)
      zh-TW.fmuser.org ->Chinese (Traditional)
      hr.fmuser.org ->Croatian
      cs.fmuser.org ->Czech
      da.fmuser.org ->Danish
      nl.fmuser.org ->Dutch
      et.fmuser.org ->Estonian
      tl.fmuser.org ->Filipino
      fi.fmuser.org ->Finnish
      fr.fmuser.org ->French
      gl.fmuser.org ->Galician
      ka.fmuser.org ->Georgian
      de.fmuser.org ->German
      el.fmuser.org ->Greek
      ht.fmuser.org ->Haitian Creole
      iw.fmuser.org ->Hebrew
      hi.fmuser.org ->Hindi
      hu.fmuser.org ->Hungarian
      is.fmuser.org ->Icelandic
      id.fmuser.org ->Indonesian
      ga.fmuser.org ->Irish
      it.fmuser.org ->Italian
      ja.fmuser.org ->Japanese
      ko.fmuser.org ->Korean
      lv.fmuser.org ->Latvian
      lt.fmuser.org ->Lithuanian
      mk.fmuser.org ->Macedonian
      ms.fmuser.org ->Malay
      mt.fmuser.org ->Maltese
      no.fmuser.org ->Norwegian
      fa.fmuser.org ->Persian
      pl.fmuser.org ->Polish
      pt.fmuser.org ->Portuguese
      ro.fmuser.org ->Romanian
      ru.fmuser.org ->Russian
      sr.fmuser.org ->Serbian
      sk.fmuser.org ->Slovak
      sl.fmuser.org ->Slovenian
      es.fmuser.org ->Spanish
      sw.fmuser.org ->Swahili
      sv.fmuser.org ->Swedish
      th.fmuser.org ->Thai
      tr.fmuser.org ->Turkish
      uk.fmuser.org ->Ukrainian
      ur.fmuser.org ->Urdu
      vi.fmuser.org ->Vietnamese
      cy.fmuser.org ->Welsh
      yi.fmuser.org ->Yiddish

       
  •  

    FMUSER Wirless Transmit Video And Audio More Easier !

  • Contact

    Address:
    No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou China 510620

    E-mail:
    [email protected]

    Tel / WhatApps:
    +8618078869184

  • Categories

  • Newsletter

    FIRST OR FULL NAME

    E-mail

  • paypal solution  Western UnionBank OF China
    E-mail:[email protected]   WhatsApp:+8618078869184   Skype:sky198710021 Chat with me
    Copyright 2006-2020 Powered By www.fmuser.org

    Contact Us