最新要闻
- 全球最强!传音260W快充手机将亮相:10分钟内充满
- 性能对标奔驰大G 比亚迪“F品牌”首车曝光:够硬够强
- 世界快消息!传欧盟准备批准微软收购动视-暴雪
- 当前报道:女司机“神操作”:100来公里高速连撞4次 竟甩锅路太窄
- 世界视讯!又一大作优化翻车!《卧龙:苍天陨落》RTX 4090依旧闪退
- 12GB+256GB到手仅2699元!Redmi K60正式开启降价
- 温州特斯拉事故驾驶员家属发声:记不清车辆失控场景 妻子去世自责
- 环球时讯:中国航天员遇到外星人怎么办?载人航天总师:积极交流 星际合作
- 焦点要闻:漫威等好莱坞大片中国市场遇冷:大家不爱看了 不符合国人审美、文化观
- 550元 富士发布Instax Mini 12拍立得相机 支持APP存照片
- 环球即时:卷成白菜价!致态TiPlus 7100固态硬盘新史低:1TB仅549元
- 环球头条:马斯克10万亿美元“改造地球”背景下!特斯拉电机要完全不用稀土:专家回应有可能
- 今头条!天问二号任务已获得国家批准立项:要从小行星2016 HO3采样返回
- 委员:996制度是导致就业难、生育率低的重大原因
- 当前播报:电商价格战开打!京东百亿补贴上线:全场包邮 买贵双倍赔
- 特斯拉未来要狂暴降价:就靠这改变世界?其实都被骗了!
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球速递!视频上传及压缩SpringBoot篇上
(相关资料图)
在SpringBoot项目中实现视频的上传和下载,地址都是存放至阿里云的,但是由于视频数量越来越多占用的内存也越来越大,导致服务器内存不足,公司为了减少服务器开支,要求我们研发人员把最好把内存利用到极致,尽量减少不必要的浪费,所以就需要把视频进行压缩。
一、定义视频上传请求接口
public AjaxResult videoUploadFile(MultipartFile file){ try { if(null == file || file.isEmpty()){ return AjaxResult.error("文件为空"); } String ossFilePrefix = StringUtils.genUUID(); String fileName = ossFilePrefix +"-"+ file.getOriginalFilename(); String fileurl = AliOssUtils.videoUploadFile(file,fileName); AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", "after_"+fileName); ajax.put("url", fileurl); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); }}
二、视频暂存至本地文件夹
public static final String uploadVideo(String baseDir, MultipartFile file, String fileName) throws FileSizeLimitExceededException, IOException { File desc = getAbsoluteFile(baseDir, fileName); file.transferTo(desc); String pathFileName = getPathFileName(baseDir, fileName); return pathFileName;}
三、开始压缩视频
public static boolean toCompressFile(String convertFile,String targetFile){ try{ /**将视频压缩为 每秒15帧 平均码率600k 画面的宽与高 为1280*720*/ String cutCmd="ffmpeg -i " + convertFile + " -r 15 -b:v 600k -s 1280x720 "+ targetFile; log.info("cutCmd: " + cutCmd); runCmd(cutCmd); log.info("文件:"+convertFile+" 视屏压缩完成"); }catch(Exception e){ e.printStackTrace(); log.info("压缩文件出现异常:"+e.getMessage()); return false; } return true;}
四、上传至阿里云并获取压缩后的视频路径
private static String getFileUrl(String path) throws IOException { File file = new File(path); FileInputStream fileInputStream = new FileInputStream(file); MultipartFile multipartFile1 = new MockMultipartFile(file.getName(), file.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); uploadFile(multipartFile1, file.getName()); String url = getUrl(file.getName()); return url;}
五、核心调用
public static String videoUploadFile(MultipartFile multipartFile, String fileName) throws IOException { //存放路径 String filePath = FileUploadUtils.uploadVideo(getDefaultBaseDir(), multipartFile, fileName); String convertFile = filePath.replace("/profile", getDefaultBaseDir()).replaceAll("//", "/"); //字符串第一个字符最后出现的下标 int lastIndex = convertFile.lastIndexOf("/"); StringBuilder sb = new StringBuilder(convertFile); String convertFile1 = sb.insert(lastIndex + 1, "after_").toString(); boolean flag = toCompressFile(convertFile, convertFile1); if (!flag) { throw new CustomException("文件压缩出现异常"); } //读取压缩后的文件并上传至阿里云 String url = getFileUrl(convertFile1); //删除本地暂存文件 FileUtils.deleteFile(convertFile); log.info("文件:" + convertFile + " 删除成功"); FileUtils.deleteFile(convertFile1); log.info("文件:" + convertFile1 + " 删除成功"); return url;}
六、spring boot的yml配置文件
修改application.yml文件:spring: servlet: mvc: async: request-timeout: 2000000
修改application-prd.yml文件:spring: servlet: multipart: max-file-size: 1024MB max-request-size: 1024MB
视频上传至阿里云这一块代码没有贴出来,每个项目都大同小异,可根据自己项目实际情况做调整,这篇最核心的是视频压缩的方法及思路。
(数据库系统概论|王珊)第九章关系查询处理和关系优化-第一节:查询处理
全球速递!视频上传及压缩SpringBoot篇上
世界热门:el-input 使用 回车键会刷新页面的问题
全球最强!传音260W快充手机将亮相:10分钟内充满
性能对标奔驰大G 比亚迪“F品牌”首车曝光:够硬够强
世界快消息!传欧盟准备批准微软收购动视-暴雪
当前报道:女司机“神操作”:100来公里高速连撞4次 竟甩锅路太窄
世界视讯!又一大作优化翻车!《卧龙:苍天陨落》RTX 4090依旧闪退
12GB+256GB到手仅2699元!Redmi K60正式开启降价
温州特斯拉事故驾驶员家属发声:记不清车辆失控场景 妻子去世自责
环球时讯:中国航天员遇到外星人怎么办?载人航天总师:积极交流 星际合作
焦点要闻:漫威等好莱坞大片中国市场遇冷:大家不爱看了 不符合国人审美、文化观
550元 富士发布Instax Mini 12拍立得相机 支持APP存照片
环球即时:卷成白菜价!致态TiPlus 7100固态硬盘新史低:1TB仅549元
环球头条:马斯克10万亿美元“改造地球”背景下!特斯拉电机要完全不用稀土:专家回应有可能
读Java性能权威指南(第2版)笔记07_即时编译器上
今头条!天问二号任务已获得国家批准立项:要从小行星2016 HO3采样返回
实现 Vue 折叠面板组件
委员:996制度是导致就业难、生育率低的重大原因
当前播报:电商价格战开打!京东百亿补贴上线:全场包邮 买贵双倍赔
特斯拉未来要狂暴降价:就靠这改变世界?其实都被骗了!
世界快资讯:豆瓣8.9分!韩国拼体格真人秀在欧美爆红
暗黑三国风!《卧龙:苍天陨落》正式上线:298元 GTX 1650就能玩
3.3 数据结构 时间复杂度 和空间复杂度 计算
环球简讯:004. html篇之《标签分类和嵌套》
天天动态:星巴克国内最大对手!瑞幸咖啡财报:年收入首次突破百亿
硬件狗狗3.3新版发布:跑分排行 实时PK
【环球热闻】使用ansible部署服务到k8s
专家:双休制度很难被改变 可以试试“做四休三”
【当前独家】同样是PCIe 5.0 SSD:Intel、AMD跑分竟不一样!差距达30%
世界观焦点:大熊猫为什么近期扎堆回国?美日等国养不起“国宝”了吗?完全是误解
当前速讯:女子称因准点下班试用期第3天被辞退:还被领导一顿痛骂
全球聚焦:R数据分析:做量性研究的必备“家伙什”-furniture包介绍
003. html篇之《表单》
全球即时:Codeforces 1774 G Segment Covering 题解 (观察性质,倍增)
【全球播资讯】Feign踩坑源码分析 -- 请求参数分号变逗号
【全球快播报】火箭弹电子版领取处>>
视讯!完美还原!玩家用虚幻5复刻《狂飙》高启强老家:桌上还有孙子兵法
《龙马精神》4月上映!69岁成龙再跳120米高摩天轮 本人直言小事情
天天快资讯:C++面经(持续更新)
今亮点!实验楼(规则)怪谈
热推荐:电视剧《三体》豆瓣评分上涨 于和伟:《三体》涨分像涨工资
热门看点:《卧龙:苍天陨落》今晚零点正式解锁!乱世三国冒险即将开启
前沿资讯!口感醇正!熊猫精酿好时光皮尔森啤酒好价:2.8元/听
即时:中国科技公司:让老外开眼了
完爆H.265!优酷用上H.266编解码:最便宜手机放视频也丝般顺滑
世界今头条!搭建两台web服务器基于HAProxy实现负载均衡
焦点短讯!路飞-day5——git 多分支开发、git远程仓库、ssh方式连接远程仓库、协同开发、冲突解决、线上分支合并、远程仓库回滚
简讯:(数据库系统概论|王珊)第七章数据库设计:习题
全球时讯:我国网民规模达10.67亿!短视频用户首次突破10亿:你每天刷多久?
B站发布2022年Q4及全年财报:全年营收219亿元 Q4日活用户达9280万
零排放、低噪音!国内首列氢燃料混合动力铰接轻轨车下线
环球微头条丨003 jmeter连接数据库及jmeter关联提取器
git-git、gitee使用介绍
面试官:从 MySQL 读取 100w 数据进行处理,应该怎么做?问倒一大遍!
天天快播:常用的Prestosql
python3和scrapy使用亿牛云隧道代理问题以及代码
为何近半数安卓用户想换苹果?背后原因揭开
天天快资讯:国人也买不动了!1月iPhone全球销量大跌11% 苹果会降价刺激销量吗?
当前速看:纯电飞行250公里 国产厂商创电动载人飞行器新纪录
【世界新要闻】公司招聘会计要求一定是A型血 网友:很奇葩
每日快讯!中国空间站成功首次“点火”!高速相机拍下神奇一幕
今日观点!Pod控制器
创建型:构造器模式
天天最新:Python类和对象的绑定方法及非绑定方法
答菲洗脸巾80片到手6.9元:干湿两用 不掉毛絮
全球视点!男子犯困竟在高速行车道睡觉30分钟 科普:连续开车不应超4小时
甄子丹谈好莱坞对亚裔的刻板印象:怎么都这么老套?
特斯拉减少75%碳化硅用量 马斯克一句话干崩第三代半导体 上市公司回应
知名博主曝保时捷卡宴中控鼓包:我脚上皮鞋的皮都更好
法拉第未来恢复贾跃亭的公司执行官身份
全球微资讯!Adobe Photoshop 键盘快捷键 备忘清单_开发速查表分享
环球简讯:mperf:移动/嵌入式平台算子性能调优利器
天天动态:玩转Angular系列:组件间各种通信方式详解
焦点要闻:DL 基础:PyTorch 常用代码存档
世界热推荐:MySQL学习笔记-多表查询(下)
酒店比价网站_酒店比价
【当前独家】“保时泰”破产重整后凄凉!股权六折甩卖仍无人接盘
每日速看!韩国拟取消校园暴力者读大学资格:转学脱罪也没用
环球精选!网友拍下真实版“乌鸦喝水” 原来是表演节目 两只乌鸦都会
今亮点!魅族20系列1元36月超长质保加码!电池最大容量低于80%免费换
全球新资讯:神舟十五号乘组太空出差过半:完成多项首次实验测试
美团2面:如何保障 MySQL 和 Redis 数据一致性?这样答,让面试官爱到 死去活来
宕机了,Redis 如何避免数据丢失?
世界简讯:风控系统就该这么设计,万能通用,稳的一批!(建议收藏)
焦点要闻:权限提升(1)
全球新消息丨《最终幻想16》仍然只有白人:没有对人种多样性妥协
每日报道:sonar代码扫描bug:Use try-with-resources or close this "FileInputStream" in a "f
世界时讯:通过手动创建hibernate工厂,自动生成表,完成数据库备份还原功能
每日简讯:【36oj】 画圣诞树
全球聚焦:AMD Zen4正式登顶!16核7954HX性能战平24核13980HX、功耗低得多
老司机全程不踩刹车?特斯拉潮州事故车主不服鉴定:官方尚未出责任认定书
【播资讯】不为人知的网络编程(十五):深入操作系统,一文搞懂Socket到底是什么
轻松玩转makefile | 变量与模式
天天百事通!3888元 + 可叠加百亿补贴:天猫无门槛红包12点正式开抢
4条狼青犬咬死几十只羊!警惕:性情凶狠、攻击性非常强
全球微头条丨211文科硕士吐槽均薪5500引争议:文科生转码或成趋势 还是理科香?
报道:“RNG老板道歉”登热搜 CEO:轮换中单是我的决定
【世界播资讯】李想:理想汽车要占20万元以上市场35% 将对标苹果特斯拉
垂头丧气的丧是什么意思?关于垂头丧气的反义词有哪些?