[update 05/05]這篇文章越寫越長, 把它放到moodle上,比較方便閱讀。

osTube就類似像YouTube一樣的服務,你上傳了各種不同檔案格式的(avi wmv mov mpg mpe mpeg 3gp flv mp4 m4v)的影片後,它會自動將影片傳成flv檔,然後在網站上呈現。

例如我們的「華龍影音網

google一下,目前已經有許多學校安裝了這osTube,大部分的學校是安裝在Ubuntu下(據說最容易安裝)。

這裡就把我在Fedora上安裝osTube的筆記拿出來給大家參考吧!

在開始安裝 osTube之前,必須先安裝一些必要套件,之前有看到這一篇「 先教Server學轉片吧」,雖然文章不是講osTube,講的是用ffmpeg來轉檔(osTube是用MPlayer來轉檔),不過其中關於ruby及FLVTool2的功能,有清楚的說明,蠻受用的一篇文章。

 

一、開始安裝MPlayer之前


在安裝MPlayer之前,先確認一下你的系統是否有安裝 libjpeg-devel,你可以

rpm -qa |grep libjpeg-devel

應該要有 libjpeg-devel-6b-39.fc8 之類的東西,若沒有就

yum -y install libjpeg-devel

若沒有這檔案,你上傳之後的影片檔轉檔後將無法產生縮圖檔,就像下圖
(ps:但若上傳的是flv檔案,不需要透過MPlayer來轉檔,所以也就不會產生影片縮圖,必須自己上傳縮圖檔)

當我發現這問題時,去官網搜尋資料,看到這一篇討論 ,才知道解決方式
當你把MPlayer安裝完成後,執行 
mplayer -vo help
應該要有
Available video output drivers:
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        v4l2    V4L2 MPEG Video Decoder Output
        cvidix  console VIDIX
        null    Null video output
        mpegpes Mpeg-PES to DVB card
        yuv4mpeg        yuv4mpeg output for mjpegtools
        jpeg    JPEG file
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame


若沒有上面的 jpeg,就代表你的系統缺少了 libjpeg-devel。

二、開始安裝MPlayer


MPlayer下載頁面: http://www.mplayerhq.hu/design7/dload.html  (去抓那個 MPlayer v1.0rc2 source )

當然也可以透過SVN來取得

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

關於SVN
我們可以透過SVN 來取得一些軟體的最新版本(要取得LifeType最新版本也可以用SVN ),在我的Fedora 8上我已預先安裝了subversion,若你的系統沒有安裝(你可以 rpm -qa |grep subversion 看看有沒有類似 subversion-1.4.4-7 的套件),你可以使用 yum 來安裝

yum -y install subversion


安裝 MPlayer步驟

wget http://www4.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
tar xvf MPlayer-1.0rc2.tar.bz2
cd MPlayer-1.0rc2
./configure --prefix=/usr
make
make install

安裝完成後,在 /usr/bin 會產生mencodermplayer

  • ps:上面的 ./configure --prefix=/usr ,紅色部份代表我要安裝到什麼地方, 預設是 /usr/local/bin。

 

三、安裝Ruby


Ruby官網:http://www.ruby-lang.org/en/downloads/

若要安裝等一下要安裝的 FLVTool2,你的系統必須先要有 ruby,我的系統 Fedora 8 已預先安裝了 rpm 版的 ruby,你可以

rpm -qa | grep ruby 會找到

  • ruby-libs-1.8.6.110-2.fc8
  • ruby-1.8.6.110-2.fc8

/usr/bin 裡也應該會看到 ruby

若沒有你可以試試 yum

yum -y install ruby

會安裝最新版本的ruby

  • ruby-1.8.6.114-1.fc8
  • ruby-libs-1.8.6.114-1.fc8

或到 http://rpmfind.net找到ruby 來安裝,也可以到官網去找source來安裝

tar -zxvf ruby-1.8.5-p12.tar.gz
cd ruby-1.8.5-p12
./configure
make
make install

 


四、安裝 FLVTool2


官網:http://rubyforge.org/projects/flvtool2/

  • wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
  • tar zxvf flvtool2-1.0.6.tgz
  • cd flvtool2-1.0.6
  • ruby setup.rb config
  • ruby setup.rb setup
  • ruby setup.rb install

安裝完成,在 /usr/bin 裡會找到 flvtool2

 

五、 gd & php-gd


我在安裝步驟進行到設定資料庫的部份,一直卡住,寫不進去,搜尋一下osTube的討論區,看到這一篇文章
http://www.ostube.de/node/1994

