【发布时间】:2023-04-01 05:47:01
【问题描述】:
在我的 Laravel (5.2) 应用程序中,我有一个简单的上传功能,允许用户从网络摄像头上传或录制视频,然后播放它们。
如果用户从网络摄像头录制视频,则上传成功,然后他可以毫无问题地播放(webm格式)。
如果用户上传的是webm格式的视频,则上传成功,可以播放。
当用户上传.mp4 视频时出现问题;上传成功,但 HTML5 播放器无法播放,如果我到达视频路径,我会收到 500 错误。但是从我的 ftp 客户端我可以看到视频在那里,如果我下载它,我可以毫无问题地播放它。
处理视频上传的函数是这样的:
public function uploadvideo() {
$input = Input::all();
$destinationPath = 'videos'; // upload path
$extension = Input::file('file')->getClientOriginalExtension(); // getting file extension
$fileName = uniqid().'.'.$extension; // renameing video
$upload_success = Input::file('file')->move($destinationPath, $fileName); // uploading file to given path
if ($upload_success) {
Session::put('video', $fileName);
$mmty = mime_content_type('videos/'.$fileName);
return [$fileName,$mmty];
} else {
return Response::json('error', 400);
}
}
因此,在 AJAX 调用该脚本后,它将返回视频名称和 mime 类型,并在成功函数中:
var video = response[0];
var tipo = response[1];
var string = '<video width="320" height="240" controls><source src="https://myurl/videos/'+video+'" type="'+tipo+'">Your browser does not support the video tag.</video>';
$('#webcam').html(string);
所以,我认为问题不在于上传阶段(文件已正确上传),并且使用 webm 视频一切正常,但使用mp4 over 无法在 HTML5 播放器中播放它们我什至不能在浏览器中使用他们的路径找到它们,但我可以从 ftp 客户端看到它们,我不知道为什么会这样,有什么帮助吗?
【问题讨论】: