:::

Timemark to SSA使用教學

布丁布丁吃布丁

Timemark to SSA使用教學

image

輔大動畫OPED放映會即將邁入十代目現在,我想也把Timemark to SSA(簡稱TTS)重新介紹一下好了。

本篇首頁的影片中您可以看到類似卡啦OK的字幕,這是利用影片與字幕檔案結合重新壓置(render)之後產生的結果。大部分的影片都沒有字幕,為了方便觀看,所以我才會想要製作字幕檔案。TTS即是將我們常見的lrc詞曲同步檔案 (範例檔案千千靜聽之類的音樂播放器最常用來顯示同步歌詞的檔案類型)轉換成SSA字幕檔(範例檔案)的程式。以上兩種都是單純的文字檔案,可以用記事本等文字編輯工具直接開啟。

TTS是一個網頁檔,可以從開啟影片標註時間標籤(我稱之為Timemark)、調整字幕顯示格式、時間並且輸出,一氣呵成地製作出SSA字幕檔。本篇就是要教大家怎麼使用TTS來製作SSA字幕檔!

  • Timemark to SSA 下載:miroko空間SkyDrive空間
    ※ 請下載到您的電腦,並用瀏覽器開啟電腦中的TTS網頁運作。

請注意,請以Internet Explorer 6開啟或IE Tester中模擬IE6來開啟TTS才能正常運作。


操作畫面說明

image

image 所有功能都包含在一個網頁檔裡面,當全部功能都打開時,網頁就會變得很長。整個TTS包括五大功能,以下大略地講解各功能的概要,各功能的操作細節,可以看一下標題旁邊的「提示說明」(如右圖)。

1. 來源歌詞編輯器

image

左半邊是影片播放器,下面有個「瀏覽」的表單,請選擇你本機端的影片載入,因為是使用Windows Media Player的關係,只要確定Windows Media Player可以播放的檔案,此處都可以播放。

右邊的編輯框分成「歌詞編輯模式」跟「時間標籤編輯模式」。請先在歌詞編輯模式中將您的歌詞檔案都準備好,再切換到時間標籤編輯模式當中,一邊利用左邊的播放器播放影片,一邊利用快速鍵(如空白鍵、enter鍵等等,網頁上有提示)來加入時間標籤。

在此說明一下時間標籤,表示影片播到此處的時間記錄點。格式是[00:38:50]或[00:38.50],第一個「00」表示分鐘,第二個「38」表示秒,第三個「50」則是百分之一秒。對TTS來說,時間標籤只有在一行的開頭或結尾才有意義。

當然,除了TTS之外,千千靜聽本身也有時間標籤編輯器的功能,網路上也很多lrc的下載網站,所以倒也不用每次都自己製作lrc格式的歌詞檔啦。

但是TTS的特色在於,你可以在歌詞檔上加入漢字的拼音,轉換成字幕檔的時候,就可以看到漢字歌詞上頭有著拼音的註解囉。詳細作法稍後再來介紹,我們繼續看看其他的功能吧。

2. 參數與格式設定

image

這個功能又分成上方的「時間軸設定參數」跟下方的「字幕顯示格式」兩種,只有取消勾選「使用預設的…」選項的時候才會顯示他的詳細設定。

時間軸設定參數的說明在TTS上已經很詳細了。字幕顯示格式主要是設定顏色、字型、大小等參數,其他的參數則不建議更動。此處的字幕顯示格式跟SSA的格式設定有很大的關聯,TTS只有使用到一部分SSA功能的關係,所以大部分設定都是無效的。有興趣的話可以來研究一下SSA的教學喔。

3. 轉換設定

image

此處選擇輸出字幕檔的模式跟一些功能。

上方有四種模式,動畫OPED放映會主要使用的是「兩行左右格式」,也是一般卡啦OK常用的格式。下方則有幾個小功能,其中「拼音補完功能」會使用一些預設好的漢字與拼音對照表來幫漢字加上拼音,但那畢竟只是作好玩的,還是請自行幫歌詞注音吧。

4. 歌詞編輯器

image

TTS讀取來源歌詞檔跟參數設定之後,會將分析的結果在此呈現。此區可以調整每一句歌詞的細節,包括拼音。雖然說這是TTS編輯器的精華,但其實我不太希望會有人用到這個功能。如果在來源歌詞檔跟參數設定的部份就已經設定好的話,就不需要在此處手動調整了。