have a suspicion... Please check in the GD section of that installation page if all picture formats are activated. If not, (re)install the php-gd extension and try again.

你可以檢查看看你的系統有沒有 gd php-gd

rpm -qa | grep gd
rpm -qa | grep php-gd

我的系統有 gd-2.0.35-1.fc8,但沒有 php-gd,所以就

yum -y install php-gd

安裝了 php-gd-5.2.4-3

確認這兩個套件你都有,等一下安裝osTube才不會有問題。

 

六、調整 php.ini


由於我們要上傳的是影片,所以通常檔案會比較大,記得要調整一下php.ini裡一些設定值

php.ini 裡有一些跟上傳檔案時有關的數值(還有時間的數值,先不管了)

  • upload_max_filesize:
    這是上傳單一檔案的大小限制,譬如我若允許上傳超過20MB的影片檔,那這數值就必須至少大於「20M」才可以。

  • post_max_size:
    PHP允許一次上傳檔案的大小限制,若我一次要上傳2個15MB的影片檔,那麼這個數值就必須至少大於「30M」了。
    這個 post_max_size 必須大於 upload_max_filesize

  • memory_limit:
    執行每個scripts時使用的memory大小限制
    這個 memory_limit 必須大於 post_max_size


這三個數值的大小,必須是 memory_limit > post_max_size > upload_max_filesize ,這不是我說的,是php manual上說的,所以要設多大,就看自己的決定了。(設定好記得要 service httpd restart 來重新啟動)

  • PS:上面這一點是我在以前安裝Gallery2時所寫下的,不過在osTube裡,上傳檔案似乎跟這些設定都沒關係(不過還是要設定大一點,不然安裝時,ostube會警示)。

    因為我原本設定了「upload_max_filesize」為100MB,在osTube管理後台,有個設定選項「Maximum Upload Filesize (MB)」,這裡可以設定最大上傳檔案大小(我也設為100MB),但當我上傳了一個300MB的檔案時,發現也是可以順利上傳成功。

    這問題等一下再來說明。 

 

七、開始安裝 osTube


ostube官網: http://www.ostube.de/en/ostube

  • 1.下載檔案

你可以免費下載 osTube 2.1 Community Edition,下載前必須先註冊、email認證,登入osTube後才能下載

  • 2.新增一個資料庫給ostube
  • 3.設定權限

當你以瀏覽器連結到你的ostube時,會先看到下面的畫面,就是要先設定好檔案、目錄的權限

比較簡單的方式

chown -R apache.apache /var/www/html/ostube

  •   4.以瀏覽器來連結你的ostube

 

 

最後,頁面上會出現個訊息

Please move or rename your '/install' directory or delete it. Otherwise anyone could reinstall your portal at anytime given.
將 /install 這目錄移除,或者改個名稱。

 

八、中文化
  • 1.修改前台為中文語系

澎湖人No1自由軟體交流網 那裡很熱心提供了中文化檔案,你可以抓取 english.ini 後取代 /ostube/languages/english/english.ini
 

[05/05 updtae] 南投草屯國小shian老師修改了2.1版的 english.ini,謝謝 Shian老師囉!

就可以讓你的osTube前台變成中文了(不知道有沒有人已將管理後台也中文化了呢?),不過要注意一個地方

send2friend_subject = '你的朋友從澎湖影音網提供一個媒體檔案給你觀賞!'

這裡就是若有人從網頁上將影片寄給朋友時信件的標題,改成你自己的網站名稱吧!
 

  • 2.自己新增繁體中文語系 

看到其他網站,有個中文的語系(原本只有英文及德文),而且畫面右上角也可以看到我們的國旗,自己試了一下,大概知道怎麼自己增加繁體中文語系了。

這過程有點小複雜,你很有興趣,再跟我繼續玩下去,不然用上面的方法是最簡單、最快的方法了。

過程:

  cd languages
  cp -r english zh-TW (從英文語系複製一份)
  cd zh-TW
  vi settings.php (修改一下內容如下)

$settings['iso_code'] = "zh-TW";
$settings['datetime_format'] = "m-d-Y H:i:s";
$settings['date_format'] = "m-d-Y";
$settings['date_format_full'] = "l, jS F Y";
$settings['time_format'] = "h:i:sa";
$settings['time_format_short'] = "H:ia";
$settings['encoding'] = "utf-8";
$settings['title'] = "繁體中文";
$settings['locale'] = array('zh-TW', 'tw', 'Taiwan');



