ãã®ãã¹ãã¯ã8 æ 21 æ¥ã«æçš¿ãã Advanced Encoding Features in Azure Media Encoderã®ç¿»èš³ã§ãã
Azure Media Encoder ã§ã¯ãæ¢å®ã®ããªã»ããã«ãã£ãŠå©çšå¯èœãªæ©èœä»¥å€ã«ããé«åºŠãªãããªããã³ãªãŒãã£ãªåŠçãå®è¡ã§ãã倿°ã®æ©èœãæäŸãããŠããŸããä»åã®èšäºã§ã¯ãé«åºŠãªãµã³ãã«ã®æ°ã
ãããŒã¿ã« ãšã¯ã¹ããªãšã³ã¹ã®åŸãã«é ããŠãã Azure Media Encoder ã®åªããæ©èœã®äžéšãã玹ä»ããŸããä»ååãäžããã·ããªãªã§ã¯ãã¡ãŒã«ããã©ãŒã©ã ãããåãåãããããã ããäžã§ç¹ã«å€ãã£ããã®ãéžã³ãŸããã
ã«ã¹ã¿ã ããªã»ãã
åããŠå©çšãããŠãŒã¶ãŒããããã«ãããšæããæ©èœã® 1 ã€ã«ãã«ã¹ã¿ã ããªã»ããã®å®çŸ©ãšéä¿¡ããããŸããç§ãã¡ãæäŸããŠãããšã³ã³ãŒããŒã«ã¯æ¢ã«å¹
åºãçš®é¡ã®å®çŸ©æžã¿ã®ã·ã¹ãã ããªã»ãããããã詳现æ
å ±ã¯ MSDN ã«ãŸãšããããŠããŸãããŸããç¹å®ã®ããã€ã¹ãžã®é
ä¿¡ã«ã©ã®ããªã»ããã䜿çšããã°ããããèšèŒããã¬ã€ãã³ã¹ ããŒãžããããŸãã
ãšã³ã³ãŒããŒã®ãã¹ãŠã®æ©èœãšèšå®ã¯ãXML ããªã»ãã ãã¡ã€ã«åœ¢åŒãå©çšããŠå®å
šã«æ§æããããšãã§ããŸããããã«ãããç¹å®ã®çšéã®ã·ããªãªã§å¿
èŠãšãªãèšå®ãããã©ãŒãã³ã¹ãæ§æã§ããŸããXML ããªã»ãã ãã¡ã€ã«åœ¢åŒã®å®å
šãªã¹ããŒãã«ã€ããŠã¯ãMedia Services Encoder ã®æ§æã¹ããŒãã®ããŒãžãåç
§ããŠãã ãããããã«ãã«ã¹ã¿ã 倿Žãå ããããã®ããã¹ã ãã©ã¯ãã£ã¹ãã®ãããå°ãå©çšã§ããããã«ããã¹ãŠã®ã·ã¹ãã å®çŸ©ã®ããªã»ããã®å®å
šãª XML ãæäŸãããŠããŸããããšãã°ããã¡ãã®ãªã³ã¯ã§ã¯ H264 Adaptive Bitrate MP4 Set 720P ã®å®å
šãª XML ãã芧ã«ãªããŸãã
ããªã»ãã ã¹ããŒãã®æ§é ã¯éåžžã«ã·ã³ãã«ã§ãããã¹ãŠã® XML 㯠<Presets> èŠçŽ ããå§ãŸãããã®äžã« 1 ã€ä»¥äžã® <Preset> å®çŸ©ãå«ããããšãã§ããŸããããã¯ãåäžã®ãšã³ã³ãŒã ã¿ã¹ã¯ã«å¯ŸããŠè€æ°ã®åºåããšã³ã³ãŒãèšå®ãå®çŸ©ããå Žåã«éåžžã«äŸ¿å©ã§ããããšãã°ã1 ã€ã®ãšã³ã³ãŒã ãžã§ãã§è€æ°ã®ãªãŒãã£ãª ãããã¡ã€ã«ã«åºåããå¿
èŠãããå ŽåããããŸãããã®è¯ãäŸãšããŠãã¹ãã¬ãª AAC ãšãµã©ãŠã³ã ãµãŠã³ãçšã® Dolby DD+ åœ¢åŒ (è±èª)ã®äž¡æ¹ããšã³ã³ãŒãããå Žåãªã©ãæããããŸãã
ããªã»ãã XML ã®æãåºæ¬çãªæ§é ã¯æ¬¡ã®ããã«ãªããŸãããšã³ã³ãŒããŒã®ããã»ããµã«äž»èŠãªå€æŽãå ããããéã«ã¯ããŒãžã§ã³ã®æ¹èšãè¡ããããããããªã»ããã«ãããŒãžã§ã³æååãå«ããŠããŸãã
<?xml version="1.0" encoding="utf-16"?>
<Presets version=â5.0â>
 <Preset>
   <MediaFile>
     <OutputFormat>
     </OutputFormat>
   </MediaFile>
 </Preset>
</Presets>
ããªã»ããã«æ°ããåºåã远å ããèšå®ã倿Žããã«ã¯ã<OutputFormat>以äžã«ããŸããŸãª XML èŠçŽ ã远å ããŸããããšãã°ãçŸæç¹ã§ã¯æ¬¡ã®åºå圢åŒããµããŒããããŠããŸãã
äžèšã®ååºå圢åŒã§ã¯ã次㮠2 ã€ã®äž»èŠãªèŠçŽ ã䜿çšããŠããªãŒãã£ãªãšãããªã®äž¡æ¹ã®è©³çްãªåºæ¬ã¹ããªãŒã èšå®ãã»ããã¢ããã§ããŸãã
å®å
šã«å®çŸ©ããããªãŒãã£ãªçšã«ã¹ã¿ã ããªã»ããã®ç°¡åãªäŸã¯æ¬¡ã®ããã«ãªããŸãããã®äŸã§ã¯ãæ¢åã®ãªãŒãã£ãªã®ã¿ã®ããªã»ãããããããã¬ãŒãã ãã 96 kbps ã«å€æŽããŠããŸãããªãŒãã£ãªã®å ŽåãAudioProfile 以äžã«ããŸããŸãªã³ãŒããã¯ã远å ã§ããŸããçŸæç¹ã§ã¯ãAACãDolbyãWMV ã®åãããã¡ã€ã«ããµããŒããããŠããŸãã詳现ã«ã€ããŠã¯ãAudioProfileèŠçŽ ã®ããŒãžãã芧ãã ããã
<?xml version="1.0" encoding="utf-16"?>
<!âMy Custom AAC Audio Preset -->
<Presets>
 <Preset
  Version="5.0">
   <MediaFile>
    <OutputFormat>
      <MP4OutputFormat
        StreamCompatibility="Standard">
        <AudioProfile Condition="SourceContainsAudio">
          <AacAudioProfile
            Codec="AAC"
            Channels="2"
            BitsPerSample="16"
            SamplesPerSecond="44100">
            <Bitrate>
              <ConstantBitrate
                Bitrate="96"
                IsTwoPass="False"
                BufferWindow="00:00:00" />
            </Bitrate>
          </AacAudioProfile>
        </AudioProfile>
      </MP4OutputFormat>
    </OutputFormat>
  </MediaFile>
 </Preset>
