このページを印刷
2017/01/25(水) 02:43

HTML5でvideoタグを使う時にちょっとハマった。

投稿者:
このアイテムを評価
(0 件の投票)

HTML5による動画ストリーミングの設定に結構ハマってしまった。基本httpプロトコルで動画配信をする場合 video タグが使えるわけだが、Chromeのデフォルトのプレーヤーでは、ムービーダウンロードボタンがついていて元ファイルをダウンロード出来てしまう。

コントローラー全体を消すことは可能だが、ダウンロードボタンのみを消すというのはそういった記述が見当たらない。余計なことするなよChrome。

 

(後に非表示にする方法を見つけたけどこれめんどくさい)

http://stackoverflow.com/questions/41115801/in-chrome-55-prevent-showing-download-button-for-html-5-video/41136470#41136470

仕方なく、他のプレーヤーを設置することにした。しかし、何度やってもうまくいかない。特に80分程度ある動画なので、ストリーミングは必須。

http://www.joomlaworks.net/extensions/free/allvideos

さて、どうしたものか?といろいろ調べてみたが、2点注意すべき事が分かった。

1.サーバでの設定(ファイル置き場はLolipop)

サーバによって、MIME タイプを追加する必要がある。下記一例。これらを.htacsessに追記

AddType video/ogg .ogg .ogv
AddType audio/ogg .ogg
AddType application/ogg .ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

2.コーデックの際にストリーミング(正確にはプログレッシブダウンロード)対応のファイルを作る必要がある。

これは私が普段使っているTempeg5にはない機能だったためにフリーソフトの Xmdia Recode を使って再エンコード。

具体的には、通常メタデータがデータの一番最後に書かれるのを最初に配置する事で、すぐに再生出来るファイルにするようだ。

http://forest.watch.impress.co.jp/library/software/xmediarecode/

これはコーデックの際に設定が可能。

ということで、なんとか設置完了。

まあ、JSなどで組めば更にURLなどもわかりにくく出来るが、今回はそこまで必要ではない。それより、メンテナンス性が重要になる事案だ。

 

PS.と、ここまでやったところで要したモジュールがFlashを使っていることが判明。これではiPhoneでは表示出来ない。そこで結局、先のCSSによってプレーヤーのダウンロードボタンを消す方式に変更。

追加したCSSのソースは下記

video::-internal-media-controls-download-button {
    display:none;
}

video::-webkit-media-controls-enclosure {
    overflow:hidden;
}

video::-webkit-media-controls-panel {
    width: calc(100% + 30px); /* Adjust as needed */
}
読む 8897 回読まれました 最終修正日 2017/01/25(水) 08:41
浅川 浩二

自己紹介が難しい。あまりに色んな事をやりすぎてアイデンティティーが希薄になってしまった。何が出来るの?って聞かれると答えに窮する。ただ言えるのは、「友だちになれば便利な人だよ」という感じかな。

この作者の最新記事: 浅川 浩二