Медиа-сервис Azure накладывает звук на видео - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь наложить зацикленную аудиодорожку на видео, кодируемое с помощью службы мультимедиа Azure с использованием стандарта Media Encoder Standard. После тщательного поиска я не смог найти каких-либо указаний / документации о том, как это сделать, или даже если это официально поддерживается. Глядя здесь: https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-advanced-encoding-with-mes#overlay кажется, что это возможно, учитывая конфигурации AudioGainLevel и Looping. Я попытался загрузить ресурс mp3 в ресурс AMS, созданный для видео mp4 (audio_overlay.mp3), аналогично тому, как они предлагают для наложения изображения. Затем я сослался на этот mp3 в моей предустановленной конфигурации. Это был полный выстрел в темноте, и задание кодирования достигло 90%, прежде чем оно завершилось с ошибкой «Произошла ошибка. Этап: ApplyEncodeCommand».

Возможно ли это, и если да, то как?

Предустановка конфигурации Json для справки, конечно, конфигурация Position не имеет значения в этом случае использования (я пробовал с и без):

{
  "Version": 1.0,
  "Sources": [
    {
      "Streams": [],
      "Filters": {
        "AudioOverlay": {
          "Position": {
            "X": 100,
            "Y": 100,
            "Width": 1,
            "Height": 1
          },
          "AudioGainLevel": 1.0,
          "MediaParams": [
            {
              "OverlayLoopCount": 1
            },
            {
              "IsOverlay": true,
              "OverlayLoopCount": 1,
              "InputLoop": true
            }
          ],
          "Source": "audio_overlay.mp3",
          "Clip": {
            "Duration": "00:00:05"
          },
          "FadeInDuration": {
            "Duration": "00:00:01"
          },
          "FadeOutDuration": {
            "StartTime": "00:00:03",
            "Duration": "00:00:04"
          }
        }
      },
      "Pad": true
    }
  ],
  "Codecs": [
    {
      "KeyFrameInterval": "00:00:02",
      "H264Layers": [
        {
          "Profile": "Auto",
          "Level": "auto",
          "Bitrate": 1300,
          "MaxBitrate": 1300,
          "BufferWindow": "00:00:05",
          "Width": 848,
          "Height": 480,
          "BFrames": 3,
          "ReferenceFrames": 3,
          "AdaptiveBFrame": true,
          "Type": "H264Layer",
          "FrameRate": "0/1"
        },
        {
          "Profile": "Auto",
          "Level": "auto",
          "Bitrate": 650,
          "MaxBitrate": 650,
          "BufferWindow": "00:00:05",
          "Width": 640,
          "Height": 360,
          "BFrames": 3,
          "ReferenceFrames": 3,
          "AdaptiveBFrame": true,
          "Type": "H264Layer",
          "FrameRate": "0/1"
        },
        {
          "Profile": "Auto",
          "Level": "auto",
          "Bitrate": 400,
          "MaxBitrate": 400,
          "BufferWindow": "00:00:05",
          "Width": 432,
          "Height": 240,
          "BFrames": 3,
          "ReferenceFrames": 3,
          "AdaptiveBFrame": true,
          "Type": "H264Layer",
          "FrameRate": "0/1"
        }
      ],
      "Type": "H264Video"
    },
    {
      "Profile": "AACLC",
      "Channels": 2,
      "SamplingRate": 48000,
      "Bitrate": 128,
      "Type": "AACAudio"
    }
  ],
  "Outputs": [
    {
      "FileName": "{Basename}_{Width}x{Height}_{VideoBitrate}.mp4",
      "Format": {
        "Type": "MP4Format"
      }
    }
  ]
}  
...