</Presets>
ãã㪠ãšã³ã³ãŒããè¡ã£ãŠããŠããžã§ãã® H264 ãšã³ã³ãŒãã®è©³çްèšå®ã«ã¢ã¯ã»ã¹ããå Žåã«ã¯ã<VideoProfile> èŠçŽ ä»¥äžã®æ¬¡ã®èŠçŽ ãèšå®ããããšãã§ããŸãããããã®èŠçŽ ã§ã¯ãããããšã³ã³ãŒãèšå®ã調æŽããããšãã§ããããã«ãã£ãŠãšã³ã³ãŒãã«èŠããæéãéåžžã«çããªãããšããéåžžã«é·ããªãããšããããŸãããã®ãããç·šéããŠããå
容ãååã«çè§£ããããã«ããŠãã ããã
VideoProfile èŠçŽ ä»¥äžã® H264 èšå®ã§æãäžè¬çã«äœ¿çšãããã®ã¯ãBasicãMainãHigh ã®åãããã¡ã€ã«èšå®ã§ãã
äžèšã®åãããã¡ã€ã«èšå®ã§ã¯ããšã³ã³ãŒãå
ã®å <Streams>ãæå®ããŸããé«åºŠãªãã«ããããã¬ãŒã MP4 ãšã³ã³ãŒã ããªã»ããã§ã¯ãè§£å床ãšåºåãããã¬ãŒãã®ç°ãªãè€æ°ã®åºåã¹ããªãŒã ãå®çŸ©ããããšãã§ããŸãã
ããªã»ããã¯ããªãŒãã£ãªã®ã¿ã®ã·ã³ãã«ãªãã®ãããè€æ°ã®åºå Preset ãš MediaFile ãçµã¿åãããéåžžã«è€éãªãã¹ãŒã㌠ããªã»ããããŸã§ãå€å²ã«ããããŸããããã¥ã¡ã³ãåãããŠããè€éãªã«ã¹ã¿ã ããªã»ããã®è¯ãäŸãšããŠããã¡ãã®è€æ°ã®ãªãŒãã£ãª ãã©ãã¯ãžã®ãšã³ã³ãŒããå®è¡ããèšå€§ãªããªã»ãã ãã¡ã€ã«ãã芧ãã ããããã®éåžžã«è€éãªããªã»ããã§ã¯ã1 ã€ã®ãžã§ã ããªã»ããã§ 8 ã€ã®ãã㪠ãã¡ã€ã«ãš 5 ã€ã®åå¥ã®ãªãŒãã£ãª ãšã³ã³ãŒã (Dolby DD+ ãå«ã) ãåºåããŠããŸãã
å®çŸ©ããã«ã¹ã¿ã ããªã»ããã¯ãConfiguration ããããã£ã« XML ãèšå®ããŠç°¡åã«ãšã³ã³ãŒã ã¿ã¹ã¯ã«éä¿¡ããããšãã§ããŸããæ¬¡ã®ãµã³ãã« ã³ãŒãã§ã¯ãconfiguration æååã«ã«ã¹ã¿ã ããªã»ãã XML ãèªã¿èŸŒãã§ãããã¿ã¹ã¯ã«äœ¿çšããŠããŸãã
string configuration = File.ReadAllText(pathToCustomXMLConfigFile));
ITask task = job.Tasks.AddNew("My Custom Encoding Task",
               encoderProcessor,
               configuration,
               TaskOptions.None);
é«åºŠãªãµã ãã€ã«çæ
ã«ã¹ã¿ã ããªã»ããã®èšå®ãæå®ãããããµã ãã€ã« ã¿ã¹ã¯ã䜿çšããå®å
šãªã¹ã¿ã³ãã¢ãã³ã®ã¿ã¹ã¯ãšããŠããšã³ã³ãŒãäžã«ãµã ãã€ã«ãç°¡åã«äœæããããšãã§ããŸããAzure Media Encoder ã«ã¯ãããŒã»ã³ããç¹å®ã®æç¹ãŸãã¯ééãæå®ãããªã©ããããªãããµã ãã€ã«ãçæããããŸããŸãªãªãã·ã§ã³ãçšæãããŠããŸãã
ãµã ãã€ã« ã¿ã¹ã¯ã§ã¯ããããªããäžé£ã®ç»åãçæããMedia Services ã¢ã«ãŠã³ãã®ã¢ã»ããã«æžã蟌ã¿ãŸãããã®åŸããããã®ãµã ãã€ã«ã Azure Storage ããçŽæ¥å©çšããããšããçºè¡ãããã¹ããªãŒãã³ã° ã³ã³ãã³ããšå
±ã« Media Services ã®ã¹ããªãŒãã³ã° ãµãŒããŒããå©çšããããšãã§ããŸãã
ãµã ãã€ã«ãçæããã«ã¯ãã¹ã¿ã³ãã¢ãã³ã®ãµã ãã€ã« ã¿ã¹ã¯ããžã§ãã«éä¿¡ããã¢ã«ãŠã³ãå
ã®ãã㪠ã¢ã»ãããæå®ããããã¿ã¹ã¯ãé£çµããŠãŸããšã³ã³ãŒãããŠããããžã§ãã®åŸã«ãµã ãã€ã«ãçæããŸãã
ãµã ãã€ã« ã¿ã¹ã¯ãéä¿¡ããå ŽåãAzure Media Encoder ãšå
±ã«ããµã ãã€ã«ãçæããããã«å¿
èŠãªãã¹ãŠã®æ
å ±ãæå®ããã«ã¹ã¿ã XML ãã¡ã€ã«ã䜿çšããå¿
èŠããããŸãã
ãã® XML ã®æãã·ã³ãã«ãªåœ¢åŒã¯æ¬¡ã®ããã«ãªããŸãããã®äŸã§ã¯ãåºå®å¹
ãå¯å€ã®é«ããJPEG 圢åŒãšã«ã¹ã¿ãã€ãºããåœåãã³ãã¬ãŒããããã«ãå
¥åã¿ã€ã ã©ã€ã³ã®äœçœ®ã«ç¹å®ã®ããŒã»ã³ããæå®ããŠããµã ãã€ã«ãçæããæ¹æ³ã瀺ããŠããŸãã
<?xml version="1.0" encoding="utf-8"?>
<Thumbnail Size="100%,*" Type="Jpeg" Filename="{OriginalFilename}_{Size}_{ThumbnailTime}_{ThumbnailIndex}_{Date}_{Time}.{DefaultExtension}">
       <Time Value="10%" Step="10%" Stop="90%"/>