5. 輸出結果

image

全部輸出完成的SSA檔案會出現在此處。請依照提示說明的方式將內文儲存成SSA檔案就可以正常播放了!


製作SSA歌詞字幕檔

以下我們就用「化物語 第10話OP(HD)」來介紹如何幫他製作歌詞檔案。

1. 取得歌詞

以下是轉載自YouTube的本曲歌詞

(せーの)

でもそんなんじゃダメ もうそんなんじゃホラ

心は進化するよ もっともっと

言葉にすれば消えちゃう関係なら

言葉を消せばいいなって

思ってた?恐れてた?

だけどあれ? なんか違うかも?

千里の道も一歩から

石のように硬いそんな意志で

塵も積もれば山と(大和)撫子?

私意抜きでいや死ぬ気で

ふわふわり ふわふわる

あなたが名前を呼ぶ それだけでじゅうえうかぶ

ふわふわる ふわふわり

あなたが笑っている それだけで笑顔になる

神様ありがとう 運命のイタズラでも

巡り合えたことが 幸せなの

でもそんなんじゃダメ もうそんなんじゃホラ

心は進化するよ もっともっと

そうそんなんじゃヤダ ねえそんなんじゃまだ

私のこと見ててねずっとずっと

2. 修飾歌詞,並加上拼音

修飾歌詞要把握幾點原則:

  1. 一句話太長時,應該斷行,以免作成字幕檔時超出畫面。
  2. 拼音的括號只接受半形括號,例如「(」或「)」。全形括號會被當作歌詞的一部分,像是「(」、「)」。
  3. 歌曲部份有間奏的時候,請多插入一個空行,否則不要輕易增加空行。
  4. 日文漢字拼音請多多利用日文辭典goo辞書ひらひらのひらがなめだね

調整完畢之後的歌詞如下:

(せーの)

でもそんなんじゃダメ

もうそんなんじゃホラ

心(こころ)は進化(しんか)するよ

もっともっと

 

言葉(ことば)にすれば消(き)えちゃう関係(かんけい)なら

言葉(ことば)を消(き)せばいいなって

思(おも)ってた?恐(おそ)れてた?

だけどあれ? なんか違(ちが)うかも?

千里(せんり)の道(みち)も一歩(いっほ)から

石(いし)のように硬(かた)いそんな意志(いし)で

塵(ちり)も積(つ)もれば山(やま)と撫子(なでしこ)?

私意(しい)抜(ぬ)きでいや死(し)ぬ気(き)で

ふわふわり ふわふわる

あなたが名前(なまえ)を呼(よ)ぶ

それだけでじゅうえうかぶ

ふわふわる ふわふわり

あなたが笑(わら)っている

それだけで笑顔(えがお)になる

 

神様(かみさま)ありがとう

運命(うんめい)のイタズラでも

巡(めぐ)り合(あ)えたことが

幸(しあわ)せなの

でもそんなんじゃダメ

もうそんなんじゃホラ

心(こころ)は進化(しんか)するよ

もっともっと

そうそんなんじゃヤダ

ねえそんなんじゃまだ

私(わたし)のこと見(み)ててね

ずっとずっと

3. 貼到TTS的歌詞編輯模式吧

如下圖。

image

4. 載入可以播放的影片

image

為了標註時間標籤,我們需要利用左邊的影片播放器播放此影片。

建議安裝K-lite之類的codec編碼包,讓你的Windows Media Player就可以播放多種影片格式。此外有許多小技巧可以從YouTube下載影片,並轉換成Windows Media Player可以播放的avi檔案,網路上很多,在此我就先略過這些細節吧。

5. 切換到時間標籤編輯模式

image

按一下右上角的「時間標籤編輯模式」就可以切換過去了。框框也會跟著變成藍色喔。

6. 一邊播放影片,一邊利用快速鍵加入時間標籤

在標註時間標籤之前,必須先牢記快速鍵!

  • 使用上下鍵來選擇要編輯的歌詞行
  • ctrl-m: 切換歌詞編輯模式與時間標籤編輯模式
    (以下功能,可以按著shift鍵讓他暫時失效)
  • space(空白鍵): 在該行開頭加入時間標籤
  • enter: 在該行結尾加入時間標籤
  • delete: 刪除該行開頭的時間標籤
  • backspace(←): 刪除該行結尾的時間標籤

