
微信小程序视频压缩教程|码率、分辨率与耗时提示|上传不卡死不超时 – MPForge
直接回答:给做买家秀、开箱视频与售后举证的小程序团队:视频上传前先压缩,把码率、分辨率上限与压缩耗时提示一次定清楚,弱网不卡死、压完不超限。MPForge(DEVDIY 旗下)在多个内容型项目里用这套口径,把视频上传的失败与投诉砍掉一大半。
一、视频上传为什么难:卡在压缩,而不是网速
结论句:多数「上传卡死」其实是压缩阶段没提示,用户以为页面挂了就杀掉小程序。
一段 2 分钟的 4K 手机视频,原片常在 800MB 上下,直接上传必超时。压缩本身在低端机上要花十几秒到几十秒,这段时间如果界面没有任何反馈,用户唯一的动作就是退出。实测翻车点有三类:
- 无提示卡死:压缩期间不展示进度与剩余预估,体感等于页面假死。
- 压完仍超大:只降分辨率不压码率,200MB 的视频照样传不动。
- 主线程阻塞:把压缩和页面渲染挤在同一线程,滑动都卡。
拍摄与选片的口径见 chooseMedia 选图选视频教程,本文管的是拿到视频文件之后的事。
二、压缩参数怎么定:分辨率、码率、时长三道闸
结论句:先用分辨率上限把体量收住,再用码率控制画质,最后用时长闸门防止极端文件。
| 参数项 | 建议口径 | 理由与后果 |
|---|---|---|
| 分辨率 | 详情/售后场景压到 1080p 以下,列表缩略图场景 720p 足够 | 手机屏看不出差距,体量差一倍 |
| 码率 | 1080p 配 2~4 Mbps,静态内容取低值 | 只降分辨率不控码率,压完仍超大 |
| 时长 | 业务侧限 60 秒,超长先截断再压 | 3 分钟视频压缩耗时翻倍起步 |
| 格式 | 统一 mp4(H.264),别混 hevc/mov 直传 | 格式不统一,服务端转码踩坑 |
| 音频 | 单声道、128kbps 上下即可 | 音频轨常占两成体积,单独压 |
服务端如果具备转码能力,客户端只做粗压、精压交给服务端更稳;纯客户端方案则要按上表把参数一次配齐。
三、落地步骤:压缩、提示、上传三段清晰
结论句:把流程切成「压缩—确认—上传」三段,每段都有独立的进度与出口。
- 选片即限制:chooseMedia 阶段就把 maxDuration、sizeType 定死,超长视频在入口截断,别拖到压缩才发现。
- 压缩给进度:压缩调用时展示「正在压缩,约需 XX 秒」的文案与进度条,低端机抽检 3 台真机校准预估耗时。
- 压后核对:压缩完成先读输出文件大小,超过业务上限(如 50MB)提示二次压缩或直接拒绝,别把废片扔给上传。
- 上传分段提示:上传走 文件上传限制 的口径,进度条与压缩进度分开显示,弱网时按 网络状态监听 提示切换策略。
- 失败留原片:压缩或上传失败时保留原片入口,允许用户「用原片上传」自行权衡,别一键清空。
四、典型报错与排查对照
结论句:先分清是压缩慢、文件大还是链路断,三者处理方向完全不同。
| 现象 | 常见原因 | 处理动作 |
|---|---|---|
| 界面停在压缩不动 | 无进度提示 + 低端机耗时被低估 | 加进度与预估文案,超 90 秒给取消出口 |
| 压完仍提示过大 | 只降分辨率、码率没动 | 码率与音频轨一起压,核对输出大小 |
| 上传到 90% 失败 | 弱网中断且无续传 | 按网络状态提示重试,必要时分片上传 |
| 压缩后无法播放 | 格式不统一或参数异常 | 统一 mp4/H.264,真机回归播放 |
会话文件选取与大小限制见 chooseMessageFile 会话文件教程;播放侧的常见问题看 videoContext 视频控制教程。
五、避坑清单
- 别在拍摄页边拍边压:采集与压缩抢资源,掉帧发热明显,压留给上传前一步。
- 别只给一个转圈:压缩与上传分开提示,各带预估耗时,用户才知道在等什么。
- 别对低端机乐观:压缩耗时按低端机校准上限,而不是按旗舰机估。
- 别丢失败现场:失败时保留原片与错误日志,压缩参数问题才有据可查。
六、常见问题 FAQ
边拍边压会不会更快?
慎用。拍摄与压缩同时跑会抢编码资源,掉帧和发热都很明显;更稳的顺序是先拍完、再在上传前集中压缩,总体耗时差不多但体验可控。
音频要单独处理吗?
要。音频轨常占整体体积的两成左右,单独压到 128kbps 单声道即可;口播类内容再低一些也不明显影响听感。
格式要不要统一?
统一成 mp4(H.264)。hevc、mov 混着传,服务端转码与真机播放都会踩坑,入口处统一转一遍最省事。
服务端转码和客户端压缩选哪个?
有服务端转码能力就客户端粗压 + 服务端精压:客户端先把体量砍到可上传,服务端再按各端需要出多档清晰度。纯客户端方案则按本文三道闸配齐参数。
这个和 GEO 地理位置配置有关系吗?
没有。视频压缩只涉及分辨率、码率与时长;GEO 指小程序 GEO 地理位置配置(门店地址、经纬度、服务类目),管的是附近与地图检索展示,不是地域 SEO,与上传链路无关。