FFmpeg/WebRTC/RTMP/NDK/Android audio and video streaming advanced development learning route
With the impact of the improvement of infrastructure (fiber-to-home, wifi coverage, 5G popularization), short video, live broadcast, video conferencing, online education, and online medical care have been pushed to the peak in an instant, and people's needs and requirements for audio and video are also increasing. more intense
The high learning cost and low efficiency of audio and video development are mainly manifested in the following aspects:
First of all, the training of audio and video developers is a long-term investment process with slow results. The results of audio and video development are too slow. Without a certain period of training and project feeding, it is difficult to meet the company's job requirements.
Secondly, if the audio and video developers are trained by their own company, the senior developers who are specially trained by themselves will not be lost easily. After all, what is lacking now is talents, and talents are the core competitiveness; big platform
And audio and video development also has many directions, such as:
If you are interested in audio and video transmission, you can learn various transmission protocols, various signaling controls, data transmission security, etc.
If you are interested in codec, you can learn H264, H265, VP8, AV1, etc. for video, and PCM, G72x, ilbc, etc. for audio
If you are interested in special effects, you can learn the knowledge of graphics, starting from various transcoding, beauty, filters, blurring, sharpening, etc.
If you are interested in the server, you can start by learning to build a media server, including audio and video data forwarding, signaling data processing, streaming, streaming protocol processing, etc.
If you are interested in various audio and video formats, you can learn audio and video data format encapsulation, including MP4, MVK, FLV, TS, RMVB, MP3, ogg, etc.
Of course, you can learn some open source libraries in depth, including FFMPEG, WebRTC, x264, live555, etc.
Difficulties in audio and video self-study
Audio and video self-study is very difficult, and it is difficult to find easy-to-understand online
Some resources on the Internet correspond to lower open source versions, for example, the FFmpeg version of Lei Xiaohua (Raytheon) blog is lower
Audio and video involve a large number of open source libraries and protocols
For example, the compilation of ffmpeg, if you are not familiar with various compilation errors
Janus compilation involves various open source components and fails to compile
For example, protocols such as RTP RTCP SDP STUN involved in WebRTC
Some friends with embedded audio and video have narrow technical skills and are not deep in technology
For example, some students have been working on audio and video drivers for 2 years, but they don’t understand how long a frame of audio can last
In general: audio and video knowledge is complex, and there are very few easy-to-understand materials; and there are a lot of wrong information on the Internet, which makes many beginners fall into the pit and cannot climb out
Here I recommend a set of learning routes for everyone, and the relevant "Audio and Video Development Core Knowledge Points and Source Code Information" is attached. I believe it can provide you with some help, and friends in need can also use it to check for omissions and fill in vacancies!
Friends in need: Click here to view the direct way ! !
The second phase of FFmpeg actual combat
Phase 3 streaming client
RTMP push-pull streaming project actual combat
Phase 4 Streaming Server
The fifth stage of WebRTC project combat
Phase 6 Android NDK