iOS实现视频压缩上传实例代码
发布时间 - 2026-01-11 00:52:17 点击率:次之前写过图片上传PHP服务器,今天把接口稍微改了一下,把视频上传的代码贴出来,目前上传功能已经调通,视频的压缩代码上似乎并不完善,后续会完善压缩部分的代码;
- (void)convertVideoWithURL:(NSURL *)url
{
NSDate *date = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init];
[dateformatter setDateFormat:@"YYYY-MM-dd-HH-mm-ss"];
NSString *dateName = [dateformatter stringFromDate:date];
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *pathName = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.mp4",dateName]];
NSLog(@"沙盒:%@",pathName);
//转码配置
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
AVAssetExportSession *exportSession= [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputURL = [NSURL fileURLWithPath:pathName];
exportSession.outputFileType = AVFileTypeMPEG4;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
int exportStatus = exportSession.status;
switch (exportStatus) {
case AVAssetExportSessionStatusFailed:
{
// log error to text view
NSError *exportError = exportSession.error;
NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError);
[SVProgressHUD showErrorWithStatus:@"视频压缩失败"];
[SVProgressHUD dismissWithDelay:1.0];
break;
}
case AVAssetExportSessionStatusCompleted:
{
self.videoData = [NSData dataWithContentsOfFile:pathName];
[[NetTool shareDL]upLoadVideoWithURL:@"http://192.168.1.102/php/image.php" paremeter:nil data:self.videoData videoName:[NSString stringWithFormat:@"%@.mp4",dateName] progress:^(NSProgress * _Nonnull uploadProgress) {
[SVProgressHUD showProgress:1.0*uploadProgress.completedUnitCount/uploadProgress.totalUnitCount status:@"正在上传"];
NSLog(@"正在上传%f%%",(1.0*uploadProgress.completedUnitCount/uploadProgress.totalUnitCount)*100);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
[SVProgressHUD showSuccessWithStatus:@"上传成功"];
[SVProgressHUD dismissWithDelay:1.0];
} fail:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
[SVProgressHUD showErrorWithStatus:@"上传失败"];
[SVProgressHUD dismissWithDelay:1.0];
}];
}
}
}];
}
[manager POST:url parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileData:videoData name:@"upimage" fileName:videoName mimeType:@"video/mp4"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
progress(uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
success(task,responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
fail(task,error);
}];
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ios
# 视频压缩上传
# 视频压缩上传demo
# 视频录制压缩上传
# iOS中图片的解压缩到渲染过程详解
# iOS图片压缩、滤镜、剪切及渲染等详解
# iOS开发之image图片压缩及压缩成指定大小的两种方法
# iOS视频压缩存储至本地并上传至服务器实例代码
# IOS开发压缩后图片模糊问题解决
# 上传
# 改了
# 贴出
# 写过
# 大家多多
# 图片上传
# 视频压缩
# 沙盒
# NSLog
# URLAssetWithURL
# asset
# AVURLAsset
# stringWithFormat
# NSDocumentDirectory
# NSSearchPathForDirectoriesInDomains
# path
# NSUserDomainMask
# stringByAppendingPathComponent
# pathName
# firstObject
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Android okhttputils现在进度显示实例代码
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何用花生壳三步快速搭建专属网站?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Python高阶函数应用_函数作为参数说明【指导】
Linux系统命令中screen命令详解
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel Fortify是什么,和Jetstream有什么关系
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
bing浏览器学术搜索入口_bing学术文献检索地址
再谈Python中的字符串与字符编码(推荐)
如何在建站主机中优化服务器配置?
制作电商网页,电商供应链怎么做?
如何在搬瓦工VPS快速搭建网站?
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel如何生成API文档?(Swagger/OpenAPI教程)
如何在腾讯云服务器快速搭建个人网站?
如何在Tomcat中配置并部署网站项目?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel怎么上传文件_Laravel图片上传及存储配置
JS弹性运动实现方法分析
LinuxCD持续部署教程_自动发布与回滚机制
Laravel怎么为数据库表字段添加索引以优化查询
如何注册花生壳免费域名并搭建个人网站?
原生JS获取元素集合的子元素宽度实例
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在阿里云ECS服务器部署织梦CMS网站?
Python图片处理进阶教程_Pillow滤镜与图像增强
java ZXing生成二维码及条码实例分享
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
网站建设要注意的标准 促进网站用户好感度!
音乐网站服务器如何优化API响应速度?
如何快速查询网站的真实建站时间?
如何在阿里云部署织梦网站?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
网页设计与网站制作内容,怎样注册网站?
如何构建满足综合性能需求的优质建站方案?
黑客如何利用漏洞与弱口令入侵网站服务器?

