4.3.6. TemplateUpload

Описание

Метод позволяет импортировать шаблон в формате JSON на сервер. Шаблон включает набор тестов, где тест — это правило, по которому зонд проверяет медиафайл. Каждый тест включает уровень критичности, условие соответствия и пороговые значения, а также отвечает за анализ конкретного параметра или поиск ошибки.

Запрос

{
  "user_id":(number),
  "methods":[
    {
      "method":"TemplateUpload",
      "params":{
        "project_id":(number),
        "name"(string),
        "data":{}
      }
    }
  ]
}

где:

  • user_id — целое число, идентификатор пользователя;

  • project_id — целое число, идентификатор проекта пользователя;

  • name — строка, имя шаблона;

  • data — объект, содержащий структуру шаблона в формате JSON. Объект содержит перечень тестов, а также настройки для каждого теста: пороговые значения и уровень критичности.

Внимание

В процессе импорта шаблона выполняется валидация структуры JSON. При отсутствии ошибок система сохраняет шаблон. В противном случае в левом верхнем углу экрана отображается лог с описанием ошибок. Валидация включает:

  • проверку синтаксиса и форматирования структуры JSON;

  • проверку наличия пороговых значений для включенных тестов. Наличие включенного теста без порогового значения не допускается;

  • перекрестную проверку между количеством видео- и аудиодорожек, а также пороговыми значениями для групп тестов Видео (Общие параметры, Особые параметры для AVC/H.264, Особые параметры для HEVC/H.265) и Аудио (Параметры аудио);

  • проверку соответствия размерности введенных пороговых значений требованиям каждого теста, так как допустимые единицы у разных тестов отличаются. При ручном редактировании пороговых значений обратитесь к описанию конкретных тестов в главе Список тестов.

Ответ

{
  "reply":[
    {
      "method": "TemplateUpload",
      "result":{
        "template_id":(number),
        "name":(string)
      }
    }
  ]
}

где:

  • template_id — целое число, идентификатор шаблона;

  • name — строка, имя шаблона.

Пример