</Thumbnail>
Thumbnail èŠçŽ ã§ããæ¬¡ã®å±æ§ã«ããããµã ãã€ã«ã®åºåãµã€ãºãšçš®é¡ã®è©³çްãèšå®ããããšãã§ããŸãã
- Size â äœæãããµã ãã€ã«ã®å¹
ãšé«ããèšå®ããŸããããŒã»ã³ããæ£ç¢ºãªãã¯ã»ã«ã®å€ãæå®ããããšããã¢ã¹ã¿ãªã¹ã¯ (*) ã䜿çšããŠå
ã®ãããªã®çžŠæšªæ¯ãç¶æããããšãã§ããŸãã
- Type â åºåãã¡ã€ã«åœ¢åŒãèšå®ããŸãããµããŒããããŠããå€ã¯ãJPEGãBMPãGIFãPNG ã§ãã
@FileName 屿§ã¯ããµã ãã€ã«ã®åºååœåãã³ãã¬ãŒããæå®ããéã«å©çšå¯èœãªäžé£ã®ãã¯ãã䜿çšããŸããæ¬¡ã®ãã¯ãåããµããŒããããŠããŸãã
- OriginalFilename â ãµã ãã€ã« ãžã§ãã®çæå
ã®å
¥åãã¡ã€ã«å
- Size â @Size 屿§ã§èšå®ããããµã ãã€ã« ã¿ã¹ã¯ã®ãµã€ãº (å¹
x é«ã)
- ThumbnailTime â ãããªãããµã ãã€ã«ãæœåºãããæç¹
- ThumbnailIndex â ãµã ãã€ã«ã®çµ¶å¯Ÿã€ã³ããã¯ã¹çªå·
- Date â ãµã ãã€ã«ãæœåºãããçã圢åŒã®æ¥ä» (DD-MM-YYYY)
- Time â ãµã ãã€ã«ãæœåºãããæé (HH.MM AM/PM)
- DefaultExtension â éžæãããåºå圢åŒã® @Type ã«äœ¿çšãããŠããæ¡åŒµåãType=âJpegâ ã®å Žåã¯ãâjpgâ ã«èšå®ãããŸãã
XML ã® <Time> èŠçŽ ã§ã¯ã3 ã€ã®ããããã£ã«ãã£ãŠãµã ãã€ã«ãçæå
ã®ãããªããæœåºãããæ¹æ³ãå¶åŸ¡ããŸãã@Value 屿§ã¯ãµã ãã€ã«ã®æœåºã®éå§äœçœ®ãæå®ããŸãããã®äŸã§ã¯ããããªã®åçæéã® 10% ã«èšå®ãããŠããŸãã@Step 屿§ã¯éå§äœçœ®ã®å€ããå
ã«é²ãééãå¶åŸ¡ããŸããçµäºäœçœ®ãšããŠæå®ããã Stop ã®é床 (ãã®äŸã§ã¯ 90%) ã«éãããŸã§ãæå®ãããééã§ååŸããåäœãç¹°ãè¿ããŸããããŒã»ã³ãæå®ã®åäœã䜿çšããããšã®ã¡ãªããã¯ãæ£ç¢ºãªã¿ã€ã ã³ãŒããèšå®ãããããžã§ãã«äœ¿çšãã XML ãã¡ã€ã«ãäœæããåã«ãããªå
šäœã®åçæéãææ¡ãããããå¿
èŠããªããšããããšã§ãã@Filename 屿§ã§åœåãã³ãã¬ãŒããäœæããå ŽåãFilename ããããã£ã®å€ã«ããŒã»ã³ã ãšã³ã³ãŒãã®äºçŽæå (è±èª)ã§ããã!*â();:@&=+$,/?%#[]âãã䜿çšããããšã¯ã§ããŸããããŸãããã¡ã€ã«åã®æ¡åŒµåã«ã¯ã.ãã 1 ã€ãã䜿çšã§ããŸããã
äžèšã® XML ã®åºåã§ã¯ã次ã®ããã«ãã³ãã¬ãŒãèšå®ã«åºã¥ããã¡ã€ã«åãçæãããŸãããã®ãµã³ãã«ã¯ããã 5 ç§ã®ãšãŠãçããã®ã ã£ããããããã»ã©å€ãã®ãµã ãã€ã«ãååŸãããŸããã§ããã
![]()
ãµã ãã€ã«ãçæããå Žåã®ãã 1 ã€ã®ãªãã·ã§ã³ãšããŠããããªããæœåºããæ£ç¢ºãªæç¹ãããã£ãŠããã°ããæé:å:ç§ãã®åœ¢åŒã§æå®ããã¿ã€ã ã³ãŒãã䜿çšããŠä¿®æ£ãã XML ãéä¿¡ããããšãã§ããŸãã
<?xml version="1.0" encoding="utf-8"?>
<Thumbnail Size="300,*" Type="Jpeg" Filename="{OriginalFilename}_{ThumbnailIndex}.{DefaultExtension}">
 <Time Value="0:0:0" Step="0:0:5" />
