Laravel无法播放上传的mp4视频

时间:2016-07-13 13:51:57

标签: php laravel

在我的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客户端看到它们,我不知道为什么会这样,有什么帮助?

1 个答案:

答案 0 :(得分:0)

好的,我想出了问题所在。由于某些原因,我的服务器上没有启用mp4 mime类型。所以我刚从cpanel启用它(但我认为它也可以通过.htaccess文件完成)。