vi zh-TW.ini (自己新增一個中文語系檔)
你可以去複製這個 english.ini  的內容,貼到這裡來吧!



再來要在templates(模板檔案)目錄下複製一份新的圖示目錄給 zh-TW 來使用
預設有black_mamba、default、hightek這三個模板,我就以default這模板來示範

cd /templates/default/images
cp -r english zh-TW (複製一份圖示給zh-TW用)
cd zh-TW
wget http://video.hlps.tcc.edu.tw/templates/default/images/zh-TW/zh-TW.gif (抓這個圖 到 zh-TW 的目錄下)


上面紅字的部份"zh-TW"這個名稱是比較關鍵的
  • 它會顯示在你頁面Meta資訊上的 content-language
  • 它代表你的語系檔裡的名稱 zh-TW.ini
  • 它代表你的語系檔代表圖示(也就是那面國旗的檔名)的名稱 zh-TW.gif
當你這些都完成了,就可以在頁面右上角看到三面國旗了。

 

但是,又會產生一個小問題(所以我前面說有點小複雜嗎!) 

當你用英文、德文介面時,會看到有分類的圖示,但切換到繁體中文來,圖示卻不見了

這樣若你在管理後台將繁體中文設定為預設語言

在你要上傳檔案時,會看不到分類可以選擇,也就沒有辦法來上傳檔案了。

 不過,當然可以解決,到管理後台(上面的預設語言先選擇為 English

一個一個將繁體中文的分類加上去就可以解決! 

[Update at 04/26 01:24:02]


在 /ostube/templates/你的模板/mail/ 這目錄下,原本只有 english 及 german 這兩個目錄,這裡是用來處理信件相關的模板檔案,因為我們變成了繁體中文的語系,所以必須在這裡再增加一個目錄為 zh-TW, 所以

cp -r english zh-TW

裡面有許多模板檔案,有需要的可以自己去改一下內容為中文囉! 

九、我遇到的問題:

在使用的過程,我還有碰到一些問題,在這裡說明一下。

  • 問題一:上傳檔案後,出現了


 

這是因為ostube 2.0版本以上,上傳時會顯示出檔案上傳進度

若你的ostube是安裝在子目錄下,例如 http://your domain/ostube 這樣的網址,但因為系統程式的關係,出現上面上傳進度的程式是跑 http://you domain/cgi-bin/...,所以找不到相關程式(相關程式在 ostube/cgi-bin裡面有4個檔案),就會出現上面的錯誤訊息。

這有幾個方式可以解決:

  • (1)不顯示上面的上傳進度

所以就不需要去跑 /cgi-bin裡的東西,在管理後台「Configuration / General Settings / 最下面的 Use UberUploader」這裡把它改成「No」(系統預設為Yes)。

 不過這樣比較不好啦!若你上傳大容量檔案,根本不知道要等多久才會上傳完成,挺無趣的。

  • (2)修改 httpd.conf

因為fedora系統的 cgi-bin  目錄是設定在 /var/www/cgi-bin,我們可以修改一下讓這目錄的路徑跑到 /var/www/html/ostube/cgi-bin 裡就可以了。

所以

vi /etc/https/conf/httpd.conf
找到設定 cgi-bin 那裡,改成

ScriptAlias /cgi-bin/ "/var/www/html/ostube/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/html/ostube/cgi-bin">
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

再重新啟動httpd

service httpd restart

最後記得要讓 /ostube/cgi-bin 目錄下的四個檔案檔案屬性為可執行 

cd /ostube/cgi-bin
chmod +x *

改到這邊,你上傳檔案時,就可以看到上傳進度了。

但是,還沒完喔!雖然可以看到上傳進度,可是傳到一半,畫面會變成空白一片,檔案也沒上傳成功,因為還有個地方要改。

vi /ostube/cgi-bin/uu_default_config.pm

其中三個部份要修改,加入如下紅色字的部份。

  • upload_dir               => $ENV{'DOCUMENT_ROOT'} . '/ostube/media/tmp/',
  • redirect_url             => 'http://' . $ENV{'SERVER_NAME'} . '/ostube/upload.php',
  • path_to_upload           => 'http://'. $ENV{'SERVER_NAME'} . '/ostube/uploads/',


這樣就可以了。

  • (3)不修改 httpd.conf

其實也可以不用像上面那麼麻煩,幾個步驟就可以了啦!(阿欣你還真無聊,既然有簡單的方式,幹麼不直接先講呢?

cd /var/www/html/ostube/cgi-bin/
vi uu_default_config.pm (照上面的修改)

  • upload_dir               => $ENV{'DOCUMENT_ROOT'} . '/ostube/media/tmp/',
  • redirect_url             => 'http://' . $ENV{'SERVER_NAME'} . '/ostube/upload.php',
  • path_to_upload           => 'http://'. $ENV{'SERVER_NAME'} . '/ostube/uploads/',

chmod +x * (給它們可執行的權限)
cp * /var/www/cgi-bin (複製4個檔案到fedora系統預設的 cgi-bin 目錄)

這夠簡單了吧!

  • 若你的ostube網址是像這樣 http://video.hlps.tcc.edu.tw ,那就一切OK,什麼都不用改,

    [2008/04/28 00:33:08 update]

    不改 httpd.conf ,但還是要將 /ostube/cgi-bin下面那四個檔案複製到 /var/www/cgi-bin 底下
    還要再給那4個檔案可執行的權限。
    但不需要改 uu_default_config.pm 這檔案。

 
問題二:上傳大檔案時,會出現 ERROR: Maximum upload size of 486.10 MB exceeded


前面有說到,上傳檔案大小,似乎跟 php.ini 裡的設定無關,跟管理後台的設定也無關。那麼檔案大小的限制在哪裡呢?

上面的數字  486.10 MByte = 49776875 KByte= 509715200 Byte

這個數字「 509715200」 在那裡出現過呢?

就在 /ostube/cgi-bin/uu_default_config.pm 裡面,其中一段

max_upload               => 509715200,

那麼知道意思了吧!你若要上傳超過 486.1M的檔案,就必須再加大這個數字,假如要上傳到1GB的檔案,算算吧!

1GB =1024 MB = 1048576 KB = 1073741824 Byte

看看我傳過個1.4GB的檔案


問題三:檔案已上傳成功,卻無法顯示在網頁上

影片上傳後,系統會進行轉檔的工作,必須等候一點時間讓系統來轉檔,在我這裡,上傳一個277MB的mpeg2檔,約需4分鐘時間來轉檔(不包含上傳時間)。

但遇過一些莫名的原因,檔案已轉好檔(你可以用瀏覽器去看 http://your ostube/media/video ,傳成flv的影片檔都在這裡可以看到),但在管理後台卻一直看到檔案的狀態為「Converting」,所以就無法在前台看到這轉好檔的影片。

你可以用phpMyAdmin去看瀏覽資料庫裡 「ost_media」這資料表裡的資料,可以看到

其實可以自己將這一筆資料手動修改成 「success   480:360」。這樣這一段影片就可以在前台看得到了,不過唯一一個缺點,這段影片就無法顯示出時間的長度了。

這是什麼原因?我也不知道囉!

[04/28 09:33:32 update]

這應該是mysql設定的問題,在我的 /etc/my.cnf 裡有段設定

set-variable = wait_timeout=300 

把這數值改大一點,就可以解決這問題了,至於要改多大?
「300」,代表300秒 ,剛剛用「top」這指令仔細看了一下,上傳一個571MB的影片檔,約需執行mencoder 8分15秒(495秒),代表每秒鐘約轉檔1.15MB。
就看你上傳的檔案多大,就調整一下這數值吧!調整後,記得要 service mysqld restart  。

 

問題四:上傳mov檔,顯示在網頁上,但「影音不同步」

例如這一段 「卡通:創用 CC 介紹」,他的原始檔為.mov檔案


我上傳後,就產生了影音不同步的問題 。

最後,我是先用「好用的影音轉檔軟體--SUPER ©」先轉成 .flv檔案,然後再上傳,才可以正常播放的。

原因?我還是不知道。

ZZZ,想睡了,就先寫到這了。

 



 

十、修改模板

ostube預設模板有三種,我選擇的預設模板是 black_mamba,但有些地方我想自己改一點東西,這裡就是我的一些修改紀錄

  • 1.加上學校首頁的連結

 

修改  /ostube/templates/black_mamba/mainmenu.tpl

 

  •  2.關閉註冊功能

osTube管理後台並沒有關閉使用者註冊的功能,也不能由管理者新增使用者,所以我想到的方式是先將註冊網頁另存個檔案(若需要讓其他人註冊再告知該網頁),再將原本註冊頁面的表單給隱藏起來。

 

 修改 /ostube/templates/black_mamba/content/signup.tpl


 

延伸閱讀: