如何在PHP中创建具有特定mime类型的新blob?
我正在使用RecordRTC以1000ms的块记录视频,这些块通过AJAX以blob的形式发送到我的服务器。服务器保存这些文件,在录制结束时,我需要将它们全部重建为一个如何在PHP中创建具有特定mime类型的新blob?,php,video,webm,recordrtc,Php,Video,Webm,Recordrtc,我正在使用RecordRTC以1000ms的块记录视频,这些块通过AJAX以blob的形式发送到我的服务器。服务器保存这些文件,在录制结束时,我需要将它们全部重建为一个.webm 我认为这就像连接文件并给它正确的扩展名一样简单。不幸的是没有 下面是我构建最终文件的代码。这是在拉雷维尔,但它是相当不言自明的: public function buildBlob(Request $request) { $files = Storage::disk('local')->files('bl
.webm
我认为这就像连接文件并给它正确的扩展名一样简单。不幸的是没有
下面是我构建最终文件的代码。这是在拉雷维尔,但它是相当不言自明的:
public function buildBlob(Request $request)
{
$files = Storage::disk('local')->files('blobs');
$contents = '';
foreach($files as $file) {
$contents.= file_get_contents(storage_path('app/'. $file));
}
Storage::put('video.webm', $contents);
return ['success' => true];
}
VLC不会播放此文件。Firefox抱怨它是一个未知的文件类型。Chrome根本就不玩它
我想我的问题是:如何用正确的mimetype在PHP中编译一个新的blob?在JavaScript中,我可以做到:
let blob = new File(this.blobs, 'video.webm', {
type: 'video/webm'
});
所以我想我需要一个等效的。“以1000毫秒的块记录视频,通过AJAX以水滴的形式发送”-这些可能都是完整的小1s长视频…?如果它们包含所有必要的额外标题/元数据,使它们能够自己播放,那么您可能必须开始在服务器端重新编码它们,以再次获得完整的、可播放的组合长度视频。它们是blob,而不是完整的视频。不幸的是,没有mime类型与它们关联,它们无法单独播放。您如何保证文件的正确顺序?它们在上传之前用JavaScript进行了适当命名
video-001.web
,video-002.webm
etcAndStorage::disk('local')->文件('blob')
保证按这些文件名对它们进行排序?