Запрос утилитой cURL
#1. Запрос импорта шаблона на сервер.
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TemplateUpload","params":{"project_id":2,"name":"TestTemplateUploadAPI","data":{"general":{"thumbnail":{"enable":false,"defaultPeriod":10,"freezePeriod":10,"jpegQuality":70},"audioTracksNumber":{"value":1},"videoTracksNumber":{"value":1}},"priority1":{"fileSize":{"enable":false,"severity":2,"min":0},"containerFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["MP4"]},"fileExtension":{"enable":true,"severity":2,"value":["mp4","mov"]},"videoFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AVC/H.264"]},"audioFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AAC"]},"TracksNumber":{"enable":true,"severity":3},"AVStartTimestamp":{"enable":false,"severity":2,"value":"00:00:00.000"},"AVStopTimestamp":{"enable":false,"severity":3,"value":""},"videoAudioDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"audioDuration":{"enable":false,"severity":3,"min":"","max":""},"videoDuration":{"enable":false,"severity":3,"min":"","max":""}},"priority2":{"checkMandatoryMP4Boxes":{"enable":true,"severity":4},"mvhdTimescale":{"enable":true,"severity":4},"AVMetadataInconsistency":{"enable":true,"severity":3},"audioTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"videoTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"mvhdFileDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"videoMetadataInconsistency":{"enable":false},"audioMetadataInconsistency":{"enable":false}},"priority3":{"videoResolution":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1920x1080"]}]},"videoProfileLevel":{"enable":true,"severity":3,"tracks":[{"id":1,"MPEG-1":{"profile":"Main","level":"Main"},"MPEG-2":{"profile":"Main","level":"Main"},"AVC/H.264":{"profile":"High (100)","level":"4"},"HEVC/H.265":{"profile":"Main (1)","level":"4.1"}}]},"chromaSubsampling":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["4:2:0"]}]},"videoBitDepth":{"enable":true,"severity":3,"tracks":[{"id":1,"lumaBitDepth":[8],"chromaBitDepth":[8]}]},"entropyCoding":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["CABAC"]}]},"scanType":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["Progressive"]}]},"scanOrder":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["TFF"]}]},"displayAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["16:9"]}]},"colorimetricDescription":{"enable":false,"severity":3,"tracks":[]},"sampleAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1:1"]}]},"afdCodes":{"enable":false,"severity":3,"tracks":[]},"frameRate":{"enable":true,"severity":3,"tracks":[{"id":1,"value":[25.0]}]},"averageBitRate":{"enable":false,"severity":3,"tracks":[]},"activeFrameRate":{"enable":false,"severity":3,"tracks":[{"id":1,"threshold":0}],"threshold":0},"bitRateType":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["VBR"]}]},"gopLength":{"enable":false,"severity":3,"tracks":[]},"gopStructure":{"enable":false,"severity":3,"tracks":[{"id":1,"m":0,"n":0}]},"closedGOP":{"enable":false,"severity":3,"tracks":[]},"referenceFrames":{"enable":false,"severity":3,"tracks":[{"id":1,"value":3}]},"hdrFormat":{"enable":false,"severity":3,"tracks":[]},"hdrMetadata":{"enable":false,"severity":3,"tracks":[{"id":1,"displayPrimaries[0]":"0.170; 0.797","displayPrimaries[1]":"0.131; 0.046","displayPrimaries[2]":"0.708; 0.292","whitePoint":"0.3127; 0.329","maxDisplayMasteringLuminance":1000,"minDisplayMasteringLuminance":0.005,"maxCLL":1000,"maxFALL":400}]},"videoResolutionChange":{"enable":true,"severity":3},"videoProfileLevelChange":{"enable":true,"severity":3},"chromaSubsamplingChange":{"enable":true,"severity":3},"videoBitDepthChange":{"enable":true,"severity":3},"entropyCodingChange":{"enable":true,"severity":3},"scanTypeChange":{"enable":true,"severity":3},"scanOrderChange":{"enable":false,"severity":3},"colorimetricDescriptionChange":{"enable":false,"severity":3},"displayAspectRatioChange":{"enable":true,"severity":3},"sampleAspectRatioChange":{"enable":true,"severity":3},"afdCodesChange":{"enable":false,"severity":3},"frameRateChange":{"enable":true,"severity":3},"referenceFramesChange":{"enable":false,"severity":3},"hdrMetadataChange":{"enable":false,"severity":3},"lumaBitDepthChange":{"enable":true,"severity":3},"chromaBitDepthChange":{"enable":true,"severity":3}},"priority4":{"audioSampleRate":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[48000]}]},"audioBitDepth":{"enable":false,"severity":3,"tracks":[]},"audioChannelsNumber":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[2]}]},"audioProfile":{"enable":true,"severity":3,"tracks":[{"id":2,"value":["LC"]}]},"audioLanguage":{"enable":false,"severity":3,"tracks":[]},"audioLayer":{"enable":false,"severity":3,"tracks":[{"id":2,"value":[3]}]}},"priority5":{"videoFreeze":{"enable":true,"severity":3,"interval":1000,"threshold":0,"psnrThreshold":42,"forceCheck":0,"timeFromStart":0,"timeFromEnd":0},"videoBlack":{"enable":true,"severity":3,"luminance":16,"threshold":95,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMono":{"enable":true,"severity":3,"threshold":90,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMattress":{"enable":true,"severity":3,"thresholdI":40,"thresholdII":10,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoDecodability":{"enable":true,"severity":3,"mode":"full","threshold":100}},"priority6":{"audioSilence":{"enable":true,"severity":3,"threshold":-70.0,"timeFromStart":0,"timeFromEnd":0},"audioDecodability":{"enable":true,"severity":3,"threshold":100},"momentaryLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"shortTermLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"loudnessRange":{"enable":true,"severity":3,"min":0.0,"max":6.0},"truePeakDetection":{"enable":true,"severity":3,"level":-1.0},"programmeLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0}}}}}]}'

