php - 创建作业时出现 AWS Mediaconvert PHP Api 错误
问题描述
您好,我正在尝试使用 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"
]
];
如果有人可以帮助我,那就太好了!祝你有美好的一天。
解决方案
看起来 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 时包含此对象和任何必需的子对象。
推荐阅读
- angular - 基于守卫的同一路径上的延迟加载模块
- javascript - Javascript:两个无线电无线电检查
- liferay - Liferay - 资产框架对什么有用?
- php - 尝试使用 odbc 从 Sybase 数据库获取数据时出现 HTTP ERROR 500
- android - 在文件、数据绑定、Room DB 中发现重复的类
- python - 确定性随机函数
- mysql - 如何创建 SQL 查询以获取比较两列具有更高价值的所有项目
- javascript - 覆盖 React 的内部 `type`
- excel - 如何在 Excel 中选择显示的小数
- reactjs - 如何修复“./src/index.js Module not found: Can't resolve 'loadash” in my react app?