В настоящее время, когда я отправляю свой видеофайл с клиента (actjs) на мой локально размещенный сервер (фляжка), файл поступает в виде видеоблока.Я пытаюсь прочитать этот файл на сервере, используя библиотеку opencv.Как я могу преобразовать большой двоичный объект во что-то, что может быть прочитано opencv?
Я отправляю аксиос-запрос большого двоичного объекта (преобразованный из массива медиа через MediaRecorder API).На сервере я могу получить файл, но он поставляется в формате .Я попытался отправить файл как тип «Файл», а также попытался преобразовать BLOB-объект на сервере в массив Uint8.Для некоторого большего контекста видеофайл, который я отправляю, является записью моей веб-камеры, поэтому видео будет иметь максимальную длину 5-10 секунд.
# localhost:5000/video route (FLASK SERVER)
@APP.route('/video', methods=['GET', 'POST'])
@cross_origin(supports_credentials=True)
def new_func():
if request.method == 'GET':
return 'Hello, World!'
else:
# uses request.files becuase what I am sending over is in blob format
print('this is files', request.files['video'])
return 'received it'
sendVideo() {
// here is the post request with axios client side
let data = new FormData();
data.append('video', this.state.video)
// this.state.video is a video blob
const config = {
headers: {
'content-type': 'multipart/form-data'
}
}
axios.post('http://localhost:5000/video', data, config)
}
// here is the conversion of the buffer array (all the video recording) //into a blob
// creating new blob (binary large obj) defining it as an mp4 file
let blob = new Blob(buffer, { 'type': 'video/mp4' });
t.setState({ video: blob }, () => {
t.sendVideo() // this function is the above js snippet
})
Я ожидаю, что сервер получит файл (что он уже делает) и сможет прочитать файл с помощью openCV (python).В настоящее время я не могу прочитать файл, полученный от клиента