/VABlog

0基础学习音视频路线;RGB/YUV/PCM/H264/H265/AAC/FVL等相关知识点介绍;音频视频编解码原理介绍;音视频分析工具;FFmpeg入门学习案例;OpenGL相关书籍推荐;完整的RTMP实践项目;更有海量学习资料,价值几千元的视频课程分享!!!

Primary LanguageCSSBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

为了更好的阅读请前往GitBook

一、前言

随着时代的发展,各种短视频、直播、语音客服等等走进了各行各业!而未来5g/6g技术普及的时候,音视频要成为每个项目的标配!而本人在学习和工作过程中整理了学习笔记和各方面的学习资料。

二、学习技能

技能 重要度 作用 学习建议
c/c++ ★★★★☆ 音视频开源库基本都是用c/c++写的,如:FFmpeg库用C语言写的,Webrtc底层是用c++写的。 1. 看视频;2. 看书:c++ primer 第5版;3. 看FFmpeg源码;4. 进阶看侯杰视频。5. 最重要自己动手敲。
cmake ★★★☆☆ 跨平台引导编译的重要语言。在CMakeList.txt文件体现。 1. 看视频;2. CMake 入门实战
shell ★★☆☆☆ 很多开源库都是通过shell脚本进行编译的。如ffmpeg和x264中configure。 Shell脚本
Android NDK ★★☆☆☆ 在android平台上使用,需要掌握NDK的一些知识。如:交叉编译,JNI的接入。 看视频
IOS ★★☆☆☆ (略) (略)

三、学习音视频理论知识

1.重要知识点

知识点 重要度 作用
YUV ★★★★★ 视频原始(裸流)数据,解码最终显示就是一帧帧YUV数据 。
PCM ★★★★★ 音频原始(裸流)数据,解码最终播放的就是PCM数据。
H.264(AVC) ★★★★★ 目前主流的视频编解码协议。
H.265(HEVC) ★★★☆☆ 基于H.264的升级版,大幅度提升了编码大小和质量。因为版权和收费问题没有普及。
AAC ★★★★★ 目前主流的音频编解码协议。
RTMP ★★★☆☆ 直播推流,看侧重点
封装格式 ★★☆☆☆ MP4、AVI、MKV、RMVB、FLV等容器,把音频、视频、字幕等通道封装成一个文件
webrtc(VP8) ★★★☆☆ P2P的音视频通话,看侧重点
OpenGL ★★★☆☆ 使用GPU渲染视频,释放宝贵的CPU资源,看侧重点

2.书籍推荐

3.实践

3.1.视音频数据处理入门

[总结]视音频编解码技术零基础学习方法 系列文章,介绍了视音频编解码技术大体上原理和流程,通俗易懂。包括以下文章:

3.2.完整的RTMP推送小项目

四、学习过程的分析工具

工具 作用 下载地址
VideoEye 来自雷神的强大实时视频码流分析软件。 地址
Codecian H264/H265等分析工具(跨平台)。 地址
H264Visa H.264/AVC实时视频分析工具。 (略)
Hxd Hex Editor 16进制查看工具。 地址
ffprobe ffmpeg中自带的分析工具,非常强大,不过上手有难度。 参考

五、重点开发工具/组件

1.FFmpeg

音视频开发是绕不开FFmpeg的,因为它是一个"集大成者",里面已经包含或可集成现代几乎所有的音视频技术(库)。

1.1.学习途径

1.2.学习路线

这里不推荐直接学习雷神的 [总结]FFMPEG视音频编解码零基础学习方法,建议是通过在学习FFmpeg官方例子中进行学习,避免先入为主使用了过时的API。

1.2.1.源码编译

编译ffmpeg4.2.2通过这篇文章我们基本可以编译出我们想要的FFmpeg库

1.2.2.源码阅读

1.2.3.学习官方例子

1.2.4.音视频同步

1.2.5.FFmpeg相关

2 OpenGL

OpenGL使用GPU渲染视频,释放宝贵的CPU资源,学习它是必不可少的。但是,正如雷神所说 :作为一个搞视频技术的人研究OpenGL,需要耗费大量时间和精力,这样学习不是很经济。所以推荐只学习有关视频渲染相关知识。

3.Webrtc

看下方视频,资料等待补充...

六、实践项目

  • AFPlayer项目 Android实现FFmpeg、OpenSL ES、OpenGL SE、MediaCodec等,实现简单的播放器,主要体现出相关知识点的使用。

#七、最后 该博客持续更新中!

若有帮助就Star一下呗,您的鼓励是我开源的动力!

创作皆不易,有条件的朋友请支持原版,谢谢! 密码:lqi9

    网易视频
    价值几千块的音视频视频
    动脑视频
    C++侯捷视频
    音视频开发进阶指南:基于Android与iOS平台的实践.pdf
    音视频05-H265码流分析.pdf
    音视频04-H265之CU TU PU划分.pdf
    音视频03-H265深度解析.pdf
    音视频02-H265编码与H264区别.pdf
    音视频01-H265编码.pdf
    新一代视频压缩编码标准-H.264_AVC(第二版).pdf
    数字信号处理教程(第四版).pdf
    视频技术手册(第5版).pdf
    《FFmpeg从入门到精通》.pdf
    《FFmpeg_Basics(260页)》.pdf
    webrtc介绍.pdf
    video_file_format_spec_v10_1.pdf
    STL源码剖析简体中文完整版(清晰扫描带目录).pdf
    SDL2-API手册.doc
    rtmp规范翻译1.0.docx
    rtmp_specification_1.0.pdf
    rtmp.part3.Commands-Messages.pdf
    rtmp.part2.Message-Formats.pdf
    rtmp.part1.Chunk-Stream.pdf
    jni基础介绍.pdf
    OpenGL ES 2.0 编程指南 中文版.pdf
    OpenGL+着色语言第三版.pdf
    OpenGL.ES.2.0.Programming.Guide.pdf
    OpenGL着色语言.pdf
    ISO_IEC_14496-14_2003-11-15.pdf
    ISO_IEC-14496-3-2009.pdf
    hls-mpeg-ts-VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf
    hls-mpeg-ts-iso13818-1.pdf
    H.264官方中文版.pdf
    H.264_MPEG-4-Part-10-White-Paper.pdf
    H.264-AVC-ISO_IEC_14496-15.pdf
    H.264-AVC-ISO_IEC_14496-10.pdf
    ffmpeg命令大全.pdf
    FFmpeg命令大全.docx
    FFMPEG_FFPLAY源码剖析.7z
    CMake中文手册.pdf
    Cmake在Android studio Ndk使用.pdf
    C++ Primer(第5版)中文版.pdf
    C++ Primer Plus(第6版)中文版.azw3
    C Primer中文版 第五版 .pdf
    Android 音视频开发_何俊林.pdf
    amf3_spec_121207.pdf
    amf0_spec_121207.pdf
    Advanced C and C++ Compiling.pdf

【重点声明】此系列仅用于学习,禁止用于非法攻击,非法传播。一切遵守《网络安全法》。且如有发现商用,必纠法律责任。如有侵权请联系我(邮箱:xhunmon@126.com)进行删除。