I’ve been working with Android audio and video for a while now, and it takes a lot more effort than normal application layer development. In order to learn the recording, coding and processing of audio and video, I have also seen dozens of projects, large and small. The general feeling is that the knowledge is scattered, more unfriendly to the friend who just started. Therefore, I came up with the idea of organizing an Android audio and video learning route. The learning effect of the system is definitely much better than the scattered supplementary knowledge.

Let’s take a look at one of my own study Outlines:

The figure above is just an outline. There are a lot of knowledge points to learn about specific audio and video, which is a road of no return. But it’s not hard to learn how to mix food, and it’s not just a mix of food. Look for a recruitment information to give everyone a bit of confidence now, can see, treatment is still very considerable.

All right, back to business.

Just look at the outline, everyone knows to learn audio and video recording, coding, processing, but do not know how to do it, do not know how to get started. I oneself be in when entry is same also, recesses oneself of search engine bit by bit accumulation, want to thank here of course to be in this domain the big guy of selfless dedication people. So here, I will refine the knowledge, apply the specific scene, theory combined with code, better help to master.

Here’s how TO learn, and trust me, if you do it, you’ll be hot in the audiovisual job market

First, the primary introduction:

First, draw pictures

  1. ImageView draws images
  2. The SurfaceView draws the image
  3. Custom View drawing pictures

Second, AudioRecord API details

Three, the use of AudioRecord recording, and generate WAV

  • Create an AudioRecord object
  • Initialize a buffer
  • Start the recording
  • Create a data stream that reads the audio data from the AudioRecord into the initialized buffer and imports the buffer data into the data stream.
  • Shutting down the data stream
  • Stop the recording

4. Play PCM audio with AudioTrack

1. Basic use of AudioTrack

  • MODE_STATIC mode
  • MODE_STREAM mode

2. The AudioTrack explanation

  • Type of audio stream
  • The concept of Buffer allocation and Frame
  • AudioTrack construction process
  1. AudioTrack vs. MediaPlayer
  • The difference between
  • contact
  • SoundPool

V. Use Camera API to collect video data

1. Preview Camera data

2. Callback NV21 data

Use MediaExtractor and MediaMuxer API to parse and package MP4 files

1. MediaExtractor API is introduced

2. MediaMuxer API is introduced

3. Use context

MediaCodec API details

1. MediaCodec is introduced

2. MediaCodec API specification

3. MediaCodec flow control

  • Basic concepts of flow control
  • Android hardcoded flow control
  • Android flow control policy selection

Due to the limited length of the article, the remaining content is too much, and the illustrations are limited. Only screenshots and contents can be shown below:

All knowledge points are detailed in the open source project”Lot”You can help yourself if you need.

Two, intermediate advanced chapter:

  • Android OpenGL ES development (a) : OpenGL ES introduction
  • Android OpenGL ES development (ii) : OpenGL ES environment construction
  • Android OpenGL ES development (three) : OpenGL ES defines shapes
  • Android OpenGL ES development (four) : OpenGL ES draw shapes
  • OpenGL ES uses projection and camera views
  • Android OpenGL ES development (6) : OpenGL ES add motion effects
  • OpenGL ES responds to touch events
  • Android OpenGL ES development (eight) : OpenGL ES shader language GLSL
  • Android OpenGL ES development (nine) : OpenGL ES texture mapping
  • Android OpenGL ES development (10) : Interact with shaders via GLES20
  • Use OpenGL to display an image
  • GLSurfaceviw draws Camera preview and takes photos
  • Use OpenGL ES to complete video recording and achieve video watermark effect

Advanced Inquiry:

  • In-depth study of audio and video coding, such as H.264, AAC, research using open source codec libraries, such as X. 264, JM, etc
  • In-depth study of audio and video related network protocols such as RTMP, HLS, and packet formats such as FLV, MP4
  • In-depth study of some open source projects in audio and video field, such as WebrTC, FFMPEG, ijkPlayer, Librtmp and so on
  • Ffmpeg library transplant to Android platform, combined with the experience accumulated above, write a simple audio and video player
  • Porting x264 library to Android platform, combining with the experience accumulated above, the video data H264 software editing function is completed
  • The librtmp library is transplanted to Android platform, and combined with the experience accumulated above, the push stream function of Android RTMP is completed

Audio and video coding and decoding technology

  • Audio and video codec technology (I) : MPEG-4/H.264 AVC codec standard
  • Audio and video coding technology (II) : AAC audio coding technology

Streaming media protocol

  • Streaming media protocol (1) : HLS
  • Streaming media protocol (2) : RTMP

Multimedia File Format

  • Multimedia file format (I) : MP4 format
  • Multimedia file format (II) : FLV format
  • Multimedia file format (3) : M3U8 format
  • Multimedia file format (4) : TS format
  • Multimedia file format (V) : PCM/WAV format

FFmpeg learning record

  • FFmpeg Command line tool learning (1) : view the media file header information tool ffprobe
  • FFmpeg command line tool learning (2) : play media file tool FFplay
  • FFmpeg command line tool learning (three) : media file conversion tool FFmpeg
  • FFmpeg command line tool learning (four) : FFmpeg acquisition equipment
  • FFmpeg command line tool learning (five) : FFmpeg adjust audio and video playback speed

  • FFmpeg Learning part 1: Introduction to FFmpeg
  • Install FFmpeg on Mac
  • FFmpeg learning (3) : FFmpeg porting to Android platform
  • FFmpeg learning (4) : FFmpeg API introduction and general API analysis
  • FFmpeg learning (five) : FFmpeg codec API analysis
  • FFmpeg learning (6) : FFmpeg core module libavFormat and libavCodec analysis

  • FFmpeg structure learning (A) : AVFormatContext analysis
  • FFmpeg structure learning part II: AVStream analysis
  • FFmpeg structure learning part III: AVPacket analysis
  • FFmpeg structure learning (4) : AVFrame analysis
  • FFmpeg structure learning: AVCodec analysis
  • FFmpeg structure learning (VI) : AVCodecContext analysis
  • FFmpeg structure learning (7) : AVIOContext analysis
  • FFmpeg structure learning (8) : relationships between important structures in FFmpeg

More directory screenshots:

Conclusion: * * * * the above is about the audio and video data and summarizes the strongest part (and no screenshots), believe should be the most complete cut, all materials are free to share with everyone, and save the friends interested in audio and video of time looking for information, if you just need to be available free here

The prospect of audio and video development, I believe you can see from the relevant recruitment website, whether streaming media development or audio and video processing development, are a large number of recruitment, and due to the relatively high threshold of entry, learning cycle is long, the salary is also high.

In addition: Xiaobian also collect and sort out some audio and video related supporting videos, I believe that we can make learning more quickly and effectively:

All the information in this article is free to share with you,Just click here with your finger to get free.

The road to being an Android architect is a long one. Learning is like rowing upstream. If you don’t advance, you’re going to fall back. If you slack off, you’re going to fall back. Be a diligent and upward person, study harder, seize the center, ning jing not miscellaneous, ning designed not more.

If you need this full version of Android audio and video development, just support this article.

Quick Access: Download it here! Sincerity full!!

Sorting is not easy, feel helpful friends can help like share support small series ~

Your support, my motivation; I wish you a bright future and continuous offer!!