添加時間標籤時,也有幾個原則:

  1. 通常只要加入行首的時間標籤就可以了。請善用space空白鍵來加入時間標籤吧。
  2. 如果該行沒有歌詞只有時間標籤,那會判斷成前一行歌詞的結束時間。
  3. 歌詞最後一定要加入結尾的時間標籤!不然TTS不知道最後一句歌詞會放到什麼時候。
  4. 注意斷行!每個斷行都會影響TTS最後產出的歌詞時間。當你覺得這一句歌詞跟下一句歌詞中間有間隔時,請不要客氣地將他們中間增加一個斷行吧。否則的話請千萬不要加入沒有意義的斷行喔!

加註完時間標籤之後,請切回歌詞編輯模式作微調。

最後結果如下:

[00:00:00](せーの)

[00:00:89]でもそんなんじゃダメ

[00:02:77]もうそんなんじゃホラ

[00:04:69]心(こころ)は進化(しんか)するよ

[00:07:16]もっともっと

[00:08:70]

[00:24:73]言葉(ことば)にすれば消(き)えちゃう関係(かんけい)なら

[00:27:03]言葉(ことば)を消(き)せばいいなって

[00:28:96]思(おも)ってた?恐(おそ)れてた?

[00:30:60]だけどあれ? なんか違(ちが)うかも?

[00:32:69]千里(せんり)の道(みち)も一歩(いっほ)から

[00:34:55]石(いし)のように硬(かた)いそんな意志(いし)で

[00:36:87]塵(ちり)も積(つ)もれば山(やま)と撫子(なでしこ)?

[00:38:98]私意(しい)抜(ぬ)きでいや死(し)ぬ気(き)で

 

[00:40:85]ふわふわり ふわふわる

[00:43:80]あなたが名前(なまえ)を呼(よ)ぶ

[00:46:13]それだけでじゅうえうかぶ

[00:48:74]ふわふわる ふわふわり

[00:51:75]あなたが笑(わら)っている

[00:54:02]それだけで笑顔(えがお)になる

[00:56:75]神様(かみさま)ありがとう

[01:00:54]運命(うんめい)のイタズラでも

[01:04:68]巡(めぐ)り合(あ)えたことが

[01:08:55]幸(しあわ)せなの

 

[01:12:53]でもそんなんじゃダメ

[01:14:68]もうそんなんじゃホラ

[01:16:68]心(こころ)は進化(しんか)するよ

[01:19:13]もっともっと

[01:20:74]そうそんなんじゃヤダ

[01:22:68]ねえそんなんじゃまだ

[01:24:73]私(わたし)のこと見(み)ててね

[01:26:99]ずっとずっと[01:28:58]

7. 調整格式

預設的字幕顯示格式是黑框白底。為了因應這個可愛的歌曲,我們來把他換成粉紅底吧!

image

首先先取消「使用預設的字幕顯示格式」的選取勾,下面的進階選項就會顯示出來。再找到「主要顏色」的選項,你可以在右邊的框輸入六位數的RGB碼,或是使用下方的選取器來選擇顏色。

image

顏色我稍微挑了靠近紫色的深色,當最後影片用投影機放映的時候會再淡一點。右邊的預覽文字可以作為參考。實際上還是要等製作出SSA檔案之後在確認吧。

8. 執行輸出

image

請直接到網頁最下方找尋「結果輸出」按鈕,點下去吧。

 image

當程式分析完畢之後會顯示「done」的提示音。下面的表單則是寫著輸出的SSA檔案內容囉。

9. 儲存成SSA檔案

image

請複製字幕檔案原始碼,貼到記事本當中並且儲存。注意儲存時,存檔類型必須是「所有檔案」,而編碼必須選擇「Unicode」。檔名需要跟影片相同,而副檔名則是「ssa」,例如我影片檔名叫作「化物語 第10話OP(HD).mp4」的話,存檔的檔名就應該是「化物語 第10話OP(HD).ssa」。

你可以下載結果輸出的SSA檔案來看看最後會輸出成什麼樣子。

10. 測試播放

image