</Thumbnail>
äžèšã®ãµã³ãã«ã¯ãããªã®æå (0:0:0) ããéå§ãããããªã®æåŸã«å°éãããŸã§ Step ã®å€ã«æå®ãã 5 ç§ (0:0:5) ééã§æ°ãããµã ãã€ã«ã®ååŸãç¶ããŸãã
ãã®ãã³ãã¬ãŒãã§ã¯äžèšãšåãçããããªã䜿çšãããããã€ã³ããã¯ã¹å€ â1â ãå«ã 1 ã€ã®ãµã ãã€ã«ã®ã¿ãçæãããŸããã
![]()
Media Services API ã®ãžã§ããšããŠã«ã¹ã¿ãã€ãºãã XML èšå®ãéä¿¡ããæ¹æ³ã®è©³çްãšãµã³ãã« ã³ãŒãã«ã€ããŠã¯ãããããªã®ãµã ãã€ã«ã®äœæããã芧ãã ããã
ãããªãšãªãŒãã£ãªã®ãªãŒããŒã¬ã€
ãšã³ã³ãŒããŒã§ãããªã«ç®ã«èŠããéããã远å ããããšã§ãç»åã®ãªãŒããŒã¬ã€ãé©çšããŠãã³ã³ãã³ãã®äžæ£ãªé
åžã®é²æ¢ãã³ã³ãã³ãã®ãã©ã³ãã£ã³ã°ãè¡ãããšãã§ããŸããããšãã°ããã¬ãå±ã§ã¯çªçµç»é¢ã®é
ã«ããŽãé
眮ããããšã«ãããã³ã³ãã³ããç¹å®ã§ããããã«ããŠããŸãããŸããèªç©ºäŒç€Ÿã§ã¯ãé
ä¿¡ãããæ ç»ã®éäžã«ãã³ãã³èªç©ºäŒç€Ÿã®éããã衚瀺ãããŸãããã¡ãããç®ã«èŠããéããã远å ããŠãå®å
šã«ãããªã®æµçšãé²ãããšãã§ããããã§ã¯ãããŸããããä»è
ã«ããæµçšãæããææè
ãæç¢ºã«ç¹å®ããããã«ã¯åœ¹ç«ã¡ãŸããé
åžã鲿¢ãããããããªãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ãããããããã«ãä»åŸå
¬éããããã€ã¯ããœããã® PlayReady ã³ã³ãã³ãä¿è·ãµãŒãã¹ãªã©ã®ããžã¿ã«èäœæš©ç®¡çæ©èœãå©çšããããšããå§ãããŸãã
泚: çŸæç¹ã§ã¯ãMedia Services ã§ããããããã©ã¬ã³ãžãã¯ãéããã¯æäŸãããŠããŸããããã©ã¬ã³ãžãã¯éãããšã¯ãå
容ã«åœ±é¿ããªã圢ã§ãã㪠ã¹ããªãŒã ã«é©çšãããç®ã«èŠããªãéããã®ããšã§ãåŸããæ€åºããããšã§ã³ã³ãã³ããæŒãããã人ç©ãŸãã¯ææè
ãç¹å®ããããšãã§ããŸãã
Azure Media Encoder ã§ã¯ãæ¢åã®ãããªã«ç»å (*.jpgã*.bmpã*.gifã*.tifã*.png)ããããªããªãŒãã£ãª ãã©ãã¯ããªãŒããŒã¬ã€ããããšãã§ããŸãããªãŒããŒã¬ã€ã®èšå®ã䜿çšããŠããªãŒããŒã¬ã€ã®è¡šç€ºæéããã§ãŒããäžéæåºŠãåºåãããªäžã®äœçœ®ãå¶åŸ¡ã§ããŸãã
ãªãŒããŒã¬ã€èšå®ã¯ããšã³ã³ãŒã ãžã§ãã® XML ã§å¶åŸ¡ãããŸãããã㪠ãªãŒããŒã¬ã€ã®å¶åŸ¡ã«ã¯æ¬¡ã®å±æ§ã䜿çšã§ããŸãã
- OverlayFileName â ãã㪠ãªãŒããŒã¬ã€ãå«ããã¡ã€ã«ã®ååãäžèšã®äŸã§ã¯ããã©ã³ã¹ã³ãŒãããå
¥åãããªãšå
¥åãããªã«ãªãŒããŒã¬ã€ãããã¡ã€ã«ã®äž¡æ¹ãå«ããåäžã®ã¿ã¹ã¯ãžã®å
¥åã¢ã»ããã䜿çšããŸãã
- OverlayRect â ãªãŒããŒã¬ã€ããé·æ¹åœ¢ã®å·Šäžã®é ç¹ã® X/Y 座æšãå¹
ãšé«ã (ãã¯ã»ã«åäœ)ããããã®å¯žæ³ã¯ãåºåãšã³ã³ãŒãèšå®ã§ã¯ãªãããªãŒããŒã¬ã€ãããã¢ã»ããã®å¯žæ³ãšçžå¯Ÿçãªãã®ã§ãã
- OverlayOpacity â ãã㪠ãªãŒããŒã¬ã€ã®éæåºŠãæå¹ãªå€ã¯ 0 ïœ 1 ã§ã0 ãæå®ãããšå®å
šã«éæã1 ãæå®ãããšå®å
šã«äžéæã«ãªããŸãã
- OverlayFadeInDuration â ãã㪠ãªãŒããŒã¬ã€ããã§ãŒãã€ã³ãããŸã§ã«ãããæéãæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ããå
¥åãããªã®ã¿ã€ã ã©ã€ã³ã«åãŸãããšã確èªããŠãã ããã
- OverlayFadeOutDuration â ãã㪠ãªãŒããŒã¬ã€ããã§ãŒãã¢ãŠããããŸã§ã«ãããæéãæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ãã
- OverlayLayoutMode â ãªãŒããŒã¬ã€ãã¿ã€ã ã©ã€ã³ã®å
šäœãéããŠè¡šç€ºããããã¿ã€ã ã©ã€ã³ã®ç¹å®ã®éšåã«ã®ã¿è¡šç€ºããããæå®ããŸããæå¹ãªå€ã¯æ¬¡ã®ãšããã§ãã
- WholeSequence â ãã㪠ã·ãŒã±ã³ã¹ã®å
šäœãéããŠãªãŒããŒã¬ã€ã衚瀺ããŸãã
- Custom â OverlayStartTime ããã³ OverlayEndTime 屿§ã§æå®ãããç¯å²ã§ãªãŒããŒã¬ã€ã衚瀺ããŸãã
- OverlayStartTime â ãã㪠ãªãŒããŒã¬ã€ãéå§ãããã㪠ã¿ã€ã ã©ã€ã³äžã®äœçœ®ãOverlayLayoutMode ã âCustomâ ã«èšå®ãããŠããå Žåã«ã®ã¿äœ¿çšãããŸããæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ããå
¥åãããªã®ã¿ã€ã ã©ã€ã³ã«åãŸãããšã確èªããŠãã ããã
- OverlayEndTime â ãã㪠ãªãŒããŒã¬ã€ãçµäºãããã㪠ã¿ã€ã ã©ã€ã³äžã®äœçœ®ãOverlayLayoutMode ã âCustomâ ã«èšå®ãããŠããå Žåã«ã®ã¿äœ¿çšãããŸããæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ããå
¥åãããªã®ã¿ã€ã ã©ã€ã³ã«åãŸãããšã確èªããŠãã ããã
- äŸãšããŠãAzure Media Services ã¢ã«ãŠã³ãã®ãã㪠ãã¡ã€ã«ã«ãã®ã·ã³ãã«ãªã¢ã€ã³ã³ããªãŒããŒã¬ã€ããŸãã
![]()
Media.png â ãã¡ãã®ããŒãžãããœãŒã¹ãããŠã³ããŒãããã®ããã«ã¯ããŸããã®ç»åããªãŒããŒã¬ã€ããããããªãšå
±ã« Media Services ã¢ã«ãŠã³ãã«ã¢ããããŒãããå¿
èŠããããŸãããããã¯ããã®ç»åãã¹ã¿ã³ãã¢ãã³ ã¢ã»ããã«ã¢ããããŒãããããšãã§ããŸããããã¯ãè€æ°ã®ãžã§ãã§åå©çšããå Žåã«äŸ¿å©ãªæ¹æ³ã§ãã
![]()
Azure Media Services.MP4 â ãã¡ãã®ããŒãžãããœãŒã¹ãããŠã³ããŒãã
äž¡æ¹ã®ãã¡ã€ã«ãåãã¢ã»ããã«ã¢ããããŒãããããæ¬¡ã«ãªãŒããŒã¬ã€ã®ã«ã¹ã¿ã ã®ãšã³ã³ãŒã ãžã§ããäœæããŸããããã§ã¯ãâH264 Broadbandâ MP4 ãšã³ã³ãŒã ã·ã¹ãã ããªã»ãããåºã«ãšã³ã³ãŒã XML ãäœæããŸãã
次ã®äŸã§ã¯ããã®ããªã»ããã® XML å
šäœã衚瀺ãã代ããã«ããã®ãªãŒããŒã¬ã€ ãžã§ããéä¿¡ããããã«ç·šéããã³å€æŽããå¿
èŠã®ããç®æã®ã¿ã衚瀺ããŠããŸãã
Âããã§ã¯ãããªã»ããã® <MediaFile> èŠçŽ ã«æ¬¡ã®å±æ§ã远å ããŠãéä¿¡ããããã« XML ãã¡ã€ã«ãä¿åããŸããã@OverlayFileName 屿§ã«ã¯ããããªãšå
±ã«ã¢ããããŒããã âMedia.pngâ ã®ç»åãæå®ããŠããŸãã
 <MediaFile
    ...
    OverlayFileName="Media.png"
    OverlayRect="200, 100, 40, 40"
    OverlayOpacity="0.9"
    OverlayFadeInDuration="00:00:02"
    OverlayFadeOutDuration="00:00:02"
    OverlayLayoutMode="Custom"
    OverlayStartTime="00:00:05"
    OverlayEndTime="00:00:20">
