directory

  1. Why study audio and video?

  2. How to learn systematic audio and video?

  3. Audio and video related materials

  4. Learning to practice the output of the article classification polymerization

  5. harvest

Recently a friend asked to learn audio video, how should learn, what information?

This problem has been bothering me for a long time. Several years ago, I wanted to start learning about audio and video, but I could not find the way. I could not last more than two weeks. Looking back at this series of articles, I have written more than 30 articles so far. Although I can’t say THAT I have started, the more I learn, the more I find out that I can’t learn and the more things I need to learn. But why has this one lasted longer and produced more articles than several attempts over the past few years? This article and on their own review and reflection, hope to want to learn audio and video friends are also helpful.

Why study audio and video?

I do android application development, Android itself is also a lot of need to learn the content, the more low-level, basic things are more general, such as design pattern, data structure, algorithm, communication mechanism, multi-threaded mechanism, JVM virtual machine and so on. The above content combined with specific business and scenarios to learn the application of good, to their own improvement is also very beneficial. One of my role models is that I have deep knowledge and ability in this area.

For me personally, the feelings of audio and video, 4-5 years ago has been buried, then made a live broadcast on demand of sports app, come into contact with some audio and video related knowledge, then wrote an article on the half-finished android audio video point/broadcast module development: blog.csdn.net/u011570979/… However, due to external reasons of the work direction and more importantly, my lack of cognition, I had no strong desire for the learning and development path of audio and video, so I gave up.

During the National Day of 2020, I reexamined my plan and annual goals, and found that the most important personal goal, “on the road to audio and video development”, had not taken the first concrete step. After a serious conversation with myself, two questions came to mind

  1. Why study audio and video
  2. How to systematically learn audio and video then began this series of learning practices, mainly cognitive improvement, long-term, systematic thinking.

With the rapid development of short videos represented by Douqiao and long videos represented by B station in recent years, a change has been made to the hot live broadcast in 2016 or so. But it is still in the audio and video field. Let’s take a look at the latest data in “Trustdata Big Data”

[Trustdata Big Data] : mp.weixin.qq.com/s/otGI_yvvF…

Through the Top20 list above, we can clearly see that there are 5 apps directly related to audio and video. What’s more amazing is that almost all of the Top20 apps have audio and video related content. This is the current situation or trend of the industry.

Now audio video has been so hot, now learn to still have a chance? The theory of right-side chase also applies to our learning practice. The bottom of the rapid development of the audio and video industry is the more and more efficient information communication, chip equipment to be more powerful and intelligent. With the application of 5G and 6G, it is believed that audio and video is not a development direction in the future, but a basic function like water and electricity. It is also based on this cognitive change that I firmly believe in the development path of audio and video.

The code refers to a text from [FFmpeg audio and video development 20 years]

In the next 10 years, the technology will be the same, and the leading role may be moving from mobile apps to AI, edge computing. If it were not for the XX war, this year’s Hiss AI chip, the 4T computing power could dip below $10. Chip mass production, the price drop, will drive a new round of changes in the industry.

For software developers, there will also be new opportunities, audio and video, network communication, OpenGL/ES are all must master, engaged in related development, plus OpenCV, TensorFlow-Lite. Fundamentals of Deep learning. A personal view, only for reference.

So simply talking about FFmpeg has no meaning, talk about audio and video, digital image processing, network communication, with FFmpeg related, perhaps more reference value. What’s the future of FFmpeg? A technology can only solve a specific problem at an appropriate time.

Do you need software development when the codec is done by hardware? Codec no matter hard solution soft solution code amount is very small. Dozens of lines of code. It’s a small percentage of a project. A lot of code lies in network communication, image processing, software itself logic, etc.

How to learn systematic audio and video?

An important part of project management is the dismantling of tasks and their implementation. In the past, I wanted to take shortcuts and learn in one step, but there is no quick technique. Especially for a very large knowledge system, it is very important to disassemble and gradually learn and practice. Also in the National Day of 2020, through searching information combined with their own thinking, gradually formed the following five stages of learning

  1. Audio and video Android basics
  2. OpenGL ES
  3. JNI&NDK series
  4. FFmpeg, x264
  5. Open source projects (ExoPlayer, iJkPlayer, GpuImage)
  6. Follow-up to be determined (not yet added)… Such as openCV, webRTC

These stages are the key nodes on the learning road, forming the cognitive map. At each stage, we find the corresponding data and then break the task into subtasks. By forcing input through output, we constantly iterate our learning writing system.