image 你可以開啟你的Windows Media Player來播放看看。如果有正確安裝DirectVobSub的話,播放影片時應該就能自動載入SSA字幕。同時Windows工具列右下角還會有綠色箭頭,表示DirectVobSub運作中(如右圖)。

要注意的是,DirectVobSub即時把影片跟字幕混合的作法非常消耗電腦資源,特別是CPU的速度。要是你覺得影片跟聲音對不上了,除了升級電腦配備之外,你可以考慮把影片先壓縮成低品質低解析度的測試用影片,或是直接作一次跟字幕檔結合的壓製影片來檢查成果。此外,這種即時把影片檔跟字幕檔混和處理的影片是沒辦法用Print Screen擷取畫面的,因此實際上我是使用TMPGEnc Plus開啟此影片再截圖的。


結語

TTS是非常複雜的。

除了上述教學的兩行左右格式之外,還有單行模式跟註解格式。當慢歌時我們會使用單行模式;而有口白之類的歌詞,則會使用註解模式,再跟主要歌詞貼在同一個檔案裡面。以前我在社團有寫過詳細的教學,等我找到之後再放出來看看吧。

因為有了TTS,讓製作歌詞字幕變得簡單。但是除了字幕檔之外,還有製作MAD影片、影片跟字幕檔壓製結合、製作DVD影音光碟等程序,才能做出動畫OPED放映會能夠播放的影片。雖然很辛苦,但也是非常有趣的。有興趣的學弟妹請務必參加輔大動漫電玩研習社的製作教學活動吧!

那就先這樣囉。

(more...)

以IE Tester使用Timemark to SSA程式

布丁布丁吃布丁

以IE Tester使用Timemark to SSA程式

image

我在輔大動漫社時為了動畫OPED放映會所製作了卡啦OK歌詞式SSA字幕檔案產生機Timeamark to SSA (簡稱TTS)。TTS能夠以網頁中內嵌的Windows Media Player來播放影片檔案,一邊為影片檔案加上時間標籤(那時候我稱之為「Timemark」)。以具有時間標籤的歌詞為基礎,TTS可以從中產生出類似卡啦OK歌詞字幕的字幕檔案。除此之外,還可為歌詞加上拼音註解、調整歌詞的顯示格式、以及歌詞顯示與淡入淡出的時間。

  • Timemark to SSA 下載:miroko空間SkyDrive空間
    ※ 請下載到您的電腦,並用瀏覽器開啟電腦中的TTS網頁運作。

然而當時我程式的能力不足,TTS不能在IE6以外的瀏覽器正常運作。而且現在微軟已經逐漸想要把IE6逐出市場,所以以後可能都得依賴像IE Tester之類的Internet Explorer模擬器,才能用IE6的狀態執行TTS。

TTS計算時間標籤的方式實在是太過複雜了,難以去改版。當時的我投入這麼多心力撰寫的這支TTS,到現在我還是覺得很厲害。

(more...)

測試一下Pixelpipe!

布丁布丁吃布丁

1 Comments

測試一下Pixelpipe!

(more...)

今天也是好天氣

布丁布丁吃布丁

0 Comments

今天也是好天氣

颱風呢?外環氣流呢?
手機e-mail發Blog測試中!
(more...)

潛入施工中總圖!

布丁布丁吃布丁

1 Comments

潛入施工中總圖!


由於政大總圖二樓以上整修中,9/13之前都得採預約申請方式借書。日前我申請了四本書跟光碟,圖書館跟我說光碟不用申請即可借用,到了總圖又碰上l學姐,她說我界這麼多本,不如自身安全切結書簽一簽自己上去找書吧。上樓之後看到的就如照片所示,到處都是修整樣貌。書櫃用塑膠套蓋了起來,我得悶在塑膠套裡一本一本找書。雖然才四本、都在同一個書櫃內,但也熱的我滿頭大汗的了。借書時l學姐笑著對我說「我平常就是這樣辛苦。」還真的很累人呢!還是希望總圖修整趕快結束吧。
(more...)

CentOS安裝odf-converter,轉換Office 2007文件為OpenOffice格式

布丁布丁吃布丁

CentOS安裝odf-converter,轉換Office 2007文件為OpenOffice格式

