FMUSER Wirless Transmit Video And Audio More Easier !

[email protected] WhatsApp +8618078869184
Language

    FFMPEG video codec process H.264 hardware codec implementation

     

    Currently, smartphones, PDAs, etc., more and more embedded devices, such as embedded devices, support HD video acquisition and playback, high-definition video acquisition or playback functions is widely used in game equipment, monitoring equipment, video conferencing equipment and digital network TV TV. Equisical in embedded systems. The implementation of these functions is based on high performance video hardware codec technology. This paper describes the implementation of FFMPEG-based H.264 video hardware codes on the S3C6410 processor, providing a reference for digital entertainment, video surveillance, and video communication system development process implementation of high-definition video hardware codec. Ffmpeg [1] is an open source free cross-platform video and audio streaming scheme, which belongs to free software. It includes a very advanced audio / video editor library libavcodec, providing a complete solution for recording, conversion, and streaming video. FFMPEG supports more than 40 codes such as MPEG4, FLV, as well as more than 90 decodes such as AVI, ASF. At present, the domestic popular player storm video and foreign more popular MPLAYER use FFMPEG in audio / video codec. S3C6410 [2] is the application processor chip introduced by Samsung, based on ARM11 architecture, the frequency up to 800 MHz. It has a multimedia hardware acceleration function, including MPEG4 SP, H.264 / 263 BP and VC1 (WMV9) greater than 30 FPS, available for mobile phones, tablets, and game consoles, etc. Performance embedded devices. The processor of domestic mobile phone Meizu M8 is S3C6410. Although FFMPEG provides a simple application programming interface (API), it is convenient to implement video software codec [3] in various formats, but software codes cannot be used when processing complex video codes (such as H.264). In an embedded environment where the processing speed is not fast, there are not many memory spaces. In order to use FFMPEG to implement complex video codec in a limited embedded environment, the following is analyzed based on the FFMPEG video encoding process and the S3C6410 processor video encoding method. FFMPEG-based H.264 hardware The implementation method of codec is on the S3C6410 processor. 1 FFMPEG video encoding process Ffmpeg mainly includes ENCODE / DECODE, MUXER / DEMUXER and memory operations 3 modules. Encode / Decode module is used for the encoding and decoding of audio and video, stored in the libavcodec subdirectory; Muxer / Demuxer module is used for the merger and separation of audio and video (also known as mixer module), stored in the libavformat directory; memory is commonly used The module is stored in the libavutil directory. The following is based on the decoding process as an example to analyze the FFMPEG video encoding process. Decoding basic flow a total of 4 steps: 1 Registration The codec and mixers that may be used. The AV_REGISTER_ALL (Void) function stores the mixer and codec related information of all FFMPEG supported in the memory by executing REGISTER_EGDEMUX (X, X) functions. 2 Open the video file. The format of the detection file in av_open_input_file (avformatcontext ** ic_ptr, const char * filename, avinput, the int buf_size, avformatparameters * ap) function is found in the file format from the chain mixer (DEMUXER) And separated video information. 3 Get video information. Get the video format through the AV_FIND_STREAM_INFO (AvformatContext * IC) function. According to the video format, the corresponding video decoder is found in a chain video decoder and open the decoder to the next video using the AVCODEC_OPEN (AVCODECCONTEXT * AVCTX, AVCODEC * CODEC) function. 4 Decoding a frame of video, decoding a frame of video via avcodec_decode_video (AvcodecContext * Avctx, Avframe * Picture, INT * GOT_PICTURE_PTR, Const Uint8_t * buf, int buf_size) function. FFMPEG's encoding process is similar to the decoding process. Different from the third step in the format encoded in the format in the chain video encoder and perform the encoding process. Through the above to FFMPEG video codec, you can know that in order to add a custom video codec in FFMPEG, the key is used to use this codec when the program is running, the key is to be as follows: 1 Implement a custom codec according to the description of the codec for the FFMPEG. 2 Add a custom video codec to the video codec chain through the Register_EndercDec (X, X) function. When obtaining video information, the video that requires encoded or decoded can find a custom video codec in the video codec chain. 2 S3C6410 processor video encoding method S3C6410 Video Code Software Architecture [4] is shown in Figure 1. The bottom layer is the operating system space, the upper layer is the user space, and the video codec is used in the form of a device file by driving and operating the system, using the method and normal files, including file open and off, file read and write, and input / output control ( IOCTL, INPUT / OUTPUT CONTROL. Figure 1 S3C6410 Video Code Software Architecture The specific operation method is as follows: 1 Open the codec device file via the Open function; 2 Use the MMAP method to map the input / output cache space between user space and drive space, and the advantage is that the data input / output can be quickly performed; 3 Code parameters by IOCTL device, initialize the codec; 4 Enter data, perform the codec process, output data by IOCTL; 5 Turn off the codec device file via the Close method. It is worth noting that whether or not the code or decoding, the processing data is operated in the form of one frame frame, so the fourth step is a looping process until all data processing is completed. In addition, although the codec is used in the form of a device file, it cannot use the standard file read and write operation, see the decoded device driver can find that the file read and write function is empty, this point 3S development Documentation is not explained. , Reading the full text, the technology area About μClinux transplantation on ARM7 S3C4510B Multi-looped into charge and discharge controller design Interrupt service routines for ARM embedded systems LED dimming engine design based on 8-bit MCU How to display Chinese characters, ASCII characters and color graphics on the LCD monitor

     

     

     

     

    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