媒体处理 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 转码首帧总是黑屏

排查:

image.png

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

time=0 num=1. blacklevel=90。

案例:

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

排查:

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

  • 优先看下客户端提交的截图参数 format_type 截图类型,是 intrl 关键帧截图还是 normal 普通截图。如果是 intrl 截图设置了 interval 也是没用的。
  • 如果是关键帧截图,看下视频的关键帧有多少,和截图的数量是不是一致的,如果一致就对了。
  • 如果是普通截图的话就会按照 interval 的间隔来截图。
相关文章
|
编解码
媒体处理 MTS-基础问题
案例:出现更换 MTS key 后转码失败 KEY 有两种类型,一个是 BASE64 另外一个是 KMS,如果选择 KMS 需要购买 KMS 的管理服务。如果是 BASE64 的方式自己设定一个 128bit 的 KEY 然后 BASE64 传给 server 端即可。
1376 0
|
编解码 Java
媒体处理 MTS-截图问题
案例:传入的截图时间无效,无论传多少值,都只截取视频的第一帧 分析: 如果选则是关键帧截图,需要看好关键帧的间隔设置,。可以参考下官网的 java 代码,测试是过是可以生成多张的。 package com.
1872 0
|
人工智能 边缘计算 监控
【开源视频联动物联网平台】视频AI智能分析部署方式
【开源视频联动物联网平台】视频AI智能分析部署方式
603 3
|
机器学习/深度学习 人工智能 小程序
智能媒体处理使用与原理(一)|学习笔记
快速学习智能媒体处理使用与原理(一)
274 0
智能媒体处理使用与原理(一)|学习笔记
|
机器学习/深度学习 人工智能 编解码
智能媒体处理使用与原理(二)|学习笔记
快速学习智能媒体处理使用与原理(二)
191 0
|
人工智能
智能媒体处理使用技巧
智能AI与视频制作
224 0
|
机器学习/深度学习 人工智能 语音技术
视频AI,助力体育赛事转播走进智能时代
2018俄罗斯世界杯经过近20天的激战,已经进入到最关键的阶段。本次赛事除了精彩纷呈的比赛之外,还加入很多高科技的元素,例如门线、VAR技术等等。让本届世界杯成为科技含量最高的一届世界杯。
2982 0
|
11月前
|
缓存 UED 网络架构
网站404该怎么解决
网站404错误通常表示用户尝试访问的网页不存在或无法找到
1618 0
|
11月前
|
机器学习/深度学习 人工智能 算法
Agent Q:具备自我学习、评估的智能体
近年来,人工智能领域取得了显著进步,特别是智能体技术备受瞩目。智能体作为AI系统核心,能自主学习、决策和执行任务,应用广泛。Agent Q作为一种具备自我学习和评估能力的智能体,通过强化学习算法,能自动优化行为策略,适应复杂环境,无需人工干预。此外,它还能根据评估指标调整策略,持续提升任务完成质量。尽管存在复杂环境适应性和计算资源消耗等挑战,Agent Q仍为智能机器人、自动驾驶等领域的应用提供了新思路,推动了AI技术的发展。论文详细内容可在此处获取:https://multion-research.s3.us-east-2.amazonaws.com/AgentQ.pdf
374 1
|
关系型数据库 MySQL Linux
服务器Linux系统配置mysql数据库主从自动备份
这是一个基本的配置主从复制和设置自动备份的指南。具体的配置细节和命令可能因您的环境和需求而有所不同,因此建议在操作前详细阅读MySQL文档和相关资源,并谨慎操作以避免数据丢失或不一致。
349 3

热门文章

最新文章