2009-12-11

OSTUBE_v.2.5--加入HTML5-Video TAG by Ogg video file

是的…狐狸我自從isms之後就又開始無聊了…
最近,想到html第5代新語言加入了audio跟video的二個好用的多媒體tag…不用對不起自己


目前能正確支援html5的應該除了IE以外的都可以了…所以,此方法,對使用IE的觀賞者就沒用了…

主要步驟:
  1. Ogg轉換利器-FFmpeg2theora,download,how to install-binary
  2. OSTUBE的修改與convert flv to ogg的指令
第一步:
尋著官網上的做法,最後安裝好之後,你就可以直接使用ffmpeg2theora了,他的指令與ffmpeg相似,不過,主要我們只是用來做轉成theora-ogg而已,不像我們會拿著ffmpeg來做多種媒體的轉換,所以,ffmpeg2theora的參數不多…大概我們比較常用以下的:
  • -o:設定output的位置跟名稱
  • -v:video畫質的LEVEL,從0~10
  • -a:audio音質的LEVEL,從0~10
  • --sync:同步,就是上面v跟a與來源檔相同,不用設定LEVEL(建議,這是不失真的轉換)

    不過,注意,如果你影片來源的codec是vp6f的,請不要使用--sync,因為會只轉1、2秒而已
  • --optimize:算是叫優化啦,因為,用--sync在h264/acc的編碼下,有一些檔會變成畫面是一張一張在跑,但聲音是正常的;但如果換用--optimize就不會有這個問題…不過…我覺得,flv轉ogg…只要是來源是h264的,ogg檔都會變很肥
撰寫方式就是:/usr/local/bin/ffmpeg2theora -o ogg-path/ogg-file-name.ogg --sync source-path/source-file-name

第二步:
先到ostube-path/template/defaults/content底下,把mediadetails.tpl多複製一個出來,複製出來的改名為mediadetails_ogg.tpl
再來,以下要開始修改
  1. ostube-path/.htaccess

    找到

    RewriteRule ^(video|audio|document|photo)/([0-9]+)(/[^/]+)?/?(.*)$ mediadetails.php?mid=$2&$4 [L,QSA,NC]

    改成

    RewriteRule ^(ogg|video|audio|document|photo)/([0-9]+)(/[^/]+)?/?(.*)$ mediadetails.php?mid=$2&$4&g=$1 [L,QSA,NC]

    因為我有開rewrite-rule,所以還是想用他的tag來做rewrite,$1就是放ogg|video|audio|document|photo的…
  2. ostube-path/mediadetails.php

    到最底下,找到

    $main -> EndScript($smarty -> fetch("content/mediadetails.tpl"), $media_type . "s");

    改成

    if (!isset($_GET['g']) || $_GET['g']!="ogg"){

        $main -> EndScript($smarty -> fetch("content/mediadetails.tpl"), $media_type . "s");

    }else{

        $main -> EndScript($smarty -> fetch("content/mediadetails_ogg.tpl"), $media_type . "s");

    }

    主要是想改成二個網頁,一個就是原本的flv,另一個就是把flash-plugin拿掉,改成html5的video
  3. ostube-path/template/defaults/content/mediadetails.tpl

    找到

    <h2 class="icon">{$TITLE}</h2>

    {$PLAYER}

    改成

    <h2 class="icon">{$TITLE}</h2><br>[<a href="/feuOSB/ogg/{$ID}/{$DESCRIPTION}">Theora-ogg-Version</a>]<br />

    {$PLAYER}
  4. ostube-path/template/defaults/content/mediadetails_ogg.tpl

    找到

    <h2 class="icon">{$TITLE}</h2>

    改成

    <h2 class="icon">{$TITLE}</h2><br>[<a href="{$ABSOLUTE_LINK}">Flv-Version</a>]<br />

    <video src="/feuOSB/media/ogg/{$ID}.ogg" controls="controls" autobuffer="autobuffer" autoplay="autoplay" width="640" height="360">

    your browser does not support the HTLM5-video tag

    </video>
就這樣…最後只要到ostube-path/media底下新建立一個ogg的資料匣
然後,就把轉好的ogg放進去…當然,目前的做法是你用ostube上傳後,再用指令去做flv to ogg的動作
當然,你可以寫一個shell指令來做排程,只是每一次排程還得先找哪一些轉過了…只轉還沒轉的…這麻煩呀
所以,最好的方式,是先把目前現有的先轉換,然後把flv 轉 ogg的動作也放入ostube中…這就是我下次的目標…

沒有留言: