一、与七牛工程师勾兑中:
您好,
您可以使用视频截帧操作并进行保存,
参考文档
视频截帧 https://developer.qiniu.com/dora/manual/1313/video-frame-thumbnails-vframe
另存为 https://developer.qiniu.com/dora/manual/1305/processing-results-save-saveas
持久化处理 https://developer.qiniu.com/dora/manual/1291/persistent-data-processing-pfop
关于这个功能,请问有相关java sdk的demo或者示例么?谢谢
您好,
持久化处理是有对应demo的,具体的操作参数您进行替换就可以了
https://developer.qiniu.com/kodo/sdk/1239/java#8
https://github.com/qiniu/java-sdk/blob/master/examples/pfop_vframe.java
二、关于【持久化数据处理】
对于已经保存到七牛空间的文件,可以通过发送持久化的数据处理指令来进行处理,这些指令支持七牛官方提供的指令,也包括客户自己开发的自定义数据处理的指令。数据处理的结果还可以通过七牛主动通知的方式告知业务服务器。
三、java sdk代码:
注意:代码中的【pipeline】,我一开始也懵逼,七牛的pipeline是什么???就是七牛控制平台下图这个【多媒体队列】这名称
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.processing.OperationManager;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
public class OperateDemo {
public static void main(String[] args) throws QiniuException {
//设置账号的AK,SK
String ACCESS_KEY = "Access_Key";
String SECRET_KEY = "Secret_Key";
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
//新建一个OperationManager对象
OperationManager operater = new OperationManager(auth);
//设置要转码的空间和key,并且这个key在你空间中存在
String bucket = "Bucket_Name";
String key = "Bucket_key";
//设置转码操作参数
String fops = "vframe/jpg/offset/1/w/480/h/360/rotate/90";
//设置转码的队列
String pipeline = "yourpipelinename";
//可以对转码后的文件进行使用saveas参数自定义命名,当然也可以不指定文件会默认命名并保存在当前空间。
String urlbase64 = UrlSafeBase64.encodeToString("目标Bucket_Name:自定义文件key");
String pfops = fops + "|saveas/" + urlbase64;
//设置pipeline参数
StringMap params = new StringMap().putWhen("force", 1, true).putNotEmpty("pipeline", pipeline);
try {
String persistid = operater.pfop(bucket, key, pfops, params);
//打印返回的persistid
System.out.println(persistid);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
// 请求失败时简单状态信息
System.out.println(r.toString());
try {
// 响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException e1) {
//ignore
}
}
}
}
文末提醒,如需回调,如下方法,需要七牛较高版本【七牛客服推荐的7.2.11】
String persistentId = operationManager.pfop(bucket, key, persistentOpfs, persistentPipeline, persistentNotifyUrl,true);
如题,我想让上传的视频中,截图变成一张独立存在的图片,请问有什么好的办法么?谢谢