0

您好,我正在尝试使用 PHP SDK 将我的 S3 Buket 中的 MP4 文件转换为 .HLS 流文件。

使用 API 创建工作实际上对我来说太难了……

我收到此错误:

Error executing "CreateJob" on "https://*******.mediaconvert.eu-west-3.amazonaws.com/2017-08-29/jobs"; AWS HTTP error: Client error: `POST https://183ds3ywc.mediaconvert.eu-west-3.amazonaws.com/2017-08-29/jobs` resulted in a `400 Bad Request` response: { "errorType": "BadRequestException", "httpStatus" : 400, "requestId" : "60ac6a68-63f5-4412-a880-d36fb4f00436", (truncated...) BadRequestException (client): /outputGroups/0/outputGroupSettings/fileGroupSettings: Should match all dependencies: See other errors for more details | /outputGroups/0/outputGroupSettings/type: Must be FILE_GROUP_SETTINGS - { "errorType": "BadRequestException", "httpStatus" : 400, "requestId" : "60ac6a64-63f5-4412-a80-d36fb2f00436", "message" : "/outputGroups/0/outputGroupSettings/fileGroupSettings: Should match all dependencies: See other errors for more details | /outputGroups/0/outputGroupSettings/type: Must be FILE_GROUP_SETTINGS", "settingsValidationErrorsJsonBlob" : "[{\"message\":\"Should match all dependencies: See other errors for more details\",\"dataPath\":[\"/outputGroups/0/outputGroupSettings/fileGroupSettings\"]},{\"message\":\"Must be FILE_GROUP_SETTINGS\",\"dataPath\":[\"/outputGroups/0/outputGroupSettings/type\"]}]" }

我的代码是:

$mediaConvertClient = new MediaConvertClient([
    'version' => 'latest',
    'region' => 'eu-west-3',
    'endpoint' => 'https://********.mediaconvert.eu-west-3.amazonaws.com',
    'credentials' => [
        'key'    => '*******',
        'secret' => '*******',
    ],
]);
$jobSetting = [
    "OutputGroups" => [
        [
            "Name" => "Apple HLS",
            "OutputGroupSettings" => [
                "Type" => "HLS_GROUP_SETTINGS",
                "FileGroupSettings" => [
                    "Destination" => "s3://my-bucket/"
                ]
            ],
            "Outputs" => [
                [
                    // Will use default Audio Source 1
                    "Preset" => "System-Avc_16x9_360p_29_97fps_600kbps",
                    "NameModifier" => "_modify"
                ],
            ]
        ]
    ],
    "AdAvailOffset" => 0,
    "Inputs" => [
        [
            "AudioSelectors" => [
                "Audio Selector 1" => [
                    "Offset" => 0,
                    "DefaultSelection" => "DEFAULT",
                    "ProgramSelection" => 1,
                    "SelectorType" => "TRACK",
                    "Tracks" => [
                        1
                    ]
                ],
            ],
            "VideoSelector" => [
                "ColorSpace" => "FOLLOW"
            ],
            "FilterEnable" => "AUTO",
            "PsiControl" => "USE_PSI",
            "FilterStrength" => 0,
            "DeblockFilter" => "DISABLED",
            "DenoiseFilter" => "DISABLED",
            "TimecodeSource" => "EMBEDDED",
            "FileInput" => "s3://my-bucket/testvid.mp4"
        ]
    ],
    "TimecodeConfig" => [
        "Source" => "EMBEDDED"
    ]
];

如果有人可以帮助我,那就太好了!祝你有美好的一天。

4

1 回答 1

0

看起来 OutputGroupSettings 中的成员不正确。您应该使用HlsGroupSettings而不是FileGroupSettings.

https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-mediaconvert-2017-08-29.html#createjob

HlsGroupSettings 类型:HlsGroupSettings 结构 与您的 HLS 输出包相关的设置。有关更多信息,请参阅https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html。当您直接在 JSON 作业规范中工作时,请在将 OutputGroupSettings 下的 Type 设置为 HLS_GROUP_SETTINGS 时包含此对象和任何必需的子对象。

于 2021-11-18T16:19:18.160 回答