1. 问题起因

    公司自研项目 技术栈是 uniapp 开发微信小程序 小程序内有个需要用户录制视频并上传的功能 项目内使用的是 uni.createCameraContext 相机组件进行录制视频的 一开始并没有出现什么问题 可以正常录制及上传 直到需求上多了一个 《视频直接上传过大 需要进行压缩处理再上传》 之后 问题就来了!本以为只是个简单的压缩罢了。想着直接使用uniapp提供的 uni.compressVideo api就好了 接下来就是一顿操作 简单测试一遍 自信提交!下班!

uni.compressVideo({src,quality: 'low',// bitrate:60000,// fps: 30,// resolution:1,success: (res) => {//压缩后处理},fail: (err) => {//错误处理},
});
  1. 问题初现
    第二天到公司后 昨天测试测出问题了 发现压缩后上传的视频 在云点播上是损坏的 基本上播放到十秒左右 就会突然跳到结束 不压缩上传的话 就没有问题
    然后就是不停的测,改,测,改,测…
    整了一下午还是没搞好。 后来翻 uniapp 文档的时候 看到了在暂停录像api上 还有个属性 compressed:启动视频压缩,压缩效果同 chooseVideo 抱着死马当活马医的态度换上了 然后一测 居然好了 那么新的问题又来了 既然文档上说压缩效果同 chooseVideo 为什么一个行一个不行呢。不过现在没时间想这个了 还有个问题就是 视频录制超时的话 是没有这个压缩的 而如果在超时之前自动暂停的话 又会导致录制时间可能不准确。后来经过讨论 还是决定先使用这个方法 只不过要把录制时间多加一两秒 尽量的保持准确。

  2. 新的问题
    又是新的一天 在使用结束录制的 compressed属性暂时解决问题后 新的问题又来了 具体可看微信社区的bug反馈链接:开启compressed后,结束录制CameraContext.stopRecord无返回数据
    简单来讲就是 开启了这个属性后 录制视频 第一次录制可以正常返回视频数据 但是从第二次开始 返回的数据就是null的 关闭这个属性后 数据正常
    (这个bug现在好像已经修复了)

  3. 转机
    在使用compressed解决问题失败后 不得不另寻他路 在新建了一份代码片段 并将小程序内的功能在代码片段里实现后 我尝试将压缩后的视频直接在小程序内播放 发现:在想程序内播放 视频并无问题 下载后播放也没问题 将下载下来的视频放点电脑上 从电脑上在云点播后台上传 也没有问题!
    从这可以得知 并不是小程序的压缩视频有问题 而是云点播的上传有问题 随后到云点播后台 找了人工客服 花费一下午时间 从客服那边拿到了一个不同版本的 SDK 将项目内的 SDK 替换后 发现问题解决了。
    询问客服得知 云点播官方文档内的 SDK 下载链接可能并非是最新版的 最好到git仓库上下载
    然后自以为问题解决 收工下班

  4. 再起波澜–结束
    第二天上班时 得知昨天的问题并没完全解决
    经过测试发现 压缩过的视频 只要超过8MB 还是会出现上述的视频损坏的问题 8MB之后的视频文件 全部上传不上去 视频直接被截断了 (大概是8MB 差不多两个月前了 有些记不清了)
    然后打开昨天从客服那边拿到的新版本 SDK 源码 翻看了下源码 从源码中找到了 getCosStrategy 函数 在这个函数内的 sourceData 对象 里面的 ChunkSize 参数就是出现问题的地方了 将 ChunkSize 参数改为1048576 * 30 问题就解决了

  5. 结论
    视频压缩后上传损坏的问题可以确定是源码内的getCosStrategy函数下的sourceData对象的ChunkSize值过小造成的 将数值改为自己项目需要的大小即可 。
    最好还是不要改源码 直接在上传函数内传入自己需要的大小即可

VodUploader.start({...chunkSize:1024*1024*(MB)...
})

其实腾讯上传SDK文档内有这个参数的描述
但是描述内写的是分块上传时 每块的大小 并没有写会限制整体上传的大小 所以导致从头到尾都把这个参数忽视了 还是后面翻了源码才找到了这个参数 感觉文档这里写的和实际上的不太一样 也有可能视频被压缩了的问题

总之 问题到此就结束了。
闲来无事 就想记录下这次遇到的问题 好让自己有点印象 不至于转头就忘了。
如果这篇文章有帮助到您 那是我的荣幸。如果没有帮助 那也感谢您能看到最后