為了讓DSpacemedia filter功能能夠接受Microsoft Office 2007的DOCX、XLSX與PPTX,我們需要借助odf-converter把Office 2007的格式轉換成OpenOffice相對應的ODT、ODS、ODP格式,才能作接下來的處理。

image

上圖右邊是原始的Microsoft Office 2007的PPTX格式投影片,左邊則是利用odf-converter轉換成OpenOffce的ODP格式投影片,儘管在字型、版面上有點差異,但還是可以接受的程度。


安裝

安裝的步驟很簡單,只要下載以下檔案並以rpm安裝即可

你可以用以下指令下載並安裝:

[root@dspace ~] wget http://katana.oooninja.com/f/software/odf-converter-integrator-0.2.3-1.i386.rpm
[root@dspace ~] rpm -ivh odf-converter-integrator-0.2.3-1.i386.rpm

使用

使用範例如下:(/f表示強制覆蓋,/i後面接輸入檔名,詳細用法請直接執行OdfConverter)

[root@dspace ~] OdfConverter /f /i input.docx

這樣預設會輸出一個檔名為「input.odt」的OpenOffice檔案,這樣就轉換完成囉。


這次不偷懶,用Zotero好好地作參考資料的書目。使用此篇時也別忘了感謝以下參考資料來源喔!

參考資料:

Convert OpenXML (.docx, etc.) in Linux using command line - OpenOffice.org Ninja. (n.d.). . Retrieved August 9, 2009, from http://www.oooninja.com/2008/01/convert-openxml-docx-etc-in-linux-using.html.

odf-converter-integrator:download [OpenOffice.org Ninja]. (n.d.). . Retrieved August 9, 2009, from http://katana.oooninja.com/w/odf-converter-integrator/download.

小傑的部落格 - Jay's Blog: OpenDocument Format 與 Office Open XML 互轉. (n.d.). . Retrieved August 9, 2009, from http://jay-notebook.blogspot.com/2009/01/opendocument-format-office-open-xml.html.

(more...)

用Xvfb讓OpenOffice開機時自動啟動

布丁布丁吃布丁

用Xvfb讓OpenOffice開機時自動啟動

使用DSpacemedia filter功能時,需要把各種文件檔轉換成PDF文件,這個功能可以藉由OpenOffice來完成。但是OpenOffice必須在圖形介面(也就是Xwindow)中才能開啟,在無法自動啟動的情況下,實在是不太方便。在網路上搜尋各種方法之後,終於找到方法了。

大致上作法如下:利用Xvfb來製作出虛擬的圖形顯示畫面,然後讓OpenOffice在這虛擬的介面開啟,就可以正常啟動OpenOffice並提供轉檔功能了。


我的作業系統是CentOS 5 Final,以下開始介紹安裝方法。

一、安裝Xvfb

可以利用yum來安裝Xvfb:(注意大小寫要正確喔)

[root@ ~] yum install Xvfb 

二、安裝OpenOffice

在安裝CentOS的時候我已經把OpenOffice安裝。如果你沒有安裝,那麼也可以利用yum來安裝OpenOffice:

[root@ ~] yum install openoffice.org-*

注意找尋一下你OpenOffice的安裝路徑,我們需要呼叫他的執行程式「soffice.bin」。你可以利用locate指令來搜尋soffice.bin看是放在哪裡路徑底下:

[root@ ~] locate /soffice.bin

CentOS預設安裝是擺在「/usr/lib/openoffice.org/program/soffice.bin」當中,記住這個路徑,在底下設定時會使用到喔!

三、設定啟動時開啟OpenOffice文件轉換服務

請建立「/etc/init.d/openoffice」,並設定執行權限為755。/etc/init.d/openoffice的檔案內容如下:

#!/bin/bash

case "$1" in
start)
     DISPLAY=:5.0
     export DISPLAY
     Xvfb :5 -screen scrn 1024x768x24 &
     /opt/openoffice.org3/program/soffice.bin "-accept=socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager -nofirststartwizard -nologo -headless -display:5" &
       ;;
stop)
       pkill soffice &
       pkill Xvfb &
       exit 1 &
       ;;
*)
       echo "Usage: $0 { start | stop }"
       exit 1
       ;;
esac
exit 0

注意到上面的「/usr/lib/openoffice.org/program/soffice.bin」的路徑,請改成你系統安裝OpenOffice的路徑喔!


