[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 -vo help
應該要有
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 會產生mencoder及mplayer
- 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
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['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"這個名稱是比較關鍵的
- 它會顯示在你頁面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


延伸閱讀:



GD Library:GD Version
阿欣老師您好:
不好意思,又來麻煩您了。我也使用Ubuntu架了個osTube的網站,目前一切都還算順利。
只是昨天使用FireFox看部落格,才忽然發現,怎麼影片都看不到,但是在IE、Maxthon下都是正常的。
不曉得是否又因為我在TinyMce使用了什麼錯誤的外掛?導致貼上去的原始碼,又全都走樣了。
可是自從上次學了您的加入Picasa相簿幻燈片時,已經把Flash的外掛拿掉了,就不知還有什麼原因會造成這樣的情形?
從osTube裡複製的嵌入碼應該是:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="480" height="360" id="player" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="http://media.tsps.tpc.edu.tw/ostube/flvplayer.swf?mediaid=92&hosturl=http://media.tsps.tpc.edu.tw/ostube/&themecolor=696969&symbolcolor=0xb22222&backgroundcolor=0x000000&autostart=false&loop=false&overlay=http://media.tsps.tpc.edu.tw/ostube//media/custom/player_emb.png&&" /> <param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="width" value="480" /><param name="height" value="360" /><param name="scale" value="noscale" /><param name="allowFullScreen" value="true" /><embed src="http://media.tsps.tpc.edu.tw/ostube/flvplayer.swf?mediaid=92&hosturl=http://media.tsps.tpc.edu.tw/ostube/&themecolor=0x696969&symbolcolor=0xb22222&backgroundcolor=0x000000&autostart=false&loop=false&overlay=http://media.tsps.tpc.edu.tw/ostube//media/custom/player_emb.png&&" quality="high" bgcolor="#000000" height="360" width="480" name="player" align="middle" allowFullScreen="true" allowScriptAccess="always" scale="noscale" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
可是當我貼上部落格更新後,再回到HTML模式下看,竟然變成:
<object align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" height="360" id="player" width="480">
<param name="_cx" value="12700">
</param>
<param name="_cy" value="9525">
</param>
<param name="FlashVars">
</param>
<param name="Movie" value="http://media.tsps.tpc.edu.tw/ostube/flvplayer.swf?mediaid=92&hosturl=http://media.tsps.tpc.edu.tw/ostube/&themecolor=696969&symbolcolor=0xb22222&backgroundcolor=0x000000&autostart=false&loop=false&overlay=http://media.tsps.tpc.edu.tw/ostube//media/custom/player_emb.png&&">
</param>
<param name="Src" value="http://media.tsps.tpc.edu.tw/ostube/flvplayer.swf?mediaid=92&hosturl=http://media.tsps.tpc.edu.tw/ostube/&themecolor=696969&symbolcolor=0xb22222&backgroundcolor=0x000000&autostart=false&loop=false&overlay=http://media.tsps.tpc.edu.tw/ostube//media/custom/player_emb.png&&">
</param>
<param name="WMode" value="Window">
</param>
<param name="Play" value="-1">
</param>
<param name="Loop" value="-1">
</param>
<param name="Quality" value="High">
</param>
<param name="SAlign">
</param>
<param name="Menu" value="-1">
</param>
<param name="Base">
</param>
<param name="AllowScriptAccess" value="always">
</param>
<param name="Scale" value="NoScale">
</param>
<param name="DeviceFont" value="0">
</param>
<param name="EmbedMovie" value="0">
</param>
<param name="BGColor" value="000000">
</param>
<param name="SWRemote">
</param>
<param name="MovieData">
</param>
<param name="SeamlessTabbing" value="1">
</param>
<param name="Profile" value="0">
</param>
<param name="ProfileAddress">
</param>
<param name="ProfilePort" value="0">
</param>
<param name="AllowNetworking" value="all">
</param>
<param name="AllowFullScreen" value="true">
</param>
</object>
怪怪的問題!
剛剛測試的結果,上面那些多出來的語法是使用IE7來發表文章時才會出現(IE6不知會不會,還要再試)。
若我用Firefox3來發表文章,就沒有這些問題。
還找不到原因,不過跟tinymce應該沒關係(我拿你的tiny_mce-plog.js來測試過)