ããªã»ãã XML ã«äžèšã®ä¿®æ£ãå ããŠãžã§ããéä¿¡ãããšãäœæããããããªã§ã¯ãMedia Services ã®ããŽãéå§ 5 ç§ã®æç¹ã§ãã§ãŒãã€ã³ãã15 ç§éç»é¢ã«è¡šç€ºããã20 ç§ã®æç¹ã§ãã§ãŒãã¢ãŠãããŸãã
äžéæåºŠã¯ 90% ã«èšå®ãããŠããããããããªç»é¢ãéããŠèŠããŸãã@OverlayRect ã¯ç»åã®äœçœ®ãå¶åŸ¡ããŠããŸãã@OverlayRect ã«ã¯ããªãŒããŒã¬ã€ããé·æ¹åœ¢ã®å·Šäžã®é ç¹ã® X/Y 座æšããã®åŸã«å®æçã®ç»åã®å¹
ãšé«ãããã¯ã»ã«åäœã§æå®ããŠããŸãã
ãã®å€ã調æŽããå ŽåããªãŒããŒã¬ã€ããããããªã®å¯žæ³ã«åãŸãããšã確èªããŠãã ãããåãŸããªãå Žåããšã©ãŒ ã¡ãã»ãŒãžãè¿ãããŸããåæ§ã«ãStartTime ããã³ EndTime ã«äœ¿çšããæéããªãŒããŒã¬ã€ããããããªã®ã¿ã€ã ã©ã€ã³ã«åããå¿
èŠããããŸã (ãã®å±æ§ã§ã¯ããŒã»ã³ãæå®ã¯ãµããŒããããŠããŸãã)ã
ãã®ãµã³ãã«ããããªãšããŠæ§æããŠåçãããšã次ã®ããã«è¡šç€ºãããŸããåºåããããã㪠ãã¡ã€ã«ã¯ãã¡ãã®ããŒãžããããŠã³ããŒãããŠåçã§ããŸãã
![]()
ãã㪠ãªãŒããŒã¬ã€ã®ä»ã«ããªãŒãã£ãª ãªãŒããŒã¬ã€ããµããŒããããŠããŸãããªãŒãã£ãª ãªãŒããŒã¬ã€ã§ã¯ããµããŒããããŠããä»»æã®ãªãŒãã£ãª ãã¡ã€ã«åœ¢åŒã䜿çšããŠããããªã«ãã§ãŒãã€ã³ããã³ãã§ãŒãã¢ãŠããããããšãã§ããŸããããã¯ããã€ã¹ãªãŒããŒã鳿¥œã远å ããå Žåã«äŸ¿å©ã§ããäžèšã®äŸãšåæ§ã®æ¹æ³ã§ãMediaElement ã«æ¬¡ã®å±æ§ã䜿çšããããšã§ãªãŒãã£ãª ãªãŒããŒã¬ã€æ©èœãå¶åŸ¡ã§ããŸãããªãŒãã£ãª ãªãŒããŒã¬ã€ã®å¶åŸ¡ã«äœ¿çšã§ãã屿§ã¯æ¬¡ã®ãšããã§ãã
- ÂAudioOverlayFileName â ãªãŒããŒã¬ã€ãããªãŒãã£ãªãå«ããã¡ã€ã«ã®ååããžã§ãã®å
¥åã¢ã»ãããæå®ããããã«ã¯ãåå¥ã®ãã¡ã€ã«åã䜿çšããããšãã%n% 圢åŒã®ãŒãããŒã¹ ã€ã³ããã¯ã¹ã䜿çšããããšãã§ããŸãã
- ÂAudioOverlayLoop â ãªãŒãã£ãª ãªãŒããŒã¬ã€ãã«ãŒãããããã©ãããæå®ããŸããæå¹ãªå€ã¯ True ãŸã㯠False ã§ãã
- ÂAudioOVerlayLoopingGap â ãªãŒãã£ãª ãªãŒããŒã¬ã€ãçµäºããŠããå床éå§ãããŸã§ã®æéãæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ãã
- ÂAudioOverlayLayoutMode â ãšã³ã³ãŒããããã㪠ã¹ããªãŒã ã®ã©ã®éšåã§ãªãŒãã£ãª ãªãŒããŒã¬ã€ãåçãããã衚ããŸããæå¹ãªå€ã¯ âWholeSequenceâ ãŸã㯠âCustomâ ã§ããâWholeSequenceâ ãæå®ãããšã¹ããªãŒã ã®å
šäœãéããŠãªãŒãã£ãª ãªãŒããŒã¬ã€ãåçããŸããâCustomâ ãæå®ãããš AudioOverlayStartTime ããã³ AudioOverlayEndTime 屿§ã§æå®ãããç¯å²ã§ãªãŒãã£ãª ãªãŒããŒã¬ã€ãåçããŸãã
- ÂAudioOverlayStartTime â ãªãŒãã£ãª ãªãŒããŒã¬ã€ãéå§ãããã㪠ã¿ã€ã ã©ã€ã³äžã®äœçœ®ãæå¹ãªå€ã¯ hh:mm:ss:fff 圢åŒã®æéã§ããå
¥åãããªã®ã¿ã€ã ã©ã€ã³ã«åãŸãããšã確èªããŠãã ããã
- ÂAudioOverlayEndTime â ãªãŒããŒã¬ã€ãçµäºãããã㪠ã¿ã€ã ã©ã€ã³äžã®äœçœ®ãæå¹ãªå€ã¯ hh:mm:ss:fff ã§ããå
¥åãããªã®ã¿ã€ã ã©ã€ã³ã«åãŸãããšã確èªããŠãã ããã
- ÂAudoOverlayGainLevel â ãªãŒãã£ãª ãªãŒããŒã¬ã€ã®ã²ã€ã³ ã¬ãã«ãæå¹ãªå€ã¯ 1 ïœ 10 (0.1 åäœ) ã§ãã
- ÂAudioOverlayFadeInDuration â ãªãŒãã£ãª ãªãŒããŒã¬ã€ããã§ãŒãã€ã³ãããŸã§ã«ãããæéãæå¹ãªå€ã¯ hh:mm:ss:fff ã§ãã
- ÂAudioOverlayFadeOutDuration â ãªãŒãã£ãª ãªãŒããŒã¬ã€ããã§ãŒãã¢ãŠããããŸã§ã«ãããæéãæå¹ãªå€ã¯ hh:mm:ss:fff ã§ãã
ãªãŒãã£ãª ãªãŒããŒã¬ã€ã®ãã¡ã€ã«åã®èšå®æ¹æ³ã¯ããã㪠ãªãŒããŒã¬ã€ã®å Žåãšåæ§ã§ããåäžã®ã¢ã»ããã䜿çšããŠããã®ã¢ã»ããã«å«ãŸããç¹å®ã®ãªãŒãã£ãª ãã¡ã€ã«ãæå®ããããšãããšã³ã³ãŒã ãžã§ãã®ãœãŒã¹ãšããŠè€æ°ã®ã¢ã»ãããéä¿¡ããŠã%n% ããŒã¹ã®æ§æã§ãã¡ã€ã«åãèšå®ããããšãã§ããŸãã
API ã®è©³çްãšãªãŒããŒã¬ã€ãå«ããšã³ã³ãŒãçšã®ãžã§ãã®éä¿¡æ¹æ³ã«ã€ããŠã¯ãããªãŒããŒã¬ã€ã®äœæããã芧ãã ããã
ãããªã®ããªãã³ã°
ãããªï¿œï¿œï¿œãæ°ãã¯ã»ã«ãåãåã£ãã (ã¹ãã£ã³ããç·ã®é€å»)ãå¥ã®çç±ã§ãããªã®äžéšãæœåºãããããå¿
èŠãããå Žåãã«ã¹ã¿ã ããªã»ããã®åäžã®èšå®ã«ãã£ãŠç°¡åã«ãããå®è¡ããããšãã§ããŸãã
MediaElement ã® @CropRect 屿§ãèšå®ããããšã§ããããªãããªãã³ã°ã§ããŸãã
- ÂCropRect â å
¥åãããªã®ããªãã³ã°ã«äœ¿çšããé·æ¹åœ¢ãæå®ããŸããæå¹ãªå€ã¯ãããªãã³ã°ããé·æ¹åœ¢ã®å·Šäžã®é ç¹ã® X/Y 座æšãå¹
ãšé«ãã§ã (ãã¯ã»ã«åäœ)ããããã®åº§æšã¯å
¥åãããªã«é©çšãããããããã®é·æ¹åœ¢ãèšå®ããå Žåã«ã¯å
ã®ãããªã®å¯žæ³ãèæ
®ããå¿
èŠããããŸãã
![]()
ããšãã°ããããªãã 150 x 150 ãã¯ã»ã«ã®é·æ¹åœ¢ãããªãã³ã°ããå Žåã¯ã次ã®å±æ§ã®èšå®ã䜿çšããŸãã
  <MediaFile CropRect="0,0,150,150"/>