关于uniapp小程序压缩视频后上传云点播视频损坏这件事相关推荐

  1. 小程序上传音频失败_微信小程序实现录音后上传文件方法详细

    本篇文章讲述了微信小程序实现录音后上传文件方法,大家对微信小程序实现录音后上传文件方法不了解的话或者对微信小程序实现录音后上传文件方法感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 ...

  2. uni-app小程序实现视频压缩及上传

    下面两张图是中的第一张图是选择视频进行上传,第二张图是视频上传后的展示操作 这里是有完成选择视频上传压缩,展示 选择视频: 上传视频后: 这个整体的思路是选择视频压缩并上传 全部代码: <tem ...

  3. 微信小程序 图片旋转后上传

    今天遇到一个很有意思的问题,在开发电子签名的时候,生成的图片角度有问题,需要进行旋转.然而js里并没有旋转图片的api,所以突发奇想把canvas生成的图片再插入进一个新的canvas容器进行编辑旋转 ...

  4. 小程序上传服务器图片压缩,微信小程序压缩图片并上传到服务器(拿去即用)...

    /**压缩图片*/compressionImage(tempFilePaths, params) { let that= thiswx.getImageInfo({ src: tempFilePath ...

  5. 微信小程序如何把图片上传至服务器

    微信小程序如何把图片上传至服务器 前些日子接了个任务就是开发一个小程序,遇到了一个问题就是需要图片上传至服务器并保存记录,遵循着解决思路我们先从最开始入手 1:微信上传接口 2:服务器接收接口 3:保 ...

  6. 小程序 图片上传php后台,微信小程序图片选择、上传到服务器、预览(PHP)实现实例...

    微信小程序图片选择.上传到服务器.预览(php)实现实例 小程序实现选择图片.预览图片.上传到开发者服务器上 后台使用的tp3.2 图片上传 请求时候的header参考时可以去掉(个人后台验证权限使用 ...

  7. php 点击选择图片上传,微信小程序图片选择、上传到服务器、预览(PHP)实现实例...

    微信小程序图片选择.上传到服务器.预览(PHP)实现实例 小程序实现选择图片.预览图片.上传到开发者服务器上 后台使用的tp3.2 图片上传 请求时候的header参考时可以去掉(个人后台验证权限使用 ...

  8. 微信图片 自动上传到服务器,微信小程序怎样使图片上传至服务器

    这次给大家带来微信小程序怎样使图片上传至服务器,微信小程序使图片上传至服务器的注意事项有哪些,下面就是实战案例,一起来看一下.-wxml 发布项目 /**选择图片 */ choose: functio ...

  9. 微信小程序开发之文件上传下载应用场景(附Demo源码)

    微信小程序开发之文件上传下载应用场景(附Demo源码),Demo为小相册应用,源码在附件中,本示例需要腾讯云支持. http://www.henkuai.com/forum.php?mod=viewt ...

最新文章

  1. python 定义字典键为变量_在python字典中使用变量作为键名
  2. 怎么判断冠词用a还是an_英文写作常见错误学习笔记 | 冠词
  3. linux使用open无法打开驱动解决方式
  4. json串 转 list<class> 方法 List转JSONArray和JSONArray转List
  5. TCP协议与UDP协议的区别
  6. mysql_day02创建数据表
  7. php choosewxpay fail,人人商城常见问题解决方案
  8. 接口测试搭建之JMeter接口测试与SoapUI接口测试
  9. matlab中sl设置频率为95khz,BOOST电路设计及matlab仿真
  10. Excel数据导入___你hold住么(二)
  11. Java LeetCode每日一题-从易到难带你领略算法的魅力(七):Z 字形变换
  12. java math.min_Java Math.min() 方法
  13. 中证登姚前演讲:数字资产是数字金融的核心(全文)
  14. 微信java版_JAVA版微信支付V3-完全版
  15. shell脚本ping检测服务器连通性
  16. 网站镶嵌网站显示代码
  17. 大数据“杀熟”:我是谁,我在哪,我(被)干了啥?
  18. QPushButton按钮互斥效果
  19. [流畅的Python][8][对象引用、可变性和垃圾回收]
  20. 亚当斯分区曝光法俗解之二

热门文章

  1. 关于后端设置cookie无效的解决办法
  2. 安装后运行CorelDRAW12 错误提示“未能创建DOM文件 没有注册类别 请校验MSXML4的安装”的解决方法
  3. LinkedList的push add offer操作有什么不同
  4. Flood-Fill算法
  5. Web自动化神器,批量下载小姐姐美图,可直接导入使用
  6. 关于QQProtect等流氓服务开机自启无法关闭的解决办法
  7. C/S、B/S架构,云服务
  8. python电影推荐系统 github_GitHub - dawnsky2333/MovieRecommend: 一个电影推荐系统
  9. 网站在服务器上统计流量 软件,用性能计数器统计你的网站流量
  10. 优质蛋白食物了解一下,有你爱吃的吗?作为早餐很不错,来捡漏了