Обрезка видео потока в андроид-студии - PullRequest
0 голосов
/ 25 января 2019

Я хочу передать очень большое видео (скажем, 5000x5000), и я хочу обрезать его, чтобы показать фрагменты 1000x1000.В настоящее время я делаю это, передавая видео через TextureView.SurfaceTextureListener.Масштабирование видео до такой степени, что один фрагмент соответствует моему виду и может быть воспроизведен.Вот небольшой фрагмент:

Matrix matrix = new Matrix();
matrix.setScale(scaleX, scaleY, 0, 0);
matrix.postTranslate(positionX, positionY);

textureView.setTransform(matrix);

Однако, поскольку это такое большое видео, некоторые устройства не могут его воспроизвести.Меньшие видео работают хорошо, даже с тем же кодеком.Кажется, что для декодирования требуется слишком много времени, чтобы играть.Это даже произошло, когда я сохранил видео в ресурсах.(может быть, как-то связано с вторым ответом в этом вопросе )

Я пытался использовать ffmpeg, но когда я это сделал, согласно этому вопросу , я получилСообщение об ошибке в ExecuteBinaryResponseHandler.onFailure(): "CANNOT LINK EXECUTABLE "/data/user/0/packageName/files/ffmpeg": /data/data/packageName/files/ffmpeg: has text relocations".Таким образом, кажется, что ffmpeg больше не является вариантом, и никогда не будет, в соответствии с этими вопросами:

Итак, несколько вопросов по этому поводу.

  1. Есть ли альтернатива ffmpeg, которая позволяет мне обрезать видео программно и с высокой производительностью, прежде чем они будут декодированы проигрывателем?
  2. Есть ли способ ограничить Android загрузкой только видимых частей видео после масштабирования?Повышение производительности моей первой попытки, масштабирование видео до точки, где я вижу только определенную область?
  3. Есть ли способ, кроме понижения качества моего видеоисточника, гарантировать, что устройство может воспроизводить видео, или, по крайней мере, программно определить, что видео не может быть воспроизведено?
  4. Есть ли другой метод или обходной путь, который я могу использовать, чтобы показать обрезанную часть видео?

ОБНОВЛЕНИЕ

Как предлагается в комментариях, до кипенияэто сводится к одному вопросу: есть ли способ для меня обрезать видео программно из URL, чтобы оно воспроизводилось на всех современных устройствах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...