ããªãã³ã°ããé·æ¹åœ¢ã«åãããã«ã宿åŸã®ãšã³ã³ãŒãã®ãµã€ãºãé©åãªé«ããšå¹
ã«èšå®ããå¿
èŠããããŸããå€ãäžé©åãªå Žåããããªãå¥åŠã«å€åœ¢ããå¯èœæ§ããããŸã (ãã¡ããããã®å¹æãæå³ããã®ã§ããã°ããŸããŸãã)ã
ãããªã®ãµãã¯ãªãã
å€ãã®å Žé¢ã§ãæ¢åã®ãããªãŸãã¯ãªãŒãã£ãª ã¢ã»ããã®äžéšãã¯ãªããããã€ã©ã€ããšããŠåãåãå¿
èŠããããŸãããããå®è¡ããããã«ãAzure Media Encoder ã§ã¯ãµãã¯ãªããæ©èœããµããŒãããŠããŸãã
ã«ã¹ã¿ã ããªã»ããã« <Clips> èŠçŽ ãšã¯ãªããã®äžèЧã远å ããŠããããªããæœåºããåã¯ãªããã®éå§æéãšçµäºæéãèšå®ããŸãããã®çµæãè€æ°ã®ã¯ãªãããåæãããåºåã¢ã»ãããäœæãããŸãã
ããšãã°ãæ¢åã®ããªã»ããã® <MediaFile> èŠçŽ å
ã«æ¬¡ã®ã¹ããããã远å ããããšã§ããããªã®æåã® 30 ç§éãã¯ãªãããšããŠæœåºããããšãã§ããŸãããã㯠XML ã®æç²ã§ãããããã·ã¹ãã ããªã»ãããŸãã¯å®å
šãªã«ã¹ã¿ã ããªã»ããã®ããããã«çµã¿èŸŒãå¿
èŠãããããšã«æ³šæããŠãã ããã
   <Sources>
     <Source>
      <Clips>
       <Clip
         StartTime="00:04:00"
         EndTime="00:04:30" />
      </Clips>
    </Source>
    </Sources>
