私のLaravel(5.2)アプリケーションでは、ユーザーがウェブカメラからビデオをアップロードまたは録画して再生できる簡単なアップロード機能があります。Laravelはアップロードされたmp4ビデオを再生できません
ユーザーがウェブカメラからビデオを録画した場合、アップロードは成功し、問題なく再生できます(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クライアントでは、なぜこれが起こっているのかわかりません。