3. Audio and video related materials

3.1 books in class

“Audio and video development advanced Guide” “FFmpeg from entry to master” “OpenGL ES application Development Practice Guide” “OpenGL ES 3.0 Programming Guide” “OpenGL Programming Guide” “Computer Graphics Foundation (OpenGL edition)” “Comic algorithm” “Programming gems” “Algorithm” Tinking in C++

3.2 System cognition

[FFmpeg audio and video development for 20 years] : blog.csdn.net/chenchao_sh… [Android audio-visual development study thinking] : www.cnblogs.com/renhui/ : mp.weixin.qq.com/s/u1MktZdId…

[Android audio-visual development guide] : blog.51cto.com/ticktick/19… [] from the development of small white to audio and video experts: blog.51cto.com/ticktick/20…

[Column of YWL5320] : blog.csdn.net/ywl5320

3.3 Online video materials

: www.bilibili.com/video/BV1p5…

[introduction to computer graphics OPENGL] : www.bilibili.com/video/BV1px…

[is still silicon valley Java data structure and algorithm of Java (Java data structures and algorithms)] : www.bilibili.com/video/BV1E4…

[[C language description] “data structure and algorithm” (the little turtle)] : www.bilibili.com/video/BV1jW…

[dark horse programmers originality work | c + + tutorial from 0 to 1 introduction to programming, learning to program is no longer difficult] : www.bilibili.com/video/BV1et…

[Android design advanced post – combat the NDK (of)] : www.bilibili.com/video/BV1Za…

[based on the production of FFmpeg + SDL video player – LeiXiaoHua] : www.bilibili.com/video/BV14x…

Four, write articles classification polymerization

To cluster the articles I have written, also put on [github]: github.com/ayyb1988/me… To facilitate subsequent updates,

Phase 1: Android multimedia

Audio and Video Development Journey (part 1) Three ways to draw pictures

Audio and Video Development journey (2) AudioRecord recording PCM audio

AudioTrack plays PCM audio

Audio and video development journey (4) Camera video collection

Audio and video development journey (five) MediaExtractor MediaMuxer achieve video decapsulation and synthesis

Audio and Video development Journey (vi) MediaCodec hard coding process and practice

Phase 2: OpenGL ES

Basic concepts of OpenGL ES

Audio and Video Development Journey (viii) Rendering process of GLSL and Shader

Audio and Video development journey (9) OpenGL ES draw plane graphics

Audio and video development journey (ten) GLSurfaceView source code parsing &EGL environment

OpenGL ES Matrix Transformation and Coordinate system

Audio and Video Development Journey (12) OpenGL ES textures

OpenGL ES Filters (Part 1)

OpenGL ES Real-time filters

Audio and Video Development Journey (15) OpenGL ES Particle System – Fountain

OpenGL ES Particle Effects – Fireworks Explosion

Stage 3: JNI&NDK

Audio and Video Development Journey (17) Learning and using JNI and NDK

JNI – Reference types, exception handling, function registration

Ndk-build and Cmake

A journey through audio and video development (20) Pointers, memory models, references

Audio and video development journey (21) Operator overloading, inheritance, polymorphism, templates

The Journey of Audio and Video Development (22) Container of STL

Subseries algorithm

Audio and Video Development Journey (23) Algorithm series – Bubble sort

Audio and Video Development Journey (24) Algorithm series – Quicksort

Audio and video Development Journey (25) Algorithm series – heap sort

(26) Algorithm series – selection, insertion sort and the implementation of SORT in STL

Audio and Video development journey (27) Algorithm sequence – binary search tree

Audio and Video development Journey (28) Algorithm sequences – balanced binary trees

Audio and Video development Journey (29) Algorithm sequence – hash table

Phase 4: FFmpeg

Audio and Video Development Journey (30) – Audio and video basics

Audio and Video Development Journey (31) -FFMPEG common commands

In the following series of articles, welcome to follow the public account “Audio and video Development journey” and learn and grow together.

Five, the harvest

Through interaction, we can learn about the troubles of our friends and help ourselves examine and comb ourselves

  1. Re-examine why we should learn audio and video
  2. Learn audio and video methods and materials
  3. Study and practice of the article classification polymerization comb

Thank you for reading

Next we learn to practice ffMPEG series, welcome to follow the public account “Audio and video development journey”, learn and grow together.

Welcome to communicate