ãããªã®ãµãã¯ãªããã®æ¹æ³ã瀺ãããã«ããããªã®ã©ã®æç¹ããã¯ãªãããåãåã£ãããã¯ã£ãããšç¢ºèªã§ããæ¬¡ã®ã¿ã€ã ã³ãŒãä»ãã®ã¯ãªããã䜿çšããŸããã¯ãªãã㯠00:58:00;00 ã®æç¹ããéå§ãã1 æéã®è¡šç€ºãè¶
ããŠãçŽ 11 åéã«ãŠã³ããç¶ããŸãã
![]()
Timecode.wmvâ ãã®ã¯ãªããã¯ãã¡ãã®ãªã³ã¯ããããŠã³ããŒãã§ããŸãã
äžèšã®ã«ã¹ã¿ã ããªã»ããã§ã¯ã<Source>ã<Clips>ãåäžã® <Clip> èŠçŽ ã远å ããéå§æéãšçµäºæéããããã 00:04:00 ãš 00:04:30 ã«èšå®ããŠãããªãã 30 ç§éã®ã¯ãªãããåãåã£ãŠããŸããæœåºãããã¯ãªããã§ã¯ããããªã«åã蟌ãŸããã¿ã€ã ã³ãŒãã 1:00:02:00 ããéå§ãããã¯ãã§ãã
ãã®ã«ã¹ã¿ãã€ãºããããªã»ãããšå
±ã«ãšã³ã³ãŒã ãžã§ãã Azure Media Encoder ã«éä¿¡ãããšãã¢ã»ããã 30 ç§éã«ã¯ãªãããããŸããåºåã¢ã»ããã® MP4 ã¯ãã¡ãã®ããŒãžããããŠã³ããŒãã§ããŸãã
ãããªã®åæ
å Žåã«ãã£ãŠã¯ã2 ã€ä»¥äžã®ãããªãåæããŠé·ããããªãäœæããå¿
èŠããããŸããããã¯ãããŒã±ãã£ã³ã°çšãããªãäœæãããããããªã«åºå (ããã³ããŒã) ã远å ãããããå Žåã«è©²åœããŸãããŸãããã®æ©èœã䜿çšããŠè€æ°ã®çããããªãçµåã㊠1 ã€ã®é·ãã¯ãªãããäœæããããšãã§ããŸããåæãããããªã®éå§æéãšçµäºæéã倿Žããããããããç°ãªã Media Services ã¢ã«ãŠã³ãã®ã¢ã»ããã䜿çšãããã§ãããããæ¢åã®ã¢ã»ããããæ°ãããããªã«ãã³ããŒåºåãäºåç·šãªã©ãç°¡åã«è¿œå ã§ããŸãã
Azure Media Services ã§ãããªãåæããã«ã¯ãã«ã¹ã¿ã ããªã»ããã® <MediaFile> èŠçŽ å
ã« <Sources> èŠçŽ ãš <Source> èŠçŽ ã远å ããŸãããšã³ã³ãŒã ã¿ã¹ã¯ã®å
¥åã«ã¯ã¢ã»ããã®ã³ã¬ã¯ã·ã§ã³ãæå®ã§ããŸãã
2 ã€ã®ã¯ãªãããåæããç°¡åãªäŸã¯æ¬¡ã®ããã«ãªããŸãããã®äŸã§ã¯ã2 ã€ã® <Source> èŠçŽ ã䜿çšããŠããŸãã1 ã€ç®ã® <Source> 㯠1 ã€ç®ã®å
¥åã¢ã»ããã衚ããŠããŸãã2 ã€ç®ã® <Source> ã¯ã@MediaFile 屿§ã â%1%â ã«èšå®ããããšã§ã2 ã€ç®ã®å
¥åã¢ã»ãããšããŠèå¥ãããŸãããã®æ§æã«ãããå
¥åã¢ã»ããã®ãŒãããŒã¹ ã€ã³ããã¯ã¹ãã 2 ã€ç®ã®ãã¡ã€ã«ãååŸãããŸãã
  <MediaFile>
    <Sources>
     <Source
       AudioStreamIndex="0">
     </Source>
     <Source
       AudioStreamIndex="0"
       MediaFile="%1%">
     </Source>
    </Sources>
![]()
次ã«ã2 ã€ã®ç°ãªãå
¥åã¢ã»ããã 1 ã€ã®ã¯ãªããã«åæããããªã»ããã瀺ãããããé«åºŠãªäŸãã玹ä»ããŸãããã®ãµã³ãã«ã® XML ã§ã¯ã<Sources> èŠçŽ ã䜿çšããŠè€æ°ã®å
¥å <Source> ãã¡ã€ã«ãå®çŸ©ããæ¹æ³ãšããšã³ã³ãŒããŒã®ãµãã¯ãªããæ©èœã䜿çšããŠã<Clip> èŠçŽ ã«ãã£ãŠåæå
ã®åã¯ãªããã®éå§æéãšçµäºæéãèšå®ããæ¹æ³ã瀺ããŠããŸãã
ãŸããåãã¡ã€ã«ãåå¥ã®ã¢ã»ãããšããŠã¢ããããŒãããŸãããã®çµæããžã§ãã®å
¥åã®äžéšãšã㊠2 ã€ã®ã¢ã»ãããéä¿¡ããŠããã<Source> èŠçŽ ã® @MediaFile 屿§ã® %n% åœåèŠåã䜿çšããå
¥åã¢ã»ããé
åã®ã€ã³ããã¯ã¹ã«ãããåã¢ã»ãããåç
§ããããšãã§ããŸãã
ãŒãããŒã¹ã®ã€ã³ããã¯ã¹äœçœ®ã§ã¯ãå
¥åã¢ã»ããã« â%0%â ã䜿çšããããšã¯ã§ããŸããã1 ã€ç®ã®å
¥åã¢ã»ããã«ã¢ã¯ã»ã¹ããã«ã¯ã@MediaFile 屿§ãçç¥ããŸãã
ç¹°ãè¿ãã«ãªããŸãããäžèšã® XML ã¹ããããã¯éšåçãªãã®ã§ãããããå®å
šãªã«ã¹ã¿ã XML ããªã»ããã«çµã¿èŸŒãå¿
èŠãããããšã«æ³šæããŠãã ãããäžèšã®ãã«ã¹ã¿ã ããªã»ãããã®ã»ã¯ã·ã§ã³ã§ã玹ä»ããã·ã¹ãã ããªã»ããã®ãããããåºã«ããŠã倿Žãå ããããšããå§ãããŸãã
ãã®åæå
ã®ã¢ã»ããã¯ã次ã®ãªã³ã¯ããããŠã³ããŒãã§ããŸãã
XML ã¹ãããã (å®å
šãªããªã»ããã® XML ã«è¿œå ããŠãã ãã)
<MediaFile> âŠ
   <Sources>
     <Source
       AudioStreamIndex="0">
       <Clips>
         <Clip
           StartTime="00:00:30"
           EndTime="00:00:41" />
       </Clips>
     </Source>
     <Source
       AudioStreamIndex="0"
       MediaFile="%1%">
       <Clips>
         <Clip
           StartTime="00:00:00"
           EndTime="00:00:10" />
       </Clips>
     </Source>
     <Source
       AudioStreamIndex="0">
       <Clips>
         <Clip
           StartTime="00:2:50"
           EndTime="00:02:58" />
       </Clips>
     </Source>
    </Sources>
