我想使用 AWS Elemental MediaConvert 将一部电影 (.mov( 叠加在另一部电影 (.mp4( 之上。
我上传了一个.mov文件和一个.mp4到 S3,两者都具有相似的尺寸。
在 AWS Elemental MediaConvert 中,我创建了一个作业:
- 输入:.mp4文件
- 运动图像插入器:.mov文件
- 输出文件将是mp4文件
结果:作业失败,错误消息:
MGILoaderMOV [s3://test/overlay.mov] file contains unsupported pixel format.
.mov文件工作正常,因为我可以从笔记本电脑上播放它,IAM 包括对您的 Amazon S3 资源的完全访问权限。
任何建议都值得赞赏
更多详情 *****
@Tiziano科罗尼奥,我得到了一个新的叠加层.mov(从 FFmpeg 转换而来,尺寸 (450x450((。我按如下方式设置输出:
- 预处理器:输入裁剪矩形 X(100(、Y(100(、宽度 (450(、高度 (450(
作业已成功执行,但输出不包括覆盖。
{
"Queue": "arn:aws:mediaconvert:yyyyyyy:xxxxxxxx:queues/Default",
"UserMetadata": {},
"Role": "arn:aws:iam::xxxxxxxxxxxxx:role/my_media_role",
"Settings": {
"OutputGroups": [
{
"Name": "File Group",
"Outputs": [
{
"ContainerSettings": {
"Container": "MP4",
"Mp4Settings": {
"CslgAtom": "INCLUDE",
"FreeSpaceBox": "EXCLUDE",
"MoovPlacement": "PROGRESSIVE_DOWNLOAD"
}
},
"VideoDescription": {
"ScalingBehavior": "DEFAULT",
"Crop": {
"Height": 450,
"Width": 450,
"X": 100,
"Y": 100
},
"TimecodeInsertion": "DISABLED",
"AntiAlias": "ENABLED",
"Sharpness": 50,
"CodecSettings": {
"Codec": "H_264",
"H264Settings": {
"InterlaceMode": "PROGRESSIVE",
"NumberReferenceFrames": 3,
"Syntax": "DEFAULT",
"Softness": 0,
"GopClosedCadence": 1,
"GopSize": 90,
"Slices": 1,
"GopBReference": "DISABLED",
"SlowPal": "DISABLED",
"SpatialAdaptiveQuantization": "ENABLED",
"TemporalAdaptiveQuantization": "ENABLED",
"FlickerAdaptiveQuantization": "DISABLED",
"EntropyEncoding": "CABAC",
"Bitrate": 1000000,
"FramerateControl": "INITIALIZE_FROM_SOURCE",
"RateControlMode": "CBR",
"CodecProfile": "MAIN",
"Telecine": "NONE",
"MinIInterval": 0,
"AdaptiveQuantization": "HIGH",
"CodecLevel": "AUTO",
"FieldEncoding": "PAFF",
"SceneChangeDetect": "ENABLED",
"QualityTuningLevel": "SINGLE_PASS",
"FramerateConversionAlgorithm": "DUPLICATE_DROP",
"UnregisteredSeiTimecode": "DISABLED",
"GopSizeUnits": "FRAMES",
"ParControl": "INITIALIZE_FROM_SOURCE",
"NumberBFramesBetweenReferenceFrames": 2,
"RepeatPps": "DISABLED",
"DynamicSubGop": "STATIC"
}
},
"AfdSignaling": "NONE",
"DropFrameTimecode": "ENABLED",
"RespondToAfd": "NONE",
"ColorMetadata": "INSERT"
},
"Extension": ".mp4",
"NameModifier": "overlay_video"
}
],
"OutputGroupSettings": {
"Type": "FILE_GROUP_SETTINGS",
"FileGroupSettings": {
"Destination": "s3://XXXXXXX/files/"
}
}
}
],
"AdAvailOffset": 0,
"MotionImageInserter": {
"InsertionMode": "MOV",
"Input": "s3://XXXXXXX/converted_overlay.mov",
"Offset": {
"ImageX": 0,
"ImageY": 0
},
"Playback": "ONCE"
},
"Inputs": [
{
"FilterEnable": "AUTO",
"PsiControl": "USE_PSI",
"FilterStrength": 0,
"DeblockFilter": "DISABLED",
"DenoiseFilter": "DISABLED",
"TimecodeSource": "EMBEDDED",
"FileInput": "s3://XXXXXXX/sample_video.mp4"
}
]
},
"StatusUpdateInterval": "SECONDS_60"
}
经过一番试验和错误,我发现需要动态图形叠加文件采用像素格式argb
。
此处的错误消息告诉您 mov 文件具有不同的像素格式。如果您的计算机上安装了ffmpeg
,则可以运行以下命令将文件转换为正确的格式:
ffmpeg -i your_input_file.mov -sn -dn -an -vcodec qtrle -pix_fmt argb -f mov your_output_file.mov
-
-i
是指定输入文件, -
-sn
删除任何字幕轨道 -
-dn
删除任何数据轨道 -
-an
删除任何音轨 -
-vcodec qtrle
将"Quicktime Animation"设置为编解码器 -
-pix_fmt argb
argb
设置为像素数据格式 -
-f mov
mov
设置为输出文件容器类型。
祝你好运!