如果源视频小于目标,是否有内置的方法来防止AME从配置文件中编码输出大小,或者是否需要有一堆预设,每个预设都具有最大的res然后我我自己查询媒体文件以确定使用哪个预设?
这是我到目前为止所要包含的1080版本,但不希望720或更低的源文件生成1080大小:
{
"KeyFrameInterval": "00:00:02",
"H264Layers": [
{
"Profile": "Auto",
"Level": "auto",
"Bitrate": 2250,
"MaxBitrate": 3400,
"BufferWindow": "00:00:05",
"Width": 1280,
"Height": 720,
"BFrames": 3,
"ReferenceFrames": 3,
"AdaptiveBFrame": true,
"Type": "H264Layer",
"FrameRate": "0/1"
},
{
"Profile": "Auto",
"Level": "auto",
"Bitrate": 1500,
"MaxBitrate": 2250,
"BufferWindow": "00:00:05",
"Width": 960,
"Height": 540,
"BFrames": 3,
"ReferenceFrames": 3,
"AdaptiveBFrame": true,
"Type": "H264Layer",
"FrameRate": "0/1"
},
{
"Profile": "Auto",
"Level": "auto",
"Bitrate": 650,
"MaxBitrate": 1000,
"BufferWindow": "00:00:05",
"Width": 640,
"Height": 360,
"BFrames": 3,
"ReferenceFrames": 3,
"AdaptiveBFrame": true,
"Type": "H264Layer",
"FrameRate": "0/1"
}
],
"Type": "H264Video"
},
答案 0 :(得分:2)
您是否查看过使用Media Encoder Premium Workflow编码器和Azure Media Services工作流设计器(https://azure.microsoft.com/en-us/documentation/articles/media-services-workflow-designer/)的教程。
有一个工作流示例可以检测输入分辨率 - https://github.com/Azure/azure-media-services-samples/tree/master/Encoding%20Presets/VoD/MediaEncoderPremiumWorkfows。 (H264 Progressive下载MP4 SD)。从示例描述中的一个“如果源是SD(图像宽度小于640),则输出的帧大小保持不变。否则,如果源是HD(图像宽度是640或更大),则设置输出帧大小至640x360(16:9来源)或640x480(4:3来源)。“
如果需要,您需要请求工作流设计器工具并更改描述的逻辑 - 很难手动构建这些工作流文件。
如果您只想使用Media Encoder Standard,则需要使用sdk构建输入检测逻辑,并根据输入分辨率安排或跳过编码。