</MediaFile>
ãžã§ããéä¿¡ãããšã宿ãããšã³ã³ãŒãæžã¿ã®ã¢ã»ããã§ã¯ããããªã® 3 ã€ã®ã»ã¯ã·ã§ã³ãçµåãã㊠1 ã€ã®ã¢ã»ãããšãªããŸãããã®ãžã§ãã®åºåã確èªããã«ã¯ããã¡ãã®ããŒãžãã宿ãã MP4 ãããŠã³ããŒãããŠãã ããã
API ã®äœ¿ç𿹿³ã®è©³çްã«ã€ããŠã¯ãããããªã®ã»ã°ã¡ã³ãã®çµåããã芧ãã ããã
åºåãã¡ã€ã«åã®ã«ã¹ã¿ãã€ãº
å€ãã®å Žåãåºåãã¡ã€ã«åã詳现ã«å¶åŸ¡ããå¿
èŠããããŸããAzure Media Encoder ã§ã¯ãåºåãã¡ã€ã«åãå¶åŸ¡ã§ããäžé£ã®ãã¯ããšåœåèŠåãæäŸãããŠããŸãã<Preset> èŠçŽ ã« @DefaultMediaOutputFileName 屿§ãèšå®ããããšã§ãã«ã¹ã¿ãã€ãºããåœåãã³ãã¬ãŒããæå®ã§ããŸãã
ããšãã°ã次ã®ã«ã¹ã¿ã ããªã»ããã§ã¯ããã¯ããšã«ã¹ã¿ã ã®åœåèšå®ãçµã¿åãããŠåœåãã³ãã¬ãŒããå¶åŸ¡ããæ¹æ³ã瀺ããŠããŸãã
<Preset Version="5.0" DefaultMediaOutputFileName="{Original File Name}{Video Codec}{Video Bitrate}{Audio Codec}{Audio Bitrate}.{Default Extension}">
<MediaFile âŠ>
è€æ°ã®ãã¯ãã远å ããå Žåãåãã¯ãã®éã«ã¢ã³ããŒã¹ã³ã¢ãæ¿å
¥ãããŸããããšãã°ãäžèšã®æ§æã§ã¯ãMyVideo_H264_4500kpbs_AAC_128kbps.mp4 ã®ãããªãã¡ã€ã«åãçæãããŸãã
ãµããŒããããŠãããã¯ãã¯æ¬¡ã®ãšããã§ãã
- {Original File Name}
- {Audio Bitrate}
- {Audio Codec}
- {Channel Count}
- {Default Extension}
- {Language}
- {StreamId}
- {Video Codec}
- {Video Bitrate}
API ã®è©³çްã«ã€ããŠã¯ããMedia Service Encoder ã®åºåãã¡ã€ã«åã®å¶åŸ¡ (è±èª)ããã芧ãã ããã
é³å£°ãå«ããªãŒãã£ãª ãã¡ã€ã«
äž»ã«é³å£°ãå«ã (鳿¥œã广é³ãã»ãšãã©äœ¿çšãããŠããªã) ã³ã³ãã³ãããšã³ã³ãŒãããå Žåãæ¢å®ã®ãšã³ã³ãŒã㌠ããªã»ããã§ã¯åšå²ã®éé³ãå¢å¹
ãããŠããªãŒãã£ãª ãã©ãã¯ã«äžå¿«ãªé³ãšããŠæ®ãå ŽåããããŸãã
ãã®æãŸãããªãå¯äœçšãé²ãããã«ã¯ãããªã»ããã®ããŸãç¥ãããŠããªãèšå®ãç¡å¹ã«ããå¿
èŠããããŸãããã®èšå®ã¯ãããªã»ããã® <MediaFile> èŠçŽ ã® @NormalizeAudio 屿§ã§ãã
æ¢åã®ã·ã¹ãã ããªã»ããã®ãããããã³ããŒãã@NormalizeAudio 屿§ãåé€ããããæ¬¡ã®ãµã³ãã« XML ã¹ããããã®ããã« False ãæå®ããŠããã®èšå®ã調æŽããŸã (ãããã®å€æŽäŸã¯å®å
šãª XML ããªã»ããã«è¿œå ããå¿
èŠããããŸã)ã
<MediaFile
    DeinterlaceMode="AutoPixelAdaptive"
    ResizeQuality="Super"
    NormalizeAudio="False"
    AudioGainLevel="1"
    VideoResizeMode="Stretch">
é³å£°ã®ã¿ãå«ããªãŒãã£ãª ãã¡ã€ã«ãåŠçããAPI ã䜿çšããŠãžã§ããéä¿¡ããæ¹æ³ã®è©³çްã«ã€ããŠã¯ããã»ãšãã©ã話ã声ã§ãããã¬ãŒã³ããŒã·ã§ã³ã®ãšã³ã³ãŒãããã芧ãã ããã
MP4 ãã¡ã€ã«ã®ãã£ãã·ã§ã³ã®ä¿æ
ãšã³ã³ãŒãå
ã® MP4 ãã¡ã€ã«ã®åºæ¬ã¹ããªãŒã å
ã§ãH264 ã§ãšã³ã³ãŒããããã¹ããªãŒã ã® SEI ã¡ãã»ãŒãžã« EIA-608 ããã³ 708 ããŒã¿ãšããŠãã£ãã·ã§ã³ãåã蟌ãŸããŠããå Žåããããã®ãã£ãã·ã§ã³ãä¿æããŠæ°ãããšã³ã³ãŒããããåºåãã¡ã€ã«ã«æž¡ãããšãã§ããŸãã
ãããå®è¡ããããã«ãããªã»ããã® <MediaFile> èŠçŽ ã® @ClosedCaptionSEIPassThrough 屿§ã®èšå®ãçšæãããŠããŸãããã®å±æ§ã âTrueâ ã«èšå®ããããšã§ããã£ãã·ã§ã³ãä¿æããŠåºåãã¡ã€ã«ã«æž¡ãããšãã§ããŸãã
ããã¯ãã¯ã©ã€ã¢ã³ãã§ CEA-608 ãã£ãã·ã§ã³ ããŒã¿ã®ãã€ãã£ã ãã³ãŒãããµããŒããã iOS ãªã©ã® HLS ãããã³ã« ããã€ã¹ã«ãã£ãã·ã§ã³ãé
ä¿¡ããå Žåã«éåžžã«äŸ¿å©ã§ãã
<MediaFile
     WindowsMediaProfileLanguage="en-US"
     VideoResizeMode="Letterbox"
     ClosedCaptionsSEIPassThrough="True">
çŸæç¹ã§ã¯ããã®æ©èœã¯ MP4 ãã¡ã€ã«åœ¢åŒã®ãœãŒã¹ ãã¡ã€ã«ã®ã¿ããµããŒãããŠããããœãŒã¹åºæ¬ã¹ããªãŒã 㯠H264 ã§ãšã³ã³ãŒããããŠããŸãããŸãããã®ãšã³ã³ãŒã ã¿ã¹ã¯ã§ã¯ããµãã¯ãªããã 2 ã€ä»¥äžã®ãããªã®åæãå®è¡ããªãã§ãã ããã
ãŸãšã
ä»åã玹ä»ããã®ã¯ãAzure Media Encoder ã®ã客æ§ã®ããã«åãçµãã§ããç»æçãªé«æ©èœã®ããäžéšã§ãããããŸã§åœ±ã«é ããŠããæ©èœãããã€ãã玹ä»ã§ããã客æ§èªèº«ã®ã¡ãã£ã¢ ã¢ããªã±ãŒã·ã§ã³ãã¯ãŒã¯ãããŒã§åªããã·ããªãªãå®çŸããããã§ã圹ç«ãŠããã ããããã§ããã°å¹žãã§ãã
ãšã³ã³ãŒããç¶ããäžã§ææçŸ©ãªãæèŠãæ©èœã«é¢ãããèŠæãåºãŠããŸããããMSDN ã® Azure Media Servicesãã©ãŒã©ã ã§ãã²ãç¥ãããã ããã