結果還是花了一整個下午在弄這個。不管怎麼說能用好就好啦……

 

參考資料:

(more...)

DSpace加強Browse功能的BrowseUtil

布丁布丁吃布丁

DSpace加強Browse功能的BrowseUtil

image

DSpace具備強大的Browse功能,可是唯獨換頁的功能卻只有薄弱的「next」(下一頁)跟「prev」(上一頁)。因此我寫了一支BrowseUtil來提供這方面的功能,也把[dspace-jspui-webapp]/browse/中full.jsp、single.jsp能作到的功能也加了進去,提供程式設計師在修改Browse功能時能夠有靈活的彈性。


安裝BrowseUtil

請下載以下檔案,並放置指定的位置:

  • BrowseUtil.java (SkyDriveMiroko)
    [dspace-source]/dspace-jspui/src/main/java/org/dspace/app/webui/util/BrowseUtil.java
  • BrowseInfo.java (SkyDriveMiroko)
    [dspace-source]/dspace-jspui/src/main/java/org/dspace/browse/BrowseInfo.java
  • full.jsp (SkyDriveMiroko)
    single.jsp (SkyDriveMiroko)
    [dspace-source]/dspace/modules/jspui/src/main/webapp/browse/full.jsp
    [dspace-source]/dspace/modules/jspui/src/main/webapp/browse/single.jsp

然後請重新編譯DSpace,作mvn package跟ant update的動作。

使用BrowseUtil

引用與建立BrowseUtil物件

在JSP檔案裡面,請輸入以下語法以引用BrowseUtil:

<%@ page import="org.dspace.app.webui.util.BrowseUtil" %>

BrowseUtil物件建立需要輸入兩個參數,個別是HttpServletRequest跟BrowseInfo(這是DSpace的Browse物件),建立範例如下;

<%
BrowseInfo bi = (BrowseInfo) request.getAttribute("browse.info"); //先取得BrowseInfo物件
BrowseUtil bu = new BrowseUtil(request, bi); //建立BrowseUtil
%>

然後我們就可以以這個bu物件來取得連結了。

取得換頁連結
<%
String next = bu.getNextLink(); //下一頁
String last = bu.getLastLink(); //最後一頁
String prev = bu.getPrevLink(); //前一頁
String first = bu.getFirstLink(); //第一頁
%>

取得頁碼

以下語法會取得每一頁頁碼與連結,但是會排除自己的頁碼:

<%= bu.getPagesList() %>

結果如下:

<<first < previous 1 2 3 4 5 6 next > last >>

以下語法會取得該頁前後2頁之內的頁碼:

<%= bu.getPagesLink(2) %>

結果如下:

<<first < previous ... 2 3 4 5 6 ... next > last >>


其他BrowseInfo其實還有小功能,如果有需要的話就請自行看看程式碼囉。寫小功能還是非常讓人愉快的,大家加油!

(more...)

DSpace擴增Collection Browse功能

布丁布丁吃布丁

DSpace擴增Collection Browse功能

image

DSpace內建了非常強大的Browse功能,只是一般好像比較少看到有人善加利用。這次主要是要擴增Browse功能,讓他具備可以找出特定Metadata欄位中的值。


安裝方法

請下載以下檔案,依照同樣的目錄結構放到[dspace-source]當中,再重新編譯DSpace即可。


使用方法

舉例來說,下面網址與圖片顯示是在預設情況下全部的item:(因為這是區域網路,所以下面的網址應該連不到這個網頁)

http://192.168.1.30:8080/jspui/handle/123456789/56/browse?type=title&submit_browse=Title

image

但是只要在網址的GET參數當中加入「fdc[0]=欄位=值」(fdc是FilterDCValue的縮寫),就會出現特定item的效果,如下,注意紅字的位置:

http://192.168.1.30:8080/jspui/handle/123456789/56/browse?type=title&submit_browse=Title&fdc[0]=dc.title=121212

image

如果你要找出具備兩個條件的item,那就輸入「fdc[0]=欄位=值&fdc[1]=欄位=值」,例如下面的網址與圖:

http://192.168.1.30:8080/jspui/handle/123456789/56/browse?type=title&submit_browse=Title&fdc[0]=dc.title=121212&fdc[1]=dc.date.issued=2009

