我一直在使用 react-native 开发视频上传应用程序。用户可以通过应用相机录制视频。
有没有办法减少文件大小和/或上传时间,同时在 react-native 或 javascript 中显示/加载时间?前端解决这个问题有什么帮助吗?
是的,您可以优化文件大小并显示上传进度。FFmpeg通常用于操作视频文件。在WebAssembly的帮助下,您可以直接在应用程序中执行FFMpeg并操作视频文件。请参阅 GitHub 链接。[您可能需要检查这是否适用于 React 本机]
这个想法是读取从 MediaRecorder 接收的 blob(在 chrome 和 firefox 中可用,还有用于 react native 的 npm 包(并将其传递给 FFMpeg WebAssembly 端口。稍后可以使用 Blob 对优化的字节进行切片并发送到服务器(检查 JavaScript Blob 中的切片方法(。
建议虽然可以直接在客户端应用程序中执行上述所有步骤,但最好在服务器中而不是在客户端应用程序中运行视频优化实用程序。使用WebSocket或Ajax请求定期将从MediaRecorder接收的数据流式传输到服务器的正确方法。