在我的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
结束时无法在HTML5播放器中播放它我甚至无法在浏览器中使用他们的路径找到它们,但我可以从ftp客户端看到它们,我不知道为什么会这样,有什么帮助?
答案 0 :(得分:0)
好的,我想出了问题所在。由于某些原因,我的服务器上没有启用mp4 mime类型。所以我刚从cpanel启用它(但我认为它也可以通过.htaccess文件完成)。