Абсолютно ударился головой об этом, и я хотел бы проверить здравомыслие.Главным образом, если то, что я хочу сделать, это даже возможно, так как я сильно ограничен реактивом-нативом, который имеет довольно хитрую поддержку Blob.
Мы все знаем, что кодирование видео стоит дорого, таким образом, вместо того, чтобы заставлять пользователя кодировать, используяffmpeg Я бы хотел делегировать весь процесс бэкэнду.Это все хорошо, за исключением того, что иногда вам может понадобиться обрезать 30 секунд видео, и загружать его более 3 минут бессмысленно.
Так что у меня возникла идея нарезать каплю видеофайла:
const startOffset = (startTime * blobSize) / duration;
const endOffset = (endTime * blobSize) / duration;
const slicedBlob = blob.slice(startOffset, endOffset);
// Setting the type as third option is ignored
Как-то так, проблема в том, что файл становится полностью нечитаемым, как только он достигает бэкэнда.React Native не может обрабатывать загрузки BLOB-объектов, поэтому они конвертируются в base64, что вполне подходит для всего видео, но не для нарезанного BLOB-объекта.
Это даже если я не изменю начало:
const slicedBlob = blob.slice(0, endOffset);
Мне кажется, причина в том, что файл становится потоком приложения / октета, который может повлиять на декодирование?
Я немного растерялся, так как не могу понять, является ли это реакциейСобственная проблема с BLOB-объектами или если это просто невозможно сделать.
Спасибо за любой ввод.
ps Я предпочитаю придерживаться vanilla expo без использования внешних библиотек, я знаю, что существует для обработкиBLOB-объектов, но не заинтересованы в извлечении, если возможно, полагаться на внешние библиотеки.