API Google Cloud Video Intelligence - InvalidArgumentException / StatusRuntimeException INVALID_ARGUMENT: запрос содержит недопустимый аргумент - PullRequest
0 голосов
/ 08 апреля 2020

Когда я пытаюсь расшифровать некоторые видео, я получаю следующее сообщение об ошибке:

java .util.concurrent.ExecutionException: com.google.api.gax.rp c. InvalidArgumentException: io.grp c .StatusRuntimeException: INVALID_ARGUMENT: Запрос содержит недопустимый аргумент. на com.google.common.util.concurrent.AbstractFuture.getDoneValue (AbstractFuture. java: 553) ~ [guava-28.2- android .jar! /: na] на com.google.common.util.concurrent. AbstractFuture.get (AbstractFuture. java: 432) ~ [guava-28.2- android .jar! /: Na] на com.google.common.util.concurrent.FluentFuture $ TrustedFuture.get (FluentFuture. java : 93) ~ [guava-28.2- android .jar! /: Na] на com.google.common.util.concurrent.ForwardingFuture.get (ForwardingFuture. java: 68) ~ [guava-28.2- android .jar! /: na] на com.google.api.gax.longrunning.OperationFutureImpl.get (OperationFutureImpl. java: 133) ~ [gax-1.53.0.jar! /: 1.53.0]

В процессе видео MP4 преобразуются в WEBM, поэтому мы можем правильно транслировать видео в нашем интерфейсе. Кажется, есть проблема с ByteArray файла WEBM, который мы передаем на запрос, поэтому я попытался передать ByteArray файла MP4 напрямую. К сожалению, я получил ту же ошибку здесь с несколькими файлами MP4. Есть также несколько файлов MP4, которые успешно расшифрованы. Поэтому я не знаю, что не так с ByteArray и как решить эту проблему.

Наш запрос AnnotateVideoRequest построен следующим образом:

    private fun buildRequest(
        videoBytes: ByteString,
        transcriptionLanguage: String
): AnnotateVideoRequest {
    val config: SpeechTranscriptionConfig = SpeechTranscriptionConfig
            .newBuilder()
            .setLanguageCode(transcriptionLanguage)
            .setEnableAutomaticPunctuation(this.enableAutomaticPunctuation)
            .setMaxAlternatives(this.maxAlternatives)
            .build()

    val context: VideoContext = VideoContext
            .newBuilder()
            .setSpeechTranscriptionConfig(config)
            .build()

    return AnnotateVideoRequest
            .newBuilder()
            .setInputContent(videoBytes)
            .addFeatures(Feature.SPEECH_TRANSCRIPTION)
            .setVideoContext(context)
            .build()
}

Мы используем следующие версия клиентской библиотеки: com.google.cloud:google-cloud-video-intelligence:1.2.1

Каковы возможные способы определить, что на самом деле идет не так при выполнении этого запроса с некоторыми из наших файлов MP4

1 Ответ

0 голосов
/ 13 апреля 2020

Я отладил его, и я получаю эту ошибку, только если я отправляю байты файла как «inputContent». Если у меня есть файл в облаке Google, и я отправляю URL файла как «inputUri», то я не получаю никакой ошибки. (в качестве образца для тестирования использовали gs: //cloud-samples-data/video/cat.mp4 ")

...