Потоковая передача видео с использованием AWS SDK – вызов второго диапазона байтов не работаетJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Потоковая передача видео с использованием AWS SDK – вызов второго диапазона байтов не работает

Сообщение Гость »

Я получал фрагмент размером 2 МБ при каждом вызове с помощью AWS SDK для Java 2.x:
Общий размер файла = 12 МБ

Размер фрагмента = 2 МБ

Для первого вызова:

Диапазон от байтов браузера=0- и вычислено значение диапазон на основе размера фрагмента и отправленного запроса с bytes=0-2097151.
Для этого вызова мне удалось получить ответ и транслировать часть видео в браузере
Для второго вызова:

Диапазон из браузера bytes=2097152-, я рассчитал диапазон и отправил запрос с помощью bytes= 2097152-4194302
в этом случае я получал ответ от AWS SDK, где при отправке ответа в браузер я получал следующую ошибку:

java.lang.IllegalArgumentException:

Код: Выделить всё

position
превышает длину ресурса 2097152.

Полный журнал ошибок:

Код: Выделить всё

java.lang.IllegalArgumentException: 'position' exceeds the resource length 2097152
at org.springframework.util.Assert.isTrue(Assert.java:121) ~[spring-core-5.3.19.jar:5.3.19]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ⇢ Handler com.example.demo.Application#getVideoFromS3(String) [DispatcherHandler]
*__checkpoint ⇢ HTTP GET "/video/s3" [ExceptionHandlingWebHandler]
Original Stack Trace:
at org.springframework.util.Assert.isTrue(Assert.java:121) ~[spring-core-5.3.19.jar:5.3.19]
at org.springframework.http.HttpRange.toResourceRegion(HttpRange.java:68) ~[spring-web-5.3.19.jar:5.3.19]
at org.springframework.http.HttpRange.toResourceRegions(HttpRange.java:183) ~[spring-web-5.3.19.jar:5.3.19]
at org.springframework.http.codec.ResourceHttpMessageWriter.lambda$write$3(ResourceHttpMessageWriter.java:213) ~[spring-web-5.3.19.jar:5.3.19]
Мой код:

Использование приведенного ниже примера кода в сервисе:

Код: Выделить всё

EcsObject ecsObject = awsEcsRepository.getObjectByRange(fileName, bucketName, null, contentRange, correlationId);
ByteArrayResource videoResponse = new ByteArrayResource(ecsObject.getInputStream().readAllBytes());

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf("video/webm"));
headers.setContentLength(ecsObject.getContentLength());
headers.set(HttpHeaders.CONTENT_RANGE, "bytes " + rangeStart + "-"+rangeEnd+"/"+fileSize);
headers.set(HttpHeaders.ACCEPT_RANGES, "bytes");

return ResponseEntity.status(HttpStatus.PARTIAL_CONTENT)
.headers(headers)
.body(videoResponse);

controller:
public ResponseEntity getVideoFromS3(@RequestHeader("Range") String range)
{
return streamingService.getVideoFromS3(range);
}
Я пытался настроить диапазоны байтов, но это не помогло.
Ищу решение, чтобы устранить проблему, и я смогу транслировать видео в браузере, извлекая фрагменты с помощью запрос диапазона.

Источник: https://stackoverflow.com/questions/781 ... ot-working
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Потоковая потоковая передача видео с камеры FLIR с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Потоковая потоковая передача Polars: Parquet Parquet на основе Shift (-1)
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как извлечь количество байтов из списка «байтов» и поместить в новый список «байтов»
    Гость » » в форуме Python
    0 Ответы
    117 Просмотры
    Последнее сообщение Гость
  • Конфликт AWS между aws.java.sdk.core и aws.java.sdk.s3 jdk 21
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Конфликт AWS между aws.java.sdk.core и aws.java.sdk.s3 jdk 21
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»