媒体处理 MTS-截图问题

简介: 案例:传入的截图时间无效,无论传多少值,都只截取视频的第一帧 分析: 如果选则是关键帧截图,需要看好关键帧的间隔设置,。可以参考下官网的 java 代码,测试是过是可以生成多张的。 package com.

案例:

传入的截图时间无效,无论传多少值,都只截取视频的第一帧

排查:

如果选则是关键帧截图,需要看好关键帧的间隔设置,。可以参考下官网的 java 代码,测试是过是可以生成多张的。

package com.aliyun.mts;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.mts.model.v20140618.*;
public class Snapshot {
    private static String accessKeyId = "xxx";
    private static String accessKeySecret = "xxx";
    private static String mpsRegionId = "cn-hangzhou";
    private static String pipelineId = "xxx";
    private static String ossLocation = "oss-cn-hangzhou";
    private static String ossBucket = "xxx";
    private static String ossInputObject = "input.mp4";
    private static String ossOutputObject = "output_{Count}.jpg";
    public static void main(String[] args) {
        // DefaultAcsClient
        DefaultProfile profile = DefaultProfile.getProfile(
                mpsRegionId,      // Region ID
                accessKeyId,      // AccessKey ID
                accessKeySecret); // Access Key Secret
        IAcsClient client = new DefaultAcsClient(profile);
        // request
        SubmitSnapshotJobRequest request = new SubmitSnapshotJobRequest();
        // Input
        JSONObject input = new JSONObject();
        input.put("Location", ossLocation);
        input.put("Bucket", ossBucket);
        try {
            input.put("Object", URLEncoder.encode(ossInputObject, "utf-8"));
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("input URL encode failed");
        }
        request.setInput(input.toJSONString());
        // SnapshotConfig
        JSONObject snapshotConfig = new JSONObject();
        // SnapshotConfig->OutputFile
        JSONObject output = new JSONObject();
        output.put("Location", ossLocation);
        output.put("Bucket", ossBucket);
        try {
            output.put("Object", URLEncoder.encode(ossOutputObject, "utf-8"));
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("output URL encode failed");
        }
        snapshotConfig.put("OutputFile", output.toJSONString());
        // SnapshotConfig->Time
        snapshotConfig.put("Time", "2");
        // SnapshotConfig->Interval/Num
        snapshotConfig.put("Interval", "2");
        snapshotConfig.put("Num", "3");
        // SnapshotConfig->Width/Height
        snapshotConfig.put("Height", "360");
        // SnapshotConfig
        request.setSnapshotConfig(snapshotConfig.toJSONString());
        // PipelineId
        request.setPipelineId(pipelineId);
        // call api
        SubmitSnapshotJobResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println("RequestId is:"+response.getRequestId());
            System.out.println("JobId is:" + response.getSnapshotJob().getId());
            System.out.println(String.format(
                                        "http://%s.%s.aliyuncs.com/output_00001.jpg",
                                        ossBucket,
                                        ossLocation));
            System.out.println(String.format(
                                        "http://%s.%s.aliyuncs.com/output_00002.jpg",
                                        ossBucket,
                                        ossLocation));
            System.out.println(String.format(
                                        "http://%s.%s.aliyuncs.com/output_00003.jpg",
                                        ossBucket,
                                        ossLocation));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

案例:

媒体处理设置 CBR 转码后均失败

排查:

媒体处理提供了转码转码模式的转码

  • CBR 模式下,如果设置了固定码率需要结合 maxrate minrate vbv 三个参数才能用,CBR 要求保持的码率是恒定的,不能有波动,比如运动比较大的画面。
  • ONEPASS 模式下,用户可以设置客户端设置的固定码率,允许码率有波动。
  • TWO PASS 模式下,在第一次其实是检测收集运动啊亮度等相关数据,这样在第二次编码的时候就会针对不同的场景来进行动态的压缩编码。二次编码比一次编码质量要好一些的。但是编码时间也会增加不少。使用二次编码可以把变化不大的画面转换时码率低一些(如静态画面),而变化大的码率高一些(如打斗动作部分),这样码率是变化的,可以使整部影片的清晰度比较均匀,只有在转换高清影片时二次编码才能发挥最大做用。

结论:

更改 ONEPASS 模式后问题解决。

案例:

MTS 转码首帧总是黑屏

排查:

1

当提交的截图是。"frameType":"intra" 时,并且视频的黑色元素占比较高时截图出来的可能会是黑屏,可以通过如下参数组合尝试重新截图。

time=0 num=1. blacklevel=90。

案例:

客户端请求 MTS 提交转码任务并设置截图,并按照 1s 的 interval 截图,视频很长但是只截取到几张图。

排查:

遇到问题可以按照以下思路排查:

  • 优先看下客户端提交的截图参数 format_type 截图类型,是 intrl 关键帧截图还是 normal 普通截图。如果是 intrl 截图设置了 interval 也是没用的。
  • 如果是关键帧截图,看下视频的关键帧有多少,和截图的数量是不是一致的,如果一致就对了。
  • 如果是普通截图的话就会按照 interval 的间隔来截图。
目录
相关文章
|
编解码 Java API
媒体处理 MTS-截图问题
案例:传入的截图时间无效,无论传多少值,都只截取视频的第一帧 分析: 如果选则是关键帧截图,需要看好关键帧的间隔设置,。可以参考下官网的 java 代码,测试是过是可以生成多张的。 package com.
媒体处理 MTS-截图问题
|
编解码
媒体处理 MTS-基础问题
案例:出现更换 MTS key 后转码失败 KEY 有两种类型,一个是 BASE64 另外一个是 KMS,如果选择 KMS 需要购买 KMS 的管理服务。如果是 BASE64 的方式自己设定一个 128bit 的 KEY 然后 BASE64 传给 server 端即可。
1376 0
|
人工智能 边缘计算 监控
【开源视频联动物联网平台】视频AI智能分析部署方式
【开源视频联动物联网平台】视频AI智能分析部署方式
603 3
|
机器学习/深度学习 人工智能 小程序
智能媒体处理使用与原理(一)|学习笔记
快速学习智能媒体处理使用与原理(一)
274 0
智能媒体处理使用与原理(一)|学习笔记
|
机器学习/深度学习 人工智能 编解码
智能媒体处理使用与原理(二)|学习笔记
快速学习智能媒体处理使用与原理(二)
191 0
|
人工智能
智能媒体处理使用技巧
智能AI与视频制作
224 0
|
机器学习/深度学习 人工智能 语音技术
视频AI,助力体育赛事转播走进智能时代
2018俄罗斯世界杯经过近20天的激战,已经进入到最关键的阶段。本次赛事除了精彩纷呈的比赛之外,还加入很多高科技的元素,例如门线、VAR技术等等。让本届世界杯成为科技含量最高的一届世界杯。
2982 0
|
监控 数据可视化 虚拟化
服务器虚拟化
服务器虚拟化
701 0
|
6月前
|
资源调度 前端开发 算法
鸿蒙OS架构设计探秘:从分层设计到多端部署
本文深入探讨了鸿蒙OS的架构设计,从独特的“1+8+N”分层架构到模块化设计,再到智慧分发和多端部署能力。分层架构让系统更灵活,模块化设计通过Ability机制实现跨设备一致性,智慧分发优化资源调度,多端部署提升开发效率。作者结合实际代码示例,分享了开发中的实践经验,并指出生态建设是未来的关键挑战。作为国产操作系统的代表,鸿蒙的发展值得每一位开发者关注与支持。
|
负载均衡 网络协议 数据库
ENSP中RIP动态路由协议(原理和配置)
`RIP (Routing Information Protocol)` 是一种距离矢量动态路由协议,用于路由器之间交换网络可达性信息。它基于跳数作为度量标准来衡量到达目的地的距离,最常用于小型网络。RIP有以下关键特点: 1. **实现网络互通**:路由器通过RIP学习彼此的路由信息,构建完整的路由表。 2. **动态更新**:路由器周期性广播其路由表,以应对网络拓扑变化。 3. **负载均衡**:RIPv2支持负载均衡,可根据链路负载选择最佳路径。 4. **简单配置**:适用于小型网络,配置和管理相对简单。 5. **成本效益**:作为免费协议,降低了网络部署和维护成本。
895 0
ENSP中RIP动态路由协议(原理和配置)

热门文章

最新文章