Как кодировать пустую звуковую дорожку для Azure Media Services v3? - PullRequest
1 голос
/ 27 марта 2019

У меня есть сайт, на котором пользователи могут загружать видео для кодирования и просмотра в Azure Media Player. Некоторые загруженные видеоролики не содержат аудиодорожек, которые не может воспроизводить медиаплеер Azure. Как я могу кодировать пустую звуковую дорожку с этими видео? Я использую v3 API REST.

Мой текущий код для преобразований:

private async Task<string> CreateTransformAsync(string transform)
    {
        JObject body = new JObject(
            new JProperty("properties",
                new JObject(
                    new JProperty("description", "Basic Transform using an Adaptive Streaming encoding preset from the libray of built-in Standard Encoder presets"),
                    new JProperty("outputs",
                        new JArray(
                            new JObject(
                                new JProperty("onError", "StopProcessingJob"),
                                new JProperty("relativePriority", "Normal"),
                                new JProperty("preset",
                                    new JObject(
                                        new JProperty("@odata.type", "#Microsoft.Media.BuiltInStandardEncoderPreset"),
                                        new JProperty("presetName", "H264MultipleBitrate720p")
                                    )
                                )
                            )
                        )
                    )
                )
            )
        );
        var jsonBody = new StringContent(body.ToString(), Encoding.UTF8, "application/json");
        HttpResponseMessage responseMsg = await _httpClient.PutAsync($"subscriptions/{_config.Value.SubscriptionId}/resourceGroups/{_config.Value.ResourceGroup}/providers/Microsoft.Media/mediaServices/{_config.Value.MediaAccountName}/transforms/{transform}/?api-version={_config.Value.ApiVersion}", jsonBody);
        string responseContent = await responseMsg.Content.ReadAsStringAsync();

        var response = JObject.Parse(responseContent);

        if (response["error"] == null)
        {
            return response["name"].ToString();
        } else
        {
            throw new Exception(response["error"].ToString());
        }
    }

UPDATE:

После изучения документации я немного продвинулся в этом: https://docs.microsoft.com/en-us/azure/media-services/latest/custom-preset-rest-howto#define-a-custom-preset

Теперь я определяю пользовательский пресет, читаю его и отправляю вместо него в теле. Проблема сейчас в том, что я не могу найти похожую опцию для «условия»: «InsertSilenceIfNoAudio», как в v2 API. Я открыл вопрос о github здесь: https://github.com/MicrosoftDocs/azure-docs/issues/28133

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Окончательно не объявлено, но, как мы тестировали для нашего проекта, Azure Media Player получил полную поддержку контента только видео, начиная с версии 2.3.0 (30 апреля 2019 г.) .

Официально в списке функций есть упоминание о том, что функция уже реализована (функция «Только видео» с комментарием «Поддерживается в AzureHtml5JS», здесь ), и это сказано в списке изменений 2.3Выпуск .0, в котором «Добавлена ​​поддержка ресурсов только для видео для DASH» ( здесь ), но мы также лично тестировали для SMOOTH и HLS - никаких проблем, поэтому ресурсы только для видео начинают воспроизводиться без каких-либо проблем, начинаяс версией 2.3.0.

В то же время проблема все еще упоминается в Известные проблемы : «Активы, которые являются только аудио или видео, не будут воспроизводиться через технологию AzureHtml5JS.»,но я думаю, они просто не обновляли документы.Другой вариант, возможно, они не проверили его полностью, но, как я сказал из нашего внутреннего тестирования, похоже, что он полностью работает.

1 голос
/ 28 марта 2019

Каковы ваши целевые настройки кодировки?Вам нужна пользовательская предустановка?Если нет, и вам просто нужна стандартная предустановка адаптивного потокового профиля, вы можете использовать предустановку AdaptiveStreaming. Он обрабатывает вставку тишины.

...