文件:[社区发布页 index.vue (line 294)](/Users/beryl/php/crmeb_merchant/frontend/h5/pages/plantGrass/plant_release/index.vue:294)
当前调用 uni.chooseVideo() 没有设置 compressed。官方文档说明:该参数默认是 true,在微信小程序等支持的平台会压缩视频。参数说明
建议修改为:
uni.chooseVideo({
sourceType: ['camera', 'album'],
compressed: false,
success: async (res) => {
// 保留现有大小校验和上传逻辑
},
// 保留现有失败处理
});这项修改让支持该参数的平台直接上传选中的视频,保留原有分辨率和画质;H5 端需单独验证实际行为。
2. 后端保持原文件保存
目前社区使用 /api/upload/video,对应 [Attachment.php (line 335)](/Users/beryl/php/crmeb_merchant/backend/app/controller/admin/system/attachment/Attachment.php:335)。该入口按普通文件保存视频,未见显式视频转码逻辑,初步无需修改。
上线前还需核对实际对象存储、CDN 是否配置了自动转码,并确认播放地址仍指向原文件。
3. 配套处理:大小限制与上传体验
当前社区前端限制为 50MB。关闭压缩后,原视频更容易超限:
- 第一阶段保留 50MB 限制,超限时明确提示“原视频超过上传限制,请选择较小的视频”。
- 增加上传进度提示,方便用户判断大文件上传状态。
- 如需提高上限,统一调整前端、后端及网关限制,具体容量根据部署环境确定。
4. 验证与影响
使用同一段含文字、细节的 1080P 视频,在微信小程序 Android、iOS 和 H5 分别验证:
- 上传前后对比分辨率、时长、码率和文件大小;可获取文件时比较哈希,确认原文件未变。
- 检查社区播放使用上传返回的原视频地址。
- 测试接近及超过 50MB 的视频,确认提示与上传结果正常。
改动主要影响社区发布流程;原视频上传会增加耗时、存储和播放流量。已被压缩的历史视频无法通过此修改恢复,需要重新上传原片。

