原文作者:Linux
原文链接:音视频流媒体高级开发-学习路线
如果你想往音视频方向发展,那么本文一定要认真阅读~
大家都知道音视频开发薪资高、门槛高、发展空间大,心里蠢蠢欲动,却不知道怎么入门,怎么进阶?
是学 FFmpeg 还是 OpenSL ES?是研究编码协议还是实时传输机制?
这次我会给大家做一个深度的学习路线总结分享!技术点都是当下企业要求必须要掌握的!希望对音视频流媒体方向的同学有帮助。
一、学习音视频的门槛高不高?
答案是肯定的:高!
如今,随着在线教育、远程办公、直播带货、实时互动等应用场景的蓬勃发展,音视频技术正变得越来越重要。不仅大厂在积极布局,越来越多的中型公司和初创企业也开始重视音视频相关岗位的招聘。
一个有趣的现象是:即便是有一定经验的中级音视频工程师,在市场上也可能同时被3~4家公司争抢。
这背后的原因在于——音视频从业者的基数小、高端人才稀缺、技术门槛高。不同于前端、后端这类相对“标准化”的开发方向,音视频涉及底层编解码、网络传输优化、多平台适配、图像处理等多个复杂模块,学习曲线陡峭,系统性要求强。
正因为如此,音视频开发并不容易通过短期突击掌握,也难以完全依赖开源库“堆砌”出稳定的产品。它需要扎实的基础知识、丰富的实战经验和持续的技术积累。
但这也意味着——
一旦你掌握了音视频核心技术,你就拥有了区别于大多数开发者的竞争优势,形成了自己的技术护城河。在行业普遍内卷的大环境下,这种“技术分水岭”显得尤为珍贵。
所以,虽然这条路起点难、过程苦,但正是因为它“难”,才更不容易被淘汰。
技术门槛体现在哪?
- 知识体系庞杂
- 音视频领域涵盖编解码、封装格式、传输协议、渲染引擎、硬件加速等多个方向。
- 每一个模块背后都是一套完整的知识体系。
- 依赖底层编程能力
- 不像前端或 UI 开发以 Java/Kotlin/Swift 为主,音视频开发常常需要 C/C++、JNI、NDK、FFmpeg 等技能。
- 对内存管理、指针操作、多线程等底层机制要求较高。
- 调试困难、问题隐蔽性强
- 音视频问题往往不容易复现,如花屏、卡顿、不同设备兼容性差等。
- 缺乏统一的调试工具和日志规范,排查问题耗时长。
网上音视频学习资源真的太少了!
这是很多人放弃音视频开发的最主要原因之一。
如果大家的技术栈还是仅仅是停留在简简单单的四大组件、UI、网络这一块,你的被替代性还是非常高的。
二、既然这么难!为什么还是要选择音视频开发?
✅ 行业需求旺盛
随着短视频、直播、在线教育、远程会议等行业的爆发式增长,对音视频人才的需求也日益高涨。
✅ 技术壁垒较高
不同于传统 App 开发,音视频涉及编解码、渲染、网络传输、硬件加速等多个底层领域,具备一定学习门槛,也因此更具竞争力。
✅ 薪资待遇优厚
从各大招聘平台来看,资深音视频开发工程师的薪资普遍高于普通 Android/iOS 开发者,且岗位稀缺性强,议价能力更高。
音视频开发门槛高、资料少、路难走,但正因为如此,它才更值得你去深耕。
三、音视频该怎么学习?
如果细分的话,可以分为9个就业方向:
接下来将从多个维度梳理音视频领域的主流全栈开发技术,内容由浅入深、层层递进,包括:音视频开发基础、进阶成长路径、常用开源库、流媒体协议、实战项目等等,适合各类开发者转型或深耕音视频领域,包括但不限于:
- 嵌入式开发人员
- 桌面应用开发人员
- Android / iOS 移动端开发人员
- 后台服务开发人员
- IT 行业有意转向音视频方向的技术从业者
同时,也适用于已有一定经验的音视频从业人员进行系统化提升,帮助他们构建完整的知识体系,拓展技术视野。
一、音视频开发基础
1.1、音频基础知识
音频相关的核心概念包括:
- 采样率:即每秒采集声音样本的次数,决定了音频的频率范围。
- 声道数与声道布局:如单声道、立体声、5.1声道等,涉及声音的空间分布方式。
- 采样格式:表示每个音频样本的数据精度,如8位、16位或浮点型。
- PCM与波形图:PCM(脉冲编码调制)是最常见的原始音频数据格式,波形图则用于可视化音频信号的变化。
- 音质:通常与比特率、编码方式等因素有关。
- 音频编码格式:如MP3、AAC、OGG等,影响音频压缩效率和音质。
- 音频封装格式:如WAV、FLAC、MP4等,决定音频文件的存储结构。
1.2、通用基础知识
这一部分是音视频开发的基础技能,包括:
- 编码原理:掌握基本的压缩与编码理论,如熵编码、预测编码等。
- C/C++基础:作为音视频开发的主流语言,熟练掌握其语法与性能优化技巧至关重要。
- 视频分析工具:如使用VLC、Elecard等工具进行音视频流分析。
- FFmpeg常用命令:熟悉FFmpeg的基本操作,如转码、剪辑、提取音轨等。
- 平台相关的多媒体API:如Windows下的DirectShow、Android中的MediaCodec、iOS的AVFoundation等。
1.3、视频基础知识
视频开发中需要掌握的核心概念包括:
- 帧率:每秒显示的画面数量,常见有24fps、30fps、60fps等。
- 码率:单位时间内传输的数据量,直接影响视频清晰度和文件大小。
- 分辨率:画面的像素尺寸,如720p、1080p、4K等。
- 像素格式:如YUV、RGB等,描述图像的颜色表示方式。
- 色彩空间:如RGB、YUV、HSV等,用于不同场景下的颜色处理。
- I帧、P帧、B帧:视频压缩中的关键帧类型,分别代表完整帧、前向预测帧和双向预测帧。
- DTS与PTS:解码时间戳与显示时间戳,用于音视频同步。
- YUV与RGB:两种主要的图像表示方式,YUV常用于视频压缩,RGB用于显示。
- 位深与色域:影响图像的色彩表现力和动态范围。
- 视频编码格式:如H.264、H.265、VP9、AV1等,决定了压缩效率和兼容性。
- 视频封装格式:如MKV、MP4、AVI、TS等,决定了视频文件的组织结构。
二、音视频进阶成长
在掌握音视频开发基础之后,进一步深入学习将围绕音频、通用技能和视频三大方向展开,逐步提升至中高级开发水平。
2.1、音频进阶技能
在音频领域的深入学习主要包括以下几个方面:
- 录音与麦克风采集:理解如何从设备获取原始音频数据,涉及采样控制、降噪处理等。
- 音频编解码技术:熟悉主流音频编码标准(如AAC、PCM、Opus)及其软硬件编解码实现。
- 音频播放机制:掌握音频输出流程,包括混音、缓冲管理、低延迟播放等关键技术。
- 音频分析能力:如频谱分析、语音识别前端处理、音频特征提取等。
- 音效处理:包括回声消除(AEC)、自动增益控制(AGC)、噪音抑制、混响效果等常见音频增强技术。
2.2、通用进阶技能
这部分是音视频开发的核心能力拓展,适用于多个应用场景:
- 流媒体协议理解:掌握RTMP、HLS、RTP/RTCP、SRT等主流传输协议的工作原理与使用场景。
- 音视频传输机制:了解网络传输中的丢包、抖动、带宽自适应等问题的应对策略。
- 音视频同步播放:掌握 PTS/DTS 时间戳同步机制,实现精准的音画同步。
- 平台多媒体开发实践:深入掌握 Android 的 AudioTrack/OpenSL ES、iOS 的 AVAudioEngine、Windows 的 WASAPI 等平台相关音频接口。
- FFmpeg API 编程:不再仅限于命令行使用,而是能够基于 FFmpeg 的 libavcodec、libavformat、libswresample 等库进行定制化开发。
- OpenGL 渲染技术:用于视频画面的高效渲染与特效处理,尤其在移动端应用广泛。
- 音视频编辑功能开发:如剪辑、拼接、合成、添加字幕、转场效果等。
2.3、视频进阶技能
在视频方向上的深入学习内容如下:
- 录像与摄像头采集:掌握不同平台下摄像头的调用方式,如 Android Camera API/CameraX、iOS AVCaptureSession、V4L2(Linux)等。
- 视频编解码实现:深入了解 H.264/H.265 编码原理,掌握软硬编码的选择与优化方法。
- 视频播放器开发:包括播放控制、格式兼容、异常处理、多分辨率适配等。
- 滤镜与特效处理:如美颜、磨皮、瘦脸、滤镜叠加、人脸检测等视觉增强功能。
- 视频转码与压缩优化:根据目标平台或网络环境调整视频参数,实现高质量与低带宽之间的平衡。
三、音视频工作方向
在学习和掌握了音视频开发的基础与进阶技能之后,很多人会面临一个关键问题:未来的职业方向该如何选择?
确实,在音视频领域,技术面广、应用场景多,初学者常常会在众多方向中感到迷茫。其实,这并不是坏事,说明你拥有广阔的选择空间。正如小米创始人雷军所说:“不要害怕做出选择。”只要你愿意投入热情去探索,终会找到属于自己的那条路。
乔布斯也曾说过:“做你热爱的事,热爱你所做的事。”只有真正热爱自己所从事的方向,才能走得更远、做得更深。
结合当前行业趋势,我将音视频相关的工作方向总结为以下九大方向:
3.1、直播方向
主要涉及实时音视频推流、拉流、低延迟优化、互动功能(如弹幕、连麦)、美颜滤镜等。常见于社交直播、电商带货、在线教育等领域。
3.2、传输方向
聚焦音视频在网络中的高效传输,包括协议选型(RTMP、HLS、SRT等)、抗丢包处理、QoS/QoE优化、CDN调度策略等。
3.3、算法方向
涵盖音频增强、语音识别、图像识别、视频超分、AI降噪、人像分割、美颜算法、编解码算法优化等多个前沿技术领域,是当前AI+音视频融合的重要方向。
3.4、视频播放器方向
专注于打造高性能、高兼容性的视频播放体验,包括格式解析、渲染优化、字幕支持、硬件加速、多码率自适应、离线缓存等功能模块。
3.5、流媒体后端方向
偏向服务端开发,负责搭建和维护音视频服务器系统,如媒体转发、转码集群、信令服务、负载均衡、日志监控等,通常需要掌握 Golang、C++ 或 Java 等语言。
3.6、短视频方向
围绕短视频采集、编辑、上传、推荐、播放等全链路展开,尤其注重用户体验与内容生产效率,常涉及剪辑工具、特效合成、智能推荐等内容引擎。
3.7、音频播放方向
专注于音频播放器、播控逻辑、音效处理、蓝牙耳机适配、后台播放机制等,广泛应用于音乐播放器、播客、有声书、语音助手等领域。
3.8、视频编辑方向
涉及剪辑、拼接、特效叠加、转场效果、字幕添加、调色、导出压缩等全流程开发,是影视制作类应用或平台的核心能力之一。
3.9、图像处理方向
主要关注图像质量提升、画质修复、风格迁移、图像识别、人像美化、背景虚化、AR贴纸等视觉增强技术,广泛应用于相机类 App 和 AR/VR 场景。
四、音视频开源库
在音视频开发中,利用开源库可以极大地提升开发效率和项目质量。以下是一些关键领域的优秀开源库介绍。
4.1、多媒体处理
多媒体处理是音视频开发的基础,常用的开源库包括:
- FFmpeg:最广泛使用的多媒体框架之一,支持封装格式、编解码、滤镜、图像缩放、音频重采样等功能。
- libav:FFmpeg的一个分支,提供了相似的功能集,但发展路径略有不同。
- GStreamer:一个强大的流媒体处理框架,适用于构建各种复杂的音视频应用。
4.2、流媒体传输
对于实现低延迟的实时通信,推荐使用如下开源库:
- WebRTC:目前最为流行的实时通讯(RTC)库,拥有JitterBuffer、NetEQ、pacer等模块用于优化网络条件下的音视频传输。
- live555:主要用于流媒体传输,支持多种协议如RTSP、RTP等,适合构建基于IP的流媒体服务。
4.3、播放器
播放器的选择直接影响用户体验,以下是几个知名选项:
- ijkplayer:由B站推出的跨平台播放器,高度可定制化。
- ExoPlayer:Google为Android平台开发的播放器,提供丰富的功能和良好的兼容性。
- VLC:由VideoLAN组织维护,是一款全能型播放器,支持几乎所有常见的音视频格式。
4.4、编解码
音视频编码与解码是保证内容高效传输的关键:
- AAC:常用于点播和短视频,因其高质量而受到青睐。
- Opus:专为RTC场景设计,具有出色的语音压缩性能。
- VP9:Google推出的高效视频编码格式。
- x264:由VideoLAN团队维护的H.264视频编码器,性能卓越。
- AV1:由开放媒体联盟(AOMedia)推出的新一代视频编码标准,致力于提供更高的压缩率。
4.5、音频处理
针对音频处理,有几款非常实用的开源工具:
- SoX:被誉为音频处理界的瑞士军刀,能够执行各种音效处理和滤波操作。
- SoundTouch:专注于音频变速变调处理,支持变速不变调。
- Speex:除了是一个优秀的音频编码器外,还包含PLC(丢包隐藏)、VAD(静音检测)、AEC(回声消除)等多种音频处理功能。
4.6、流媒体服务器
选择合适的流媒体服务器对项目的成功至关重要:
- SRS:一款简单高效的视频服务器,支持多种协议如RTMP、WebRTC、HLS等。
- Janus:由MeetEcho公司开源,基于WebRTC的流媒体服务器,实际上更像一个网关。
4.7、音视频分析
掌握一些分析工具对于开发者来说非常重要:
- Mp4Parser:用于解析mp4文件结构,帮助理解其内部构成。
- VideoEye:雷神开源的一款Windows平台上的视频码流分析工具。
- Audacity:一款多功能的开源音频编辑软件,可用于编辑音频及分析音频波形。
4.8、视频渲染
为了增强视频视觉效果,可选用以下开源库:
- GPUImage:允许添加各种滤镜特效,非常适合移动端开发。
- Grafika:由Google工程师贡献,提供了基于Android平台的视频渲染示例。
- LearnOpenGL:配合教程学习OpenGL,适用于希望深入理解图形编程的开发者。
五、流媒体协议
了解不同的流媒体协议对于开发高效、稳定的音视频应用至关重要,音视频传输优化不仅是当前音视频系统开发中的核心难点,也是提升用户体验、构建高质量服务的关键所在。深入理解并掌握相关技术,将为开发者打开通往高性能音视频系统的大门。
下面将介绍常见的流媒体传输协议、应用协议、WebRTC信令协议以及音视频编码和封装格式。
5.1、流媒体传输协议
常用的流媒体传输协议包括:
- RTP (Real-time Transport Protocol):用于传送实时数据如音频、视频等,适用于一对一或一对多的通信场景。
- SRTP (Secure Real-time Transport Protocol):在RTP的基础上增加了加密功能,确保数据传输的安全性,防止被窃听。
- RTMP (Real Time Messaging Protocol):由Adobe公司开发,常用于视频直播中,支持多种变体如RTMPE(加密)、RTMPS(通过HTTPS)、RTMPT(通过HTTP)。
- RTSP (Real Time Streaming Protocol):提供对流媒体服务器的控制功能,如播放、暂停、停止等操作,其命令字段包括OPTIONS、DESCRIBE、SETUP、PLAY、PAUSE、TEARDOWN等。
- RTCP (RTP Control Protocol):与RTP一起使用,用于监控服务质量并提供反馈,例如统计丢包率、发送延迟等信息。
5.2、流媒体应用协议
针对不同需求的应用场景,选择合适的流媒体应用协议非常重要:
- HLS (HTTP Live Streaming):苹果公司推出的流媒体协议,基于m3u8文件格式和ts流,支持自适应码率切换。
- DASH (Dynamic Adaptive Streaming over HTTP):谷歌广泛使用的流媒体协议,采用fmp4切片技术,能够实现无缝的多码率自适应切换。
5.3、WebRTC信令协议
WebRTC需要信令来建立连接,主要涉及以下几种协议:
- SDP (Session Description Protocol):用于描述多媒体通信会话参数。
- ICE (Interactive Connectivity Establishment):解决NAT穿越问题,使得两个处于私有网络中的设备可以直接通信。
- STUN (Session Traversal Utilities for NAT) 和 TURN (Traversal Using Relays around NAT):帮助客户端穿透NAT,其中TURN作为最后手段,在直接连接失败时通过中继服务器转发数据。
5.4、音视频编码协议
为了提高传输效率和压缩质量,通常采用特定的编码协议:
- 音频编码:如MP3、AAC、OPUS、FLAC、AC3、EAC3、AMR_NB、PCM_S16LE等。
- 视频编码:如H.264、HEVC、VP9、MPEG4、AV1等,每种编码标准都有其适用场景和优势。
5.5、音视频封装格式
封装格式是多媒体容器,它包含了多媒体信息及音视频码流:
- 视频封装格式:如mp4、mov、mkv、webm、flv、avi、ts、mpg、wmv等。
- 音频封装格式:如mp3、m4a、flac、ogg、wav、wma、amr等。
这些格式不仅包含了音视频码流本身,还涵盖了关于多媒体内容的重要元数据,例如时长、分辨率、帧率、码率、采样率、声道数等。此外,字幕码流通常以特定格式的文本或位图形式存在。
六、实战项目
多个由浅入深、覆盖主流业务场景的实战项目。通过这些项目的训练,将具备独立开发完整音视频系统的能力,同时也能为简历加分、积累项目经验。
6.1、基础级项目:音视频采集与播放器开发
掌握音视频采集、播放的基本流程,熟悉FFmpeg、OpenCV、OpenGL等工具库的使用。
📌 项目内容:
- 音视频采集系统
- 使用系统API或FFmpeg采集摄像头画面和麦克风音频
- 支持多分辨率、帧率设置
- 实现本地预览功能
- 简易播放器开发
- 支持常见格式(MP4、MKV、FLV)的解析与播放
- 基于FFmpeg + SDL/OpenGLES实现解码与渲染
- 支持基本控制功能(暂停、快进、静音)
- 跨平台兼容性处理
- Android/iOS/Windows/Linux 多平台支持思路讲解
6.2、中级项目:推拉流直播系统开发
掌握RTMP协议、推拉流原理,能够搭建一个完整的实时直播系统。
📌 项目内容:
- 直播推流端开发
- 使用FFmpeg或librtmp进行音视频编码与封装
- 支持摄像头/录屏采集+音频混音
- 添加美颜滤镜(GPUImage/OpenGL实现)
- 推流至云服务器或自建SRS服务器
- 直播播放端开发
- 拉取RTMP/HLS流进行播放
- 支持低延迟播放优化(buffer机制、首帧优化)
- 支持硬件加速解码
- 信令交互与状态管理
- 实现播放器状态同步、错误处理机制
6.3、高级项目:WebRTC一对一音视频通话系统
掌握WebRTC通信原理及实战开发,能够实现跨平台的一对一音视频通信。
📌 项目内容:
- WebRTC信令服务器搭建
- 使用Node.js + WebSocket实现信令交互
- 支持SDP交换、ICE候选者收集与转发
- Web端音视频通话系统
- Web to Web 视频通话
- 支持摄像头切换、静音、屏幕共享等功能
- Android/iOS 端接入
- 实现 Android 与 Web、Android 与 iOS 的互通
- 处理平台差异、权限申请、前后台切换逻辑
- 穿透服务部署
- 配置 Coturn STUN/TURN 服务器,解决NAT穿越问题
- ICE策略配置与连接成功率优化
6.4、企业级项目:视频监控系统开发
掌握视频监控系统的架构设计与开发要点,适用于安防、工业、教育等场景。
📌 项目内容:
- 多路视频采集与上传
- 支持 RTSP 流采集(如摄像头、DVR)
- 支持 H.264/H.265 编码压缩上传
- 视频存储与回放
- 存储到本地文件或云端对象存储
- 实现时间轴检索、倍速播放、截图功能
- 视频分析与报警联动
- 接入 AI 分析模块(如人脸识别、移动侦测)
- 报警信息推送与日志记录
- 监控客户端开发
- 支持多窗口查看、PTZ控制、语音对讲
- 支持移动端查看(H5/小程序)
6.5、拓展项目:流媒体服务器部署与二次开发
掌握主流流媒体服务器部署、调试与定制化开发能力。
📌 项目内容:
- 开源流媒体服务器部署
- SRS(Simple Realtime Server)搭建与配置
- Janus WebRTC网关部署与测试
- 支持 RTMP、HLS、HTTP-FLV、WebRTC 等多种协议
- 服务器性能调优
- 并发连接数限制与负载均衡
- 日志分析与异常排查
- 基于SRS的插件开发
- 自定义鉴权模块、转码任务调度
- 实现录制回调、消息通知等扩展功能
6.6、综合项目:短视频系统开发
掌握短视频从采集、编辑、上传、播放的全流程开发。
📌 项目内容:
- 短视频录制与剪辑
- 支持片段选取、裁剪、添加滤镜
- 支持字幕、贴纸、转场特效
- 视频上传与转码
- 上传至服务端并触发异步转码
- 支持多分辨率、多编码格式输出
- 短视频播放器开发
- 支持列表播放、自动加载更多、弹幕互动
- 支持点赞、评论、分享等社交功能集成
- 推荐系统初探(可选)
- 简单推荐算法实现,如热门榜、相似推荐
七、音视频相关书籍
在音视频开发的学习过程中,阅读专业书籍是构建系统知识体系的重要方式。以下从音频类、视频类和编程语言类三个维度,精选了一些高质量的技术书籍,供不同阶段的学习者参考。
7.1、音频类书籍
如果你希望深入理解音频信号处理与编码原理,以下书籍将为你打下坚实的理论基础:
- 《The Music of Theory》:虽然偏音乐理论方向,但对理解音频感知和听觉特性有一定帮助。
- 《DSP Noise Reduction》:聚焦数字信号处理中的噪声消除技术,适用于语音增强、降噪算法等场景。
- 《Audio Signal Processing and Coding》:系统讲解音频信号处理与编码原理,适合进阶学习。
- 《数字音频原理及应用》:国内经典教材,内容涵盖采样、量化、压缩编码等基础知识。
- 《音频信号处理与编码》:结合理论与实践,介绍常见音频编解码器的设计与实现。
这些书籍有助于你理解音频底层原理,为后续开发如语音识别、音频增强、混音合成等打下坚实基础。
7.2、视频类书籍
视频开发涉及图像处理、编解码标准、渲染优化等多个方面,推荐如下书目:
- 《数字图像与视频处理》:全面介绍图像与视频的基本概念与处理方法,适合入门。
- 《音视频开发进阶指南》:实战导向,适合已有一定基础的开发者提升技能。
- 《视频编码全角度详解》:深入解析主流视频编码标准,如H.264/AVC、H.265/HEVC等。
- 《新一代视频压缩编码标准 H.264/AVC》:专注于H.264编码标准的原理与应用。
- 《新一代高效视频编码 H.265/HEVC》:详细介绍HEVC编码框架、核心算法及性能优势。
- 《数字图像处理(冈萨雷斯版)》:图像处理领域的权威教材,内容详实、理论扎实。
- 《多媒体信号编码与传输》:探讨多媒体数据的编码方式与传输机制,适合研究方向读者。
- 《OpenGL 编程指南》:图形渲染的经典教材,掌握GPU加速渲染必备。
- 《WebRTC Native 开发实战》:针对WebRTC底层开发,适合想深入了解实时通信的同学。
- 《FFmpeg 从入门到精通》:系统讲解FFmpeg的使用与API开发,实用性极强。
- 《在线视频技术精要》:覆盖流媒体服务端与客户端的关键技术,适合工程落地参考。
这些书籍不仅适合个人自学,也可作为项目开发时的参考资料。
7.3、编程语言类书籍(C/C++)
音视频开发多以 C/C++ 为主,因此熟练掌握这两门语言至关重要。以下是一些经典书籍推荐:
- 《C语言程序设计》(谭浩强):初学者友好,适合作为C语言入门教材。
- 《C++编程思想》(Bruce Eckel):讲解面向对象思想,适合过渡到C++开发。
- 《C++ Primer Plus》:语言通俗易懂,适合自学者打基础。
- 《C++程序设计语言》(Bjarne Stroustrup):C++之父所著,权威性极高。
- 《Effective C++》(Scott Meyers):C++进阶必读,总结了55条实用经验。
- 《程序员的自我修养》:深入理解链接、装载、库、内存管理等底层机制,非常适合音视频底层开发人员阅读。
在这个卷的时代,我们要做的不是跟风,而是找到一条别人不敢走、不愿走、走不下去的路,然后稳扎稳打地走下去。如果你愿意深耕音视频领域,未来一定会收获属于你的技术红利和职业成长。