<?xml version="1.0" encoding="utf-8"?>
<HmsTranscodingConfig version="2.19">
  <TranscoderList>
    <Transcoder>
      <Name>HDSDUMP</Name>
      <Path>Transcoders\hdsdump.exe</Path>
      <HomePage>https://github.com/WendyH/HDSDump_HMS</HomePage>
      <Download>https://github.com/WendyH/HDSDump_HMS/releases/latest</Download>
    </Transcoder>
  </TranscoderList>
  <TranscodingProfileList>
    <Profile>
      <TranscoderName>HDSDUMP</TranscoderName>
      <TranscodingCondition></TranscodingCondition>
      <TranscodingConditionSyntaxType>PascalScript</TranscodingConditionSyntaxType>
      <TranscodingComment>Профиль транскодирования для ссылок на манифесты F4M (формат HDS). (By WendyH)</TranscodingComment>
      <TranscodingFolder>Транскодирование с перекодированием видео</TranscodingFolder>
      <TranscodingMediaType>3</TranscodingMediaType>
      <TranscodingMimeType></TranscodingMimeType>
      <TranscodingMimeTypeScript>var
  i: Integer;
  sFileExt: string;
begin
  if mpFileType &lt;&gt; &apos;&apos; then begin
    if SameText(mpFileType, &apos;mpegts&apos;) then  
      sFileExt := &apos;ts&apos;    
    else if SameText(mpFileType, &apos;mpeg&apos;) then
      sFileExt := &apos;mpg&apos;      
    else if MatchText(mpFileType, [&apos;matroska&apos;, &apos;matroska,webm&apos;]) then
      sFileExt := &apos;mkv&apos;
    else if SameText(mpFileType, &apos;asf&apos;) then  
      sFileExt := &apos;wmv&apos;    
    else begin  
      i := Pos(&apos;,&apos;, mpFileType);    
      if i &gt; 0 then    
        sFileExt := Copy(mpFileType, 1, i - 1)      
      else              
        sFileExt := mpFileType      
    end;    
    MimeType := HmsGetMimeType(sFileExt)
  end                                   
end.</TranscodingMimeTypeScript>
      <TranscodingMimeTypeSyntaxType>PascalScript</TranscodingMimeTypeSyntaxType>
      <TranscodingMode>1</TranscodingMode>
      <TranscodingParams>///////////////////////////////////////////////////////////////////////////////
//                     Г Л А В Н А Я   П Р О Ц Е Д У Р А                     //
{
  string sReadPipeName, sWritePipeName, sLink, sTranscoderParams, sQual;
  TranscodingResult = false;

  // Создаём именованные PIPE-каналы для чтения и записи потока
  // (для передачи потока между двумя программами транскодерами).
  if (!HmsCreateDualPipe(sReadPipeName, sWritePipeName)) { 
    HmsLogMessage(2, "Невозможно создать PIPE каналы для чтения/записи."); 
    return; 
  }

  // Если есть скрипт получения ссылки на ресурс - пытаемся получить его результат
  HmsRetrieveProperties();
  sLink = HmsGetItemProperty(mpiMediaResourceLink);
  // Если нет - просто берём ссылку на файл
  if (Trim(sLink)=="") sLink = mpFilePath;

  // Формируем параметры для hdsdump.exe
  sTranscoderParams = Format(&apos;--manifest "%s" --threads 2 --outfile "%s" &apos;, [Trim(sLink), sWritePipeName])+Trim(HmsGetItemProperty(mpiTranscodingParams));
  if (mpTimeStart!="") sTranscoderParams += &apos; --skip &apos; + mpTimeStart;
  
  // Если параметрах транскодирования уже не указаны ключи качества -q или --quality
  // и они указаны в дополнительных параметрах - добавляем к параметрам hdsdump.exe.
  if (!HmsRegExMatch(&apos;(-q|--quality) &apos;, sTranscoderParams, &apos;&apos;) &amp;&amp; 
      HmsRegExMatch(&apos;--quality=(\\w+)&apos;, mpPodcastParameters, sQual)) 
    sTranscoderParams += &apos; --quality &apos; + sQual; // Возможны значения high|medium|low
  
  // Запускаем получение потока через hdsdump.exe и запускаем также транcкодирование
  // полученного потока в формате flv в формат, получающийся при использовании 
  // профиля "Фильмы (основной)" с помощью hmsmpeg.exe.
  if (HmsTranscodingExecute(&apos;HDSDUMP&apos;, sTranscoderParams, False)) {
    sTranscoderParams = HmsTranscodingProfileParams(&apos;Фильмы (основной)&apos;);
    sTranscoderParams = ReplaceStr(sTranscoderParams, &apos;&lt;INPUT FILE&gt;&apos;, sReadPipeName) + &apos; "&apos; + OutputFileName + &apos;"&apos;;
    TranscodingResult = HmsTranscodingExecute(&apos;HMSMPEG&apos;, sTranscoderParams);
  }
}
</TranscodingParams>
      <TranscodingParamsSyntaxType>C++Script</TranscodingParamsSyntaxType>
      <TranscodingProfile>Фильмы - HDS (Транскодирование)</TranscodingProfile>
      <TranscodingProfileActive>-1</TranscodingProfileActive>
      <TranscodingProfilePriority>47</TranscodingProfilePriority>
      <TranscodingProfileUuid>da38cfed-0c55-4c6f-ada9-b1e43c6c3685</TranscodingProfileUuid>
    </Profile>
  </TranscodingProfileList>
</HmsTranscodingConfig>