#2. Запрос импорта шаблона на сервер c ошибкой. В тесте *videoResolution* не указано пороговое значение
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TemplateUpload","params":{"project_id":2,"name":"TestTemplateUploadAPI","data":{"general":{"thumbnail":{"enable":false,"defaultPeriod":10,"freezePeriod":10,"jpegQuality":70},"audioTracksNumber":{"value":1},"videoTracksNumber":{"value":1}},"priority1":{"fileSize":{"enable":false,"severity":2,"min":0},"containerFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["MP4"]},"fileExtension":{"enable":true,"severity":2,"value":["mp4","mov"]},"videoFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AVC/H.264"]},"audioFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AAC"]},"TracksNumber":{"enable":true,"severity":3},"AVStartTimestamp":{"enable":false,"severity":2,"value":"00:00:00.000"},"AVStopTimestamp":{"enable":false,"severity":3,"value":""},"videoAudioDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"audioDuration":{"enable":false,"severity":3,"min":"","max":""},"videoDuration":{"enable":false,"severity":3,"min":"","max":""}},"priority2":{"checkMandatoryMP4Boxes":{"enable":true,"severity":4},"mvhdTimescale":{"enable":true,"severity":4},"AVMetadataInconsistency":{"enable":true,"severity":3},"audioTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"videoTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"mvhdFileDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"videoMetadataInconsistency":{"enable":false},"audioMetadataInconsistency":{"enable":false}},"priority3":{"videoResolution":{"enable":true,"severity":3,"tracks":[{"id":1}]},"videoProfileLevel":{"enable":true,"severity":3,"tracks":[{"id":1,"MPEG-1":{"profile":"Main","level":"Main"},"MPEG-2":{"profile":"Main","level":"Main"},"AVC/H.264":{"profile":"High (100)","level":"4"},"HEVC/H.265":{"profile":"Main (1)","level":"4.1"}}]},"chromaSubsampling":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["4:2:0"]}]},"videoBitDepth":{"enable":true,"severity":3,"tracks":[{"id":1,"lumaBitDepth":[8],"chromaBitDepth":[8]}]},"entropyCoding":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["CABAC"]}]},"scanType":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["Progressive"]}]},"scanOrder":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["TFF"]}]},"displayAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["16:9"]}]},"colorimetricDescription":{"enable":false,"severity":3,"tracks":[]},"sampleAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1:1"]}]},"afdCodes":{"enable":false,"severity":3,"tracks":[]},"frameRate":{"enable":true,"severity":3,"tracks":[{"id":1,"value":[25.0]}]},"averageBitRate":{"enable":false,"severity":3,"tracks":[]},"activeFrameRate":{"enable":false,"severity":3,"tracks":[{"id":1,"threshold":0}],"threshold":0},"bitRateType":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["VBR"]}]},"gopLength":{"enable":false,"severity":3,"tracks":[]},"gopStructure":{"enable":false,"severity":3,"tracks":[{"id":1,"m":0,"n":0}]},"closedGOP":{"enable":false,"severity":3,"tracks":[]},"referenceFrames":{"enable":false,"severity":3,"tracks":[{"id":1,"value":3}]},"hdrFormat":{"enable":false,"severity":3,"tracks":[]},"hdrMetadata":{"enable":false,"severity":3,"tracks":[{"id":1,"displayPrimaries[0]":"0.170; 0.797","displayPrimaries[1]":"0.131; 0.046","displayPrimaries[2]":"0.708; 0.292","whitePoint":"0.3127; 0.329","maxDisplayMasteringLuminance":1000,"minDisplayMasteringLuminance":0.005,"maxCLL":1000,"maxFALL":400}]},"videoResolutionChange":{"enable":true,"severity":3},"videoProfileLevelChange":{"enable":true,"severity":3},"chromaSubsamplingChange":{"enable":true,"severity":3},"videoBitDepthChange":{"enable":true,"severity":3},"entropyCodingChange":{"enable":true,"severity":3},"scanTypeChange":{"enable":true,"severity":3},"scanOrderChange":{"enable":false,"severity":3},"colorimetricDescriptionChange":{"enable":false,"severity":3},"displayAspectRatioChange":{"enable":true,"severity":3},"sampleAspectRatioChange":{"enable":true,"severity":3},"afdCodesChange":{"enable":false,"severity":3},"frameRateChange":{"enable":true,"severity":3},"referenceFramesChange":{"enable":false,"severity":3},"hdrMetadataChange":{"enable":false,"severity":3},"lumaBitDepthChange":{"enable":true,"severity":3},"chromaBitDepthChange":{"enable":true,"severity":3}},"priority4":{"audioSampleRate":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[48000]}]},"audioBitDepth":{"enable":false,"severity":3,"tracks":[]},"audioChannelsNumber":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[2]}]},"audioProfile":{"enable":true,"severity":3,"tracks":[{"id":2,"value":["LC"]}]},"audioLanguage":{"enable":false,"severity":3,"tracks":[]},"audioLayer":{"enable":false,"severity":3,"tracks":[{"id":2,"value":[3]}]}},"priority5":{"videoFreeze":{"enable":true,"severity":3,"interval":1000,"threshold":0,"psnrThreshold":42,"forceCheck":0,"timeFromStart":0,"timeFromEnd":0},"videoBlack":{"enable":true,"severity":3,"luminance":16,"threshold":95,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMono":{"enable":true,"severity":3,"threshold":90,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMattress":{"enable":true,"severity":3,"thresholdI":40,"thresholdII":10,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoDecodability":{"enable":true,"severity":3,"mode":"full","threshold":100}},"priority6":{"audioSilence":{"enable":true,"severity":3,"threshold":-70.0,"timeFromStart":0,"timeFromEnd":0},"audioDecodability":{"enable":true,"severity":3,"threshold":100},"momentaryLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"shortTermLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"loudnessRange":{"enable":true,"severity":3,"min":0.0,"max":6.0},"truePeakDetection":{"enable":true,"severity":3,"level":-1.0},"programmeLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0}}}}}]}'

#3. Запрос импорта шаблона на сервер c ошибкой. В тесте *videoResolution* не указан значение *tracks* и отсутствует пороговое значение
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TemplateUpload","params":{"project_id":2,"name":"TestTemplateUploadAPI","data":{"general":{"thumbnail":{"enable":false,"defaultPeriod":10,"freezePeriod":10,"jpegQuality":70},"audioTracksNumber":{"value":1},"videoTracksNumber":{"value":1}},"priority1":{"fileSize":{"enable":false,"severity":2,"min":0},"containerFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["MP4"]},"fileExtension":{"enable":true,"severity":2,"value":["mp4","mov"]},"videoFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AVC/H.264"]},"audioFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AAC"]},"TracksNumber":{"enable":true,"severity":3},"AVStartTimestamp":{"enable":false,"severity":2,"value":"00:00:00.000"},"AVStopTimestamp":{"enable":false,"severity":3,"value":""},"videoAudioDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"audioDuration":{"enable":false,"severity":3,"min":"","max":""},"videoDuration":{"enable":false,"severity":3,"min":"","max":""}},"priority2":{"checkMandatoryMP4Boxes":{"enable":true,"severity":4},"mvhdTimescale":{"enable":true,"severity":4},"AVMetadataInconsistency":{"enable":true,"severity":3},"audioTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"videoTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"mvhdFileDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"videoMetadataInconsistency":{"enable":false},"audioMetadataInconsistency":{"enable":false}},"priority3":{"videoResolution":{"enable":true,"severity":3,"tracks":[]},"videoProfileLevel":{"enable":true,"severity":3,"tracks":[{"id":1,"MPEG-1":{"profile":"Main","level":"Main"},"MPEG-2":{"profile":"Main","level":"Main"},"AVC/H.264":{"profile":"High (100)","level":"4"},"HEVC/H.265":{"profile":"Main (1)","level":"4.1"}}]},"chromaSubsampling":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["4:2:0"]}]},"videoBitDepth":{"enable":true,"severity":3,"tracks":[{"id":1,"lumaBitDepth":[8],"chromaBitDepth":[8]}]},"entropyCoding":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["CABAC"]}]},"scanType":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["Progressive"]}]},"scanOrder":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["TFF"]}]},"displayAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["16:9"]}]},"colorimetricDescription":{"enable":false,"severity":3,"tracks":[]},"sampleAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1:1"]}]},"afdCodes":{"enable":false,"severity":3,"tracks":[]},"frameRate":{"enable":true,"severity":3,"tracks":[{"id":1,"value":[25.0]}]},"averageBitRate":{"enable":false,"severity":3,"tracks":[]},"activeFrameRate":{"enable":false,"severity":3,"tracks":[{"id":1,"threshold":0}],"threshold":0},"bitRateType":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["VBR"]}]},"gopLength":{"enable":false,"severity":3,"tracks":[]},"gopStructure":{"enable":false,"severity":3,"tracks":[{"id":1,"m":0,"n":0}]},"closedGOP":{"enable":false,"severity":3,"tracks":[]},"referenceFrames":{"enable":false,"severity":3,"tracks":[{"id":1,"value":3}]},"hdrFormat":{"enable":false,"severity":3,"tracks":[]},"hdrMetadata":{"enable":false,"severity":3,"tracks":[{"id":1,"displayPrimaries[0]":"0.170; 0.797","displayPrimaries[1]":"0.131; 0.046","displayPrimaries[2]":"0.708; 0.292","whitePoint":"0.3127; 0.329","maxDisplayMasteringLuminance":1000,"minDisplayMasteringLuminance":0.005,"maxCLL":1000,"maxFALL":400}]},"videoResolutionChange":{"enable":true,"severity":3},"videoProfileLevelChange":{"enable":true,"severity":3},"chromaSubsamplingChange":{"enable":true,"severity":3},"videoBitDepthChange":{"enable":true,"severity":3},"entropyCodingChange":{"enable":true,"severity":3},"scanTypeChange":{"enable":true,"severity":3},"scanOrderChange":{"enable":false,"severity":3},"colorimetricDescriptionChange":{"enable":false,"severity":3},"displayAspectRatioChange":{"enable":true,"severity":3},"sampleAspectRatioChange":{"enable":true,"severity":3},"afdCodesChange":{"enable":false,"severity":3},"frameRateChange":{"enable":true,"severity":3},"referenceFramesChange":{"enable":false,"severity":3},"hdrMetadataChange":{"enable":false,"severity":3},"lumaBitDepthChange":{"enable":true,"severity":3},"chromaBitDepthChange":{"enable":true,"severity":3}},"priority4":{"audioSampleRate":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[48000]}]},"audioBitDepth":{"enable":false,"severity":3,"tracks":[]},"audioChannelsNumber":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[2]}]},"audioProfile":{"enable":true,"severity":3,"tracks":[{"id":2,"value":["LC"]}]},"audioLanguage":{"enable":false,"severity":3,"tracks":[]},"audioLayer":{"enable":false,"severity":3,"tracks":[{"id":2,"value":[3]}]}},"priority5":{"videoFreeze":{"enable":true,"severity":3,"interval":1000,"threshold":0,"psnrThreshold":42,"forceCheck":0,"timeFromStart":0,"timeFromEnd":0},"videoBlack":{"enable":true,"severity":3,"luminance":16,"threshold":95,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMono":{"enable":true,"severity":3,"threshold":90,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMattress":{"enable":true,"severity":3,"thresholdI":40,"thresholdII":10,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoDecodability":{"enable":true,"severity":3,"mode":"full","threshold":100}},"priority6":{"audioSilence":{"enable":true,"severity":3,"threshold":-70.0,"timeFromStart":0,"timeFromEnd":0},"audioDecodability":{"enable":true,"severity":3,"threshold":100},"momentaryLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"shortTermLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"loudnessRange":{"enable":true,"severity":3,"min":0.0,"max":6.0},"truePeakDetection":{"enable":true,"severity":3,"level":-1.0},"programmeLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0}}}}}]}'

#4. Запрос импорта шаблона на сервер c ошибкой. Неверная размерность значения для ключа *defaultPeriod*
curl http://172.16.1.41/ctrl_api/v1/json \
 -H "Content-Type: application/json" \
 --data '{"user_id":1,"methods":[{"method":"TemplateUpload","params":{"project_id":2,"name":"TestTemplateUploadAPI","data":{"general":{"thumbnail":{"enable":false,"defaultPeriod":"wrong_value","freezePeriod":10,"jpegQuality":70},"audioTracksNumber":{"value":1},"videoTracksNumber":{"value":1}},"priority1":{"fileSize":{"enable":false,"severity":2,"min":0},"containerFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["MP4"]},"fileExtension":{"enable":true,"severity":2,"value":["mp4","mov"]},"videoFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AVC/H.264"]},"audioFormat":{"enable":true,"severity":4,"errorAction":"continue","value":["AAC"]},"TracksNumber":{"enable":true,"severity":3},"AVStartTimestamp":{"enable":false,"severity":2,"value":"00:00:00.000"},"AVStopTimestamp":{"enable":false,"severity":3,"value":""},"videoAudioDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"audioDuration":{"enable":false,"severity":3,"min":"","max":""},"videoDuration":{"enable":false,"severity":3,"min":"","max":""}},"priority2":{"checkMandatoryMP4Boxes":{"enable":true,"severity":4},"mvhdTimescale":{"enable":true,"severity":4},"AVMetadataInconsistency":{"enable":true,"severity":3},"audioTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"videoTimestampsDiscontinuity":{"enable":true,"severity":3,"value":100},"mvhdFileDurationDiscrepancy":{"enable":true,"severity":3,"value":300},"videoMetadataInconsistency":{"enable":false},"audioMetadataInconsistency":{"enable":false}},"priority3":{"videoResolution":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1920x1080"]}]},"videoProfileLevel":{"enable":true,"severity":3,"tracks":[{"id":1,"MPEG-1":{"profile":"Main","level":"Main"},"MPEG-2":{"profile":"Main","level":"Main"},"AVC/H.264":{"profile":"High (100)","level":"4"},"HEVC/H.265":{"profile":"Main (1)","level":"4.1"}}]},"chromaSubsampling":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["4:2:0"]}]},"videoBitDepth":{"enable":true,"severity":3,"tracks":[{"id":1,"lumaBitDepth":[8],"chromaBitDepth":[8]}]},"entropyCoding":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["CABAC"]}]},"scanType":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["Progressive"]}]},"scanOrder":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["TFF"]}]},"displayAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["16:9"]}]},"colorimetricDescription":{"enable":false,"severity":3,"tracks":[]},"sampleAspectRatio":{"enable":true,"severity":3,"tracks":[{"id":1,"value":["1:1"]}]},"afdCodes":{"enable":false,"severity":3,"tracks":[]},"frameRate":{"enable":true,"severity":3,"tracks":[{"id":1,"value":[25.0]}]},"averageBitRate":{"enable":false,"severity":3,"tracks":[]},"activeFrameRate":{"enable":false,"severity":3,"tracks":[{"id":1,"threshold":0}],"threshold":0},"bitRateType":{"enable":false,"severity":3,"tracks":[{"id":1,"value":["VBR"]}]},"gopLength":{"enable":false,"severity":3,"tracks":[]},"gopStructure":{"enable":false,"severity":3,"tracks":[{"id":1,"m":0,"n":0}]},"closedGOP":{"enable":false,"severity":3,"tracks":[]},"referenceFrames":{"enable":false,"severity":3,"tracks":[{"id":1,"value":3}]},"hdrFormat":{"enable":false,"severity":3,"tracks":[]},"hdrMetadata":{"enable":false,"severity":3,"tracks":[{"id":1,"displayPrimaries[0]":"0.170; 0.797","displayPrimaries[1]":"0.131; 0.046","displayPrimaries[2]":"0.708; 0.292","whitePoint":"0.3127; 0.329","maxDisplayMasteringLuminance":1000,"minDisplayMasteringLuminance":0.005,"maxCLL":1000,"maxFALL":400}]},"videoResolutionChange":{"enable":true,"severity":3},"videoProfileLevelChange":{"enable":true,"severity":3},"chromaSubsamplingChange":{"enable":true,"severity":3},"videoBitDepthChange":{"enable":true,"severity":3},"entropyCodingChange":{"enable":true,"severity":3},"scanTypeChange":{"enable":true,"severity":3},"scanOrderChange":{"enable":false,"severity":3},"colorimetricDescriptionChange":{"enable":false,"severity":3},"displayAspectRatioChange":{"enable":true,"severity":3},"sampleAspectRatioChange":{"enable":true,"severity":3},"afdCodesChange":{"enable":false,"severity":3},"frameRateChange":{"enable":true,"severity":3},"referenceFramesChange":{"enable":false,"severity":3},"hdrMetadataChange":{"enable":false,"severity":3},"lumaBitDepthChange":{"enable":true,"severity":3},"chromaBitDepthChange":{"enable":true,"severity":3}},"priority4":{"audioSampleRate":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[48000]}]},"audioBitDepth":{"enable":false,"severity":3,"tracks":[]},"audioChannelsNumber":{"enable":true,"severity":3,"tracks":[{"id":2,"value":[2]}]},"audioProfile":{"enable":true,"severity":3,"tracks":[{"id":2,"value":["LC"]}]},"audioLanguage":{"enable":false,"severity":3,"tracks":[]},"audioLayer":{"enable":false,"severity":3,"tracks":[{"id":2,"value":[3]}]}},"priority5":{"videoFreeze":{"enable":true,"severity":3,"interval":1000,"threshold":0,"psnrThreshold":42,"forceCheck":0,"timeFromStart":0,"timeFromEnd":0},"videoBlack":{"enable":true,"severity":3,"luminance":16,"threshold":95,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMono":{"enable":true,"severity":3,"threshold":90,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoMattress":{"enable":true,"severity":3,"thresholdI":40,"thresholdII":10,"interval":1000,"timeFromStart":0,"timeFromEnd":0},"videoDecodability":{"enable":true,"severity":3,"mode":"full","threshold":100}},"priority6":{"audioSilence":{"enable":true,"severity":3,"threshold":-70.0,"timeFromStart":0,"timeFromEnd":0},"audioDecodability":{"enable":true,"severity":3,"threshold":100},"momentaryLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"shortTermLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0},"loudnessRange":{"enable":true,"severity":3,"min":0.0,"max":6.0},"truePeakDetection":{"enable":true,"severity":3,"level":-1.0},"programmeLoudness":{"enable":true,"severity":3,"target":-23.0,"tolerance":1.0}}}}}]}'
Ответ на запрос из примера #1
 {
   "reply": [
     {
       "method": "TemplateUpload",
       "result": {
         "template_id": 100,
         "name": "TestTemplateUploadAPI"
       }
     }
   ]
 }
Ответ на запрос из примера #2
 {
   "reply": [
     {
       "method": "TemplateUpload",
       "errors": {
         "priority3": {
           "videoResolution": {
             "tracks": {
               "0": {
                 "value": [
                   "is missing"
                 ]
               }
             }
           }
         }
       }
     }
   ]
 }
Ответ на запрос из примера #3
 {
   "reply": [
     {
       "method": "TemplateUpload",
       "errors": {
         "priority3": {
           "videoResolution": {
             "tracks": [
               "Tracks should not be empty.",
               "Invalid number of video tracks: expected 1, got 0."
             ]
           }
         }
       }
     }
   ]
 }
Ответ на запрос из примера #4
 {
   "reply": [
     {
       "method": "TemplateUpload",
       "errors": {
         "general": {
           "thumbnail": {
             "defaultPeriod": [
               "must be an integer"
             ]
           }
         }
       }
     }
   ]
 }