用断点续存实现视频快速上传

该博客介绍了如何使用Java实现视频的断点续存上传功能。通过前台多线程切割视频为多个切片,并将相关信息存储在SQLite数据库中。后台创建临时文件,逐个接收并写入切片,实现视频的断点续传。主要涉及的技术包括前端视频切割、SQLite数据库操作、Java后端接口处理。
摘要由CSDN通过智能技术生成

需求:前台开启多线程,多次调用接口实现上传视频功能。
分析:1.前台将视频切割成多个切片,基本信息(切片大小sliceSize;切片起始位置sliceOffset;上传成功标记flag等)需要存放在本地数据库SQLLite中记录并作出一些处理。
2. 后台先创建一个总视频大小的临时文件,前台每调用一次接口就向临时文件里写入切片视频大小的字节。

代码如下:

控制层:

/**
	 * 上传视频
	 * 
	 * @param request
	 * @return
	 */
	@PostMapping(value = "uploadUsVideo")
	public ServerResponse<?> uploadUsVideo(HttpServletRequest request) {
   
		try {
   
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
			MultipartFile video = multipartRequest.getFile("image");//视频文件
			String memo = multipartRequest.getParameter("memo");//视频基本信息
			return iImageService.uploadUsVideo(video, memo);
		} catch (Exception e) {
   
			return ServerResponse.createByException(e);
		}
	}

实现类:


	/**
	 * 上传视频
	 */
	@Override
	@Transactional(value = "localMasterTransactionManager", rollbackFor = Exception.class)
	public ServerResponse<?> uploadUsVideo(MultipartFile video, String memo) throws Exception {
   
		// add hbn 2020 05-09
		if (video == null) {
   
			return ServerResponse.createByErrorMessage("视频为空");
		}
		if (video.isEmpty()) {
   
			return ServerResponse.createByErrorMessage("视频为空");
		}
		JSONObject jsonObject = JSON.parseObject(memo);
		// 上传起始位置
		long sliceOffset = jsonObject.getLongValue("sliceOffset"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值