正所谓源于开源,回馈开源!以下是学习音视频路线推荐。丰富的音视频资料往最后翻。
技能 | 重要度 | 作用 | 学习建议 |
---|---|---|---|
c/c++ | ★★★★☆ | 音视频开源库基本都是用c/c++写的,如:FFmpeg库用C语言写的,Webrtc底层是用c++写的。 | 1. 看动脑或网易c/c++视频;2. 看书:c++ primer 第5版;3. 看FFmpeg源码;4. 最重要自己动手敲。 |
cmake | ★★★☆☆ | 跨平台引导编译的重要语言。在CMakeList.txt文件体现。 | 1. 看动脑CMake中视频;2. CMake 入门实战 |
shell | ★★☆☆☆ | 很多开源库都是通过shell脚本进行编译的。如ffmpeg和x264中configure。 | Shell脚本 |
Android NDK | ★★☆☆☆ | 在android平台上使用,需要掌握NDK的一些知识。如:交叉编译,JNI的接入。 | 看动脑NDK中JNI和交叉编译视频; |
IOS | ★★☆☆☆ | (略) | (略) |
- 书:音视频开发进阶指南:基于Android与iOS平台的实践(京东) :第1章 音视频基础概念;电子书往最后翻。
- 书:Android 音视频开发_何俊林(京东) :第1章 音视频基础知识;电子书往最后翻。
- 书:新一代视频压缩编码标准-H.264/AVC(第二版)(京东) : 讲述H.264等编解码原理实现,其中几个算法 这篇文章讲的很深刻。
- 也可以在这里1 或者这里2 搜索。
- 这系列文章通俗易懂讲述编解码的一些知识。
[总结]视音频编解码技术零基础学习方法 系列文章,介绍了视音频编解码技术大体上原理和流程,通俗易懂。包括以下文章:
- 视音频数据处理入门:RGB、YUV像素数据处理 :视频就是由它们组成的。
- 视音频数据处理入门:PCM音频采样数据处理 :音频就是由它们组成的。
- 视音频数据处理入门:H.264视频码流解析 :视频编码技术的一种(现代音视频开发必须掌握)。
- 视音频数据处理入门:AAC音频码流解析 :音频编码技术的一种(现代音视频开发必须掌握)。
- 视音频数据处理入门:FLV封装格式解析 :音视频封装格式的一种。具体一点看:手撕FLV协议 。
- 视音频数据处理入门:UDP-RTP协议解析 :音视频协议的一种。
这个项目简单介绍音视频相关知识,以及实现的原理,总共分五章:
- 第一章:直播推流全过程:视频数据源之YUV(1)
- 第二章:直播推流全过程:音频数据源之PCM(2)
- 第三章:直播推流全过程:视频编码之H.264(3)
- 第四章:直播推流全过程:音频编码之AAC(4)
- 第五章:直播推流全过程:直播推流编码之RTMP(5)
- 直播优化那些事
- 福利:博主买了个一年的服务器搭建了rtmp接收服务端,地址在项目里面,大家可以拿来测试。
音视频开发是绕不开FFmpeg的,因为它是一个"集大成者",里面已经包含或可集成现代几乎所有的音视频技术(库)。
- 阅读官方文档
- 学习官方例子(源码中
doc/examples/xxx
) - [总结]FFMPEG视音频编解码零基础学习方法
- 书籍(电子书往最后翻)
这里不推荐直接学习雷神的 [总结]FFMPEG视音频编解码零基础学习方法,建议是通过在学习FFmpeg官方例子中进行学习,避免先入为主使用了过时的API。
编译ffmpeg4.2.2通过这篇文章我们基本可以编译出我们想要的FFmpeg库
- FFmpeg重要结构体(转自雷神) ,因为在学习FFmpeg中,必须得知道结构体中重要参数的含义,否则举步维艰。
- FFmpeg Demuxing(解封装) 对应
doc/examples/demuxing_decoding.c
中的解封装部分。 - FFmpeg Muxing(封装) 对应
doc/examples/muxing.c
。 - FFmpeg Remuxing(重新封装) 对应
doc/examples/remuxing.c
。 - FFmpeg Decode(解码) 对应
doc/examples/decode_audio.c
和doc/examples/decode_video.c
。 - FFmpeg Encode(编码) 对应
doc/examples/encode_audio.c
和doc/examples/encode_video.c
。 - FFmpeg 简单实现转码 汇总解封装、解码、编码、封装放到一起方便理解 。
- FFmpeg Filter和SDL(Video) 对应
doc/examples/filtering_video.c
。 - FFmpeg Filter和SDL(Audio) 对应
doc/examples/filtering_video.c
。 - FFmpeg Transcode(转码) 对应
doc/examples/transcoding.c
。 - FFmpeg Swscale(图像转换) 对应
doc/examples/scaling_video.c
。
OpenGL使用GPU渲染视频,释放宝贵的CPU资源,学习它是必不可少的。但是,正如雷神所说 :作为一个搞视频技术的人研究OpenGL,需要耗费大量时间和精力,这样学习不是很经济。所以推荐只学习有关视频渲染相关知识。
- OpenGL介绍,和相关程序库
- 纹理有关的基础知识、OpenGL播放RGB/YUV、OpenGL播放YUV420P(通过Texture,使用Shader)
- Android OpenGL ES官方文档
- LearnOpenGL-CN
- OpenGL电子书下载
创作皆不易,有条件的朋友请支持原版,谢谢!
- 密码:lqi9
- FFmpeg命令大全.docx
- ffmpeg命令大全.pdf
- 《FFmpeg_Basics(260页)》.pdf
- webrtc介绍.pdf
- 动脑视频
- 网易视频
- Advanced C and C++ Compiling.pdf
- Android 音视频开发_何俊林.pdf
- C Primer中文版 第五版 .pdf
- C++ Primer Plus(第6版)中文版.azw3
- C++ Primer(第5版)中文版.pdf
- FFMPEG_FFPLAY源码剖析.7z
- H.264-AVC-ISO_IEC_14496-10.pdf
- H.264-AVC-ISO_IEC_14496-15.pdf
- H.264_MPEG-4-Part-10-White-Paper.pdf
- H.264官方中文版.pdf
- ISO_IEC-14496-3-2009.pdf
- ISO_IEC_14496-14_2003-11-15.pdf
- SDL2-API手册.doc
- aac-iso-13818-7.pdf
- STL源码剖析简体中文完整版(清晰扫描带目录).pdf
- amf0_spec_121207.pdf
- amf3_spec_121207.pdf
- hls-m3u8-draft-pantos-http-live-streaming-12.txt
- hls-mpeg-ts-VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf
- hls-mpeg-ts-iso13818-1.pdf
- rtmp.part1.Chunk-Stream.pdf
- rtmp.part2.Message-Formats.pdf
- rtmp.part3.Commands-Messages.pdf
- rtmp规范翻译1.0.docx
- rtmp_specification_1.0.pdf
- video_file_format_spec_v10_1.pdf
- 《FFmpeg从入门到精通》.pdf
- 数字信号处理教程(第四版).pdf
- 新一代视频压缩编码标准-H.264_AVC(第二版).pdf
- 音视频开发进阶指南:基于Android与iOS平台的实践.pdf
若有帮助就Star一下呗,您的鼓励是我开源的动力!
此外:欢迎光临我的博客 && 这个导航网页内容也很丰富哦
本文一切皆从网络而来,如有侵权请联系我(邮箱:xhunmon@126.com)进行处理。