webエンジニアの日常

RubyやPython, JSなど、IT関連の記事を書いています

CarrierWaveでS3へアップロードした動画をhtmlで再生する

こんにちは、エンジニアのさもです。

Railsで動画をS3へアップロードするところまでは出来たのですが、video_tagで再生できずにはまってしまいました。

いろいろ検索してもどんぴしゃな解決法が出なかったのですが、なんとか再生することが出来たので共有しておきます。

スポンサーリンク

やろうとしたこと

Contentモデルにimageという名前で、画像か動画が入っています。画像か動画かはcontent_typeというカラムで"image"か"video"を持っています。

画像の場合であれば、

<%= image_tag(content.image_url) %>

で問題なく表示されます。

ただ、同じように

<%= video_tag(content.image_url, width: "200px", heigth: "200px") %>

としても動画が再生されずに、代わりに画像が表示されていました

解決方法

HTMLべた書きになってしまいますが、

<video controls name="media" width="200px" heigth="200px">
  <source src=<%= content.image_url %> type="video/mp4">
</video>

とすれば再生されました!

video_tagはローカルにファイルがあるときとかでしょうか?よく分からないですが無事に再生できました。

読者登録はこちらからお願いします。