はじめに
小規模な会員制の動画配信のシステムを作ったときに、動画をストリーミング再生したくなったので、その方法を書いておきます。
というか、もともとすばらしい記事があったのですが、それの初心者向けの補足をします。
(私がつまづいたところを書いておきます。。)
とりあえず、この記事すばらしい!!
Laravelで動画のストリーミング再生を実装する【Safariでも再生可能】
とりあえず、この記事を読んで、この記事のコードをコピペしてください。
ヘルパーの方は何書いてあるか、私にはさっぱりわかりません!!
Amazon S3につないでおいて
補足します1
「ヘルパーにS3の接続とファイルパスを渡す」という箇所がありまして、"s3上の動画ファイルのパス"とだけ書いてあるんですが、なにを指定したらいいのか、だいぶ悩みました...
S3のバケットの中にファイルアップロードすると思うのですが、バケット名までは、.envで指定してあるのでバケット名以降のパスを書きます。
例えば、バケット名「aaa」の中に、「bbb > ccc.txt」が保存してあったら、
bbb/ccc.txt
と書けばいいのです!!
なんか、アップロードしたあとのURLとか書いたりして、取れないよーとかなってました...
補足します2
参考にした記事の最後に、
「作成したメソッドにルーティングを設定し、ブラウザからアクセスすると動画が再生できます!」
と書いてあるんですが、ここも補足します。
記事内にある、streamVideoFile
メソッドへのルーティング(URL)を例えば、
http://localhost:8888/streamVideoFile
にしたとします。
そしたら、それとは別にviewファイルを表示するルーティングを用意して、そのviewファイルにvideoタグを書きます。
videoタグのsrcを、先ほど作成したルーティングに設定します。
<video controls preload="auto">
<source src="http://localhost:8888/streamVideoFile" type="video/mp4">
</video>
こうやって書いておくと、videoタグでストリーミング再生が実現できます!!
実際は、同じ動画を再生するとかはあまりないと思うので、違う動画を再生できるように、引数なりなんなり渡して、動画切り替えたりしてください。
まとめ
ぶっちゃけ、このストリーミング再生の記事書いてくれている人がいなかったら、私は実装できていなかった...
ありがとうございます。。