image

裡面的所有連結我都已經調整過了,會自動帶入fdc的參數進去。至於細微的版面調整,那就是大家各自努力囉。


DSpace的Browse功能意外地複雜,解析物件的結構、資料的流向花了我不少的時間。雖然瀏覽感覺上只是個小功能,但是既然DSpace都有提供了,還是希望大家能夠好好利用吧!

(more...)

使用SWFTools把PDF轉成可以瀏覽的SWF檔案

布丁布丁吃布丁

使用SWFTools把PDF轉成可以瀏覽的SWF檔案

image

SWFTools,是個功能強大的SWF工具,可以把AVI影片、PNG JPEG圖片、PDF轉換成SWF格式的檔案。SWF格式是Adobe Flash匯出後的檔案,現在大部分都支援Flash的瀏覽器中都可以直接播放,Wikipedia寫說有99%的網路使用者都可以讀取swf檔案,包括任天堂Wii或是Sony的PSP。

image

其中pdf2swf + rfxview viewer 的功能最讓我感到驚豔。如名稱所示,他可以把PDF轉換成SWF之後,再結合rfxview viewer輸出成一個可供瀏覽的SWF檔案。瀏覽的項目包括放大、縮小、拖曳、換頁等功能,而且可以直接在網頁上播放,非常令人讚賞!有興趣的話可以先開啟範例網頁來玩玩看!

詳細的SWFTools指令,可以參考「光头的专栏 - SWFTools 命令」,裡面也介紹了中文字的解決方案。

我也把SWFTools加入了DSpace的Media-filter功能當中,這一篇則是先單純地介紹怎麼安裝SWFTools,並且把PDF轉換成SWF、並結合到SWFTools。


安裝SWFTools

SWFTools下載網頁:http://www.swftools.org/download.html,內有Windows版本跟Linux版本。

如果你跟我一樣是用CentOS的話,我們可以直接使用yum指令來直接安裝SWFTOOLS喔!

請以root身份登入,然後輸入以下指令:

[root@dspace ~]# yum -y install swftools

安裝完成之後,就可以用「pdf2swf [來源的pdf檔] [輸出的swf檔]」來作轉換喔,例如下面的指令:

[root@dspace ~]# pdf2swf input.pdf output.swf

取得rfxview.swf瀏覽器

直接用pdf2swf轉換出來的swf檔案並不具備瀏覽器的功能,必須搭配rfxview.swf才有這個效果。

rfxview.swf可以從SWFTools下載頁面中的swftools-0.9.0.tar.gz找到,我也另外備份了一份到SkyDriveMiroko空間當中。

實作範例

請先把PDF檔案、rfxview.swf瀏覽器放到同一個資料夾當中。
PDF範例檔案可以使用我的Blog(SkyDrive下載Miroko下載)

轉換的指令如下:

pdf2swf -z -B [rfxview.swf瀏覽器的路徑] -s flashversion=7 -t [來源PDF] -o [輸出SWF]

於是實際上輸入的指令如下:

[dspace@dspace-course ~]$ pdf2swf -z -B rfxview.swf -s flashversion=7 -t 1.pdf -o 2.swf

你可以用以下HTML程式碼寫在網頁中以開啟轉換後的2.swf:

<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 WIDTH="595"
 HEIGHT="842"
 CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0">
  <PARAM NAME="MOVIE" VALUE="2.swf">
  <PARAM NAME="PLAY" VALUE="true">
  <PARAM NAME="LOOP" VALUE="true">
  <PARAM NAME="QUALITY" VALUE="high">
  <EMBED SRC="2.swf" WIDTH="595" HEIGHT="842"
   PLAY="true" ALIGN="" LOOP="true" QUALITY="high"
   TYPE="application/x-shockwave-flash"
   PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
  </EMBED>
</OBJECT>

輸出結果應該要如下所示(SkyDrive下載Miroko下載):


SWFTools轉出來的PDF2SWF+rfxview仍有個缺點,就是他的大圖瀏覽在一開始的顯示比例跟位置不是說很好,開啟之後無法預設用「全畫面」來瀏覽。不過暫時也找不到其他的開放原始碼的替代方案,所以就期待SWFTools繼續改版吧。

(more...)