ComicParty.com 動漫派對 ACG網誌空間 ComicParty首頁 | 註冊 | 简体中文

[工作札記 , 搞搞影像大作戰 , TVParty Suite ] 16 三月, 2007 14:26

TVParty Suite剛推出 version 0.1.1更新版本,這個版本主要是修正了巢狀播放清單可能產生的無限迴圈狀況,詳情請參閱README檔。

升級方法
請先備份config.ini、constant.inc.php和bin/auto_flush.sh三個檔案,然後將更新版的所有檔案來覆蓋舊檔。然後將備份起來的constant.inc.php和bin/auto_flush.sh拷貝回原來的地方去。

由於更新版本修正了一些config.ini的設定,所以請參考舊檔來重新設定各路徑。

下載『TVParty Suite v0.1.1』更新

引用URL : http://blog.comicparty.com/trackback.php?id=329

[工作札記 , 搞搞影像大作戰 , TVParty Suite ] 15 三月, 2007 01:01

搞了兩個多星期,第一版的『TVParty Suite』終於面世了。這個套件是提供了一個很基本的多媒體內容管理系統,讓有心研究架設YouTube式多媒體網站的朋友有個起步點。

TVParty Suite 前台介面 (歡迎有興趣的朋友替米奇搞個漂亮的版面) TVParty Suite 管理介面- 媒體檔管理 (影片鏈結和嵌入語法都可在這裡找到)TVParty Suite 在線擷取圖示介面 (有了Ajax真方便)

『TVParty Suite』集合了一些功能強大的工具和物件庫,後台以ffmpeg來將上傳到伺服器的影像檔轉換成播放用的Flash Video(FLV)檔,前台則以Flash Media Player 3.6負責播放的工作。憑著FMP的強大功能,『TVParty Suite』提供令人驚嘆的快速連接和搜畫功能。此外,後台管理介面借助了Script.aculo.us、Prototype和AJAX技術,提供了比傳統網頁應用更便利的播放清單編輯和在線即時畫面擷取功能。

TVParty Suite 播放清單編輯 (拖拉一下就搞定) TVParty Suite 影片轉換排程管理

『TVParty Suite』的其他功能包括:
- 可播放多種媒體檔案,包括影片、MP3及Flash動畫;
- 單一影片播放 / 播放清單;
- 不需架設付費的Flash communication server,就能提供超高速的連接和搜畫功能;
- 真正全屏幕播放 (須安裝Flash Player 9以上);
- 隨機、重覆播放;
- 可透過HTML表單、FTP上傳媒體檔案,甚至連結至外部的檔案;
- 自動監視指定目錄的檔案上傳情況,將所支援的影片轉換成FLV格式影片;
- 自動擷取影片圖示;
- 以頻道為基礎的媒體檔管理;
- 自動產生頻道播放清單;
- 在線擷取影片畫面;
- 提供播放日、結束日、節目狀態、隱藏影片/頻道/清單等多采多姿的管理方式;
- 提供對外鏈結及嵌入語法以便分享影片;
- 播放清單編輯提供了以拖曳方式簡易進行的簡易模式,和以編寫程式碼方式來編輯的進階模式;
- 巢狀播放清單。清單中可以內嵌媒體檔、整個頻道以至另一份播放清單;
- 播放清單採用公開標準的XSPF格式,可以放到其他支援這格式的播放器使用;
- 自動影片轉換程式會管視伺服器狀況來決定是否進行轉換工作,以免因轉換影片的負荷以導致其他服務被拖垮;
- 可透過後台管理介面來監視影片的上傳和轉換狀況;
- 紀錄影片的播放次數;如果有需要,還可以紀錄影片有沒有看和觀眾IP等資料;
- 可以在ASCII檔案系統下處理中文及日文檔名檔案;

『TVParty Suite』是以LGPL授權方式 (GNU Lesser General Public License) 授權發行,歡迎大家下載修改和再發佈,如果能給我一份修改版的拷貝就最好了,米奇也想多多學習。有關如何架設『TVParty Suite』所必須的轉片伺服器,可參閱先教Server學轉片吧一文。至於安裝方法和注意事項,請參考附有的README檔。

『TVParty Suite』只是非常初期的軟件,有很多很多改善的餘地,例如分散式伺服器處理各項工作、社群功能、正式的用戶管理系統、模版系統、播放清單暫存等等,米奇也打算將它以套件形式嵌入正在開發、備有完整用戶管理、模版、暫存和事件觸發機制的『PartyFrame』框架上。希望能抽到更多時間做吧。

順帶一提,以『TVParty Suite』來架設的影片網站是可以透過Wii的Opera瀏覽器來觀看影片的,效果蠻不錯啊。

下載『TVParty Suite』 ver 0.1.0

引用URL : http://blog.comicparty.com/trackback.php?id=326

[搞搞影像大作戰 , TVParty Suite ] 25 二月, 2007 13:05

要搞個自家YouTube伺服器,第一個難關就是如何讓Server有能力去轉片。參考Luar的英文Blog,總算找到了安裝各種套件的方法了。

正如前面文章提到,要讓Linux伺服器會轉FLV影片,要安裝4個套件,它們依次是LAME、ffmpeg、Ruby和FLVTool2。另外,由於用ffmpeg轉片只會忠實地按照您指定的尺寸來縮放影片,用轉4:3影片的尺寸來轉16:9影片會令完成影片變成,為了日後檔案上傳後可透過PHP自動檢查影片的尺寸來進行轉換工作,所以還要裝個PHP的擴充ffmpeg-php。而由於我們的特別需求,所以都不能用RPM方式來安裝,全都要耐心地去編譯。

LAME

LAME是用來將聲音壓成MP3格式的,是相當有名的壓MP3套件。先到LAME的官網去下載最新的LAME,依下面的指令來解開安裝它。其中最重要的是--enable-shared一段,因為只有那樣ffmpeg才能用得到它的功能。

tar -zxvf lame-3.97.tar.gz
cd lame-3.97
./configure --enable-shared -prefix=/usr
make
make install

ffmpeg

ffmpeg是著名的轉片套件,所附的libavcodec涵蓋大部分影片格式,轉FLV也可以。不過由於它也有不少FLV轉換軟件也有的共通問題,所以稍後還要安裝FLVTools來修正。

ffmpeg表明它是一個「永遠也是開發中的專案」,總是不停在更新,所以沒有一個官方的Binary檔可以下載來安裝,連源碼也要透過Subversion來取得最新版本。大多數Linux版本相信都已經預設安裝了SVN了吧。

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk /usr/local/src/ffmpeg
cd /usr/local/src/ffmpeg
./configure --enable-gpl --enable-libmp3lame --enable-shared --prefix=/usr
make clean && make
make install

當然,安裝ffmpeg時可以有很多很多很多很多插件和參數供您加上去,以安裝出一個更加萬能的轉片工具,不過因為真的太多太多太多,一版紙也寫不完,所以如何您要裝的話就自己到網上查看好了。 

Ruby

花了好長時間編譯ffmpeg之後,就要著手修正不正確儲存FLV metadata的問題了。FLVTool2可以做到這項工作,不過它是用Ruby來寫的,所以要先安裝Ruby。Ruby是由一位日本人松本行弘開發出來的,是個徹底至極的OO語言,不過由於太新不夠普及,不是所有Linux分發版本都預設安裝這種程式語言的編譯程式,所以又要去官網下載源碼來安裝。

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

FLVTool2

FLVTool2是一個用來編輯FLV檔的套件,透過它來儲存FLV檔,就可以保證FLV檔裡有正確的metadata了。FLVTool2的最新版本放了在RubyForge網站,下載回來就可以安裝。

gunzip flvtool2-1.0.6.tgz
tar -xvf flvtool2-1.0.6.tar
cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

到這裡,有關轉片方面的安裝便大功告成。那應該怎麼用ffmpeg來轉換影片至FLV檔呢?在Luar的網站雖然也有一些參考指令,不過不知怎的米奇總是用得不順手,於是就參考一下同是使用ffmpeg來轉片的攜帶動畫轉換君3GP Converter的做法。

將影片轉換為FLV檔

ffmpeg -y -i [來源檔路徑] -f flv -s [目的影片寬度]x[目的影片高度] -r [目的frame rate] -b [目的bitrate] -acodec mp3 -ar 22050 -ab 48 -ac 2 - | flvtool2 -U stdin [目的檔檔名]

目的檔的寬度和高度可以自訂,不過要小心會變形。一般來說320x240是4:3,320x180則是16:9。目的frame rate一般都離不開8/10/14.985/15/23.976/24/25/29.97/30的,網上播片的話14.985便夠了。至於bitrate就要看您的伺服器的流量和您自己的要求了,米奇的Demo網站用的是512000(512kbps),雖然幾乎沒起格,但檔案就頗大(186秒12.1MB),用384000(384kbps)已經有不錯的效果。至於聲音參數方面,由於FLV格式有一點要求,所以還是不要動好了。

從影片擷取小圖示

或許您會需要一張小圖示來代表那影片,ffmpeg也可以用來擷取這張圖示。 

ffmpeg -y -i [來源路徑] -f image2 -ss [擷取影格的秒數] -vframes 1 -s [圖示寬度]x[圖示高度] -an [圖示檔檔名]

擷取影格的秒數可以是小數後3位的小數,也接受00:00:00.xxx格式。圖檔名方面JPG/GIF/PNG都接受。

ffmpeg-php

為了讓PHP取得影片的資料,要安裝ffmpeg-php擴充插件。先到這裡下載ffmpeg-php回來編譯:

bunzip2 ffmpeg-php-0.5.0.tbz2
tar -xvf ffmpeg-php-0.5.0.tar
cd ffmpeg-php-0.5.0
phpize
./configure && make
make install

編譯完成後就可以製作出一個ffmpeg.so的檔案。然後就要去設定PHP,讓它載入這個擴充插件了。首先用筆記簿開一個新的純文字檔案,輸入以下兩行:

; Enable ffmpeg-php extension module
extension=ffmpeg.so

將檔案命名為ffmpeg.ini儲存起來,然後上傳到/etc/php.d/目錄裡,重新啟動Apache之後,PHP就會自動載入它。您可以透過phpinfo()函式來查看ffmpeg-php有沒有正確載入。

引用URL : http://blog.comicparty.com/trackback.php?id=319

[搞搞影像大作戰 , TVParty Suite ] 24 二月, 2007 03:35

自從知道了Wii的Opera瀏覽器原來可以用來播放FLV影片後,米奇對架設播放FLV影片的網站的興趣便大增了。雖然有YouTube這個免費的FLV影片庫在,不過自己架一個YouTube式的網站可以自己控制影片的bitrate,又沒有檔案上限,也蠻好玩哩。

YouTube網站方便的地方之一是網上轉片自動搞定。要讓伺服器替您轉片,最著名的利器當然是ffmpeg了。不過早前已提過,透過yum來安裝的ffmpeg是不能將影片的聲音壓成MP3的,而FLV的音源卻使用MP3,所以在安裝ffmpeg之前,一定要先安裝也是很著名的MP3壓歌函式庫LAME,並要把它share出來,那麼ffmpeg才會懂得壓MP3。

另外,不知何故有很多壓製FLV的程式,包括ffmpeg在內都有個共同的Bug,就是沒有正確地將FLV的metadate存起來,令到壓出來的影片,小則沒有正確的片長資料,大則尺寸變了0 x 0 px,不得不解決一下。要為Linux的ffmpeg解決這個問題,還要安裝Ruby和用來編輯FLV檔的FLVTool2。

至於播片方面,米奇找到一個很精彩的網上播片程式Flash Media Player,功能齊全得令人意想不到。用它來架設前台無論觀眾或站長都會覺得好玩。

在接下來的幾篇文章,米奇就會研究怎樣架設這個私家YouTube伺服器,還會公開一套自己寫的簡單影片網站前後台架設套件TVParty Suite,讓大家架個實驗網站自己玩一下。在此之前,大家可以逛逛米奇的示範網站 - ミルキィ劇場,我在裡面放了好幾套精彩動畫啊。

TVParty Suite 示範網站 - ミルキィ劇場

引用URL : http://blog.comicparty.com/trackback.php?id=318

[搞搞影像大作戰 ] 15 一月, 2007 01:15

早前有朋友問米奇要搞個Streaming Server來在網絡播播自拍的影片是不是最好用Windows Server,米奇沒想多久就答是,因為Windows Media Service是Windows Server附送的服務。不過想來,其實Linux也有很多Streaming服務,例如Real,還有VideoLAN Client (簡稱VLC),不過Real要另裝那個大食播放程式才能看,所以米奇一向也不太喜歡Real,於是想來想去,又再找來那個怎麼學也學不會的VLC來試裝 一下。

講解VLC Streaming的中文網上文章實在不多,看了工頭的家這篇文章,總算為Linux裝上VLC。VLC自稱可以對應很多不同的codec和產生不同格式的串流,不過相較於Windows Media Service,用VLC來建立Streaming Server還真不夠親切,就算像工頭在另文中介紹的方法在XWindow介面裡面設定也好,如果不好好了解各個參數的用法,實在好難達成網上播放的目的。

透過VLC以Linux做Streaming Server

經過詳細閱讀官方文件和反覆測試之後,漸漸發覺VLC真是個好東西,它不單可以以MMS方式播放,如果用戶也是使用VLC觀看的話,還可以以HTTP、UDP和RTSP等方式來播放。例如要在網上播放MP4影片的話,只要用以下的指令就可以:

vlc -vvv -loop <MP4影片路徑> --sout '#standard{access=http,mux=ts,url=[<IP地址>]:<埠號>}' 

由於它有轉碼功能,所以甚至可以讀取任何影像檔來即時編碼播放出去,這就可以將很大的檔案以目標頻寬進行網上廣播。米奇在測試的時候,就以一套原本Data Rate有400多kbps的DivX AVI影片,直接轉碼後以256kbps播放出去:

vlc -vvv -loop /home/mickey/winter_garden_01.avi --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=256,ab=96}:standard{access=http,mux=ts,url=[<IP地址>]:1234}' 

要以VLC來作MMS播放,也是同樣的簡單,只要用以下的指令,就可以像Windows Media Service那樣,播放映片到Media Player去了:

 vlc -vvv -loop <WMV影片檔> --sout '#standard{access=mmsh,mux=ts,url=[<IP地址>]:<埠號>}}'

這某程度上比Windows Media Service還方便管理。米奇一直也在頭痛是否可以把播片的工作寫成script,那就可以設定cron job或at來定時執行,不用人手處理了。最重要的是,要達到這些目的,成本遠比Windows Server低得多。

本來VLC甚至可以直接將任何影片直接轉碼後以MMS方式播放出去,而不用事先將影片轉成wmv格式的,不過由於以yum來安裝的VLC沒有加入-enable-ffmpeg-mp3lame參數,令到它不能將音頻轉換成MP3,所以轉換之後以MMS來播放的影片會沒有聲音。要解決這問題,只有從最核心的部份開始,從ffmpeg開始一步一步的自行去編譯VLC了。

VLC還有好多有趣功能尚待米奇發掘,例如可以透過VLM (VideoLAN Manager)來管理定時廣播和達成VOD,當然還可以配合script來達到自製收費播片伺服器的效果了,不過這還是留待米奇日後有空再去研究好了...

引用URL : http://blog.comicparty.com/trackback.php?id=282

[賞談動漫 , 搞搞影像大作戰 ] 05 一月, 2007 01:41

因為沒銀両來一口氣買下Blu-Ray碟機和『Air BD-BOX』,也不想成為BD的炮灰,米奇沒有訂下『Air BD-BOX』。還以為會與BD-BOX特典DVD裡的新作OP絕緣,不過網絡世界卻似乎又再一次證明「勝在有心人」,網上出現了這個OP的下載點,米奇自然是不由分說下載回來一看了。

Air BR-BOX Opening BAir BR-BOX Opening BAir BR-BOX Opening B

由於網絡緩慢的關係,下載了一天多才完成。看看說明是1920x1080的x264片段,是Full Spec 1080p的高清級數,以米奇那部可愛小T2的級數和只有1600x1200解象度的屏幕,雖然畫質的確是超靚,但播起來就「窒到飛起」了。於是把心一橫,索性動手做個downgrade的720p版本來看,總比看定格畫好得多吧。

米奇今次用上最原始但也是質素最有保證的做法,就是以AviSynth來做frame server,將經過可變frame rate處理和以業界公認質素最高的Lanczos算法來縮小的片段,丟給支援MP3音源和可變frame rate的VirtualDubMod去轉換為較為普及的DivX格式AVI檔。先如下寫一個avs檔來設定好AviSynth:

air_op_1280.avs
  1. AVISource("\path\to\air_1920x1080_OP.avi")
  2. LoadPlugin("\path\to\AviSynth 2.5\plugins\itvfr.auf")
  3. ITVFR(ref="TOP",diMode=0,Debug=false)
  4. LanczosResize(1280,720)

把這個avs檔丟到VirtualDubMod的視窗裡去,然後在AviUtl的Compression裡選擇用DivX作壓縮codec,由於1280x720也算是高清,所以在DivX的設定頁選用了High Definition Profile,Bitrate一下子升到3000kbps,另外為了追求畫質,也選了用2 pass壓縮。最後選了fast recompress壓縮處理和設定好兩pass的批次任務後,就可以開始轉片了。卒之這3分06秒的片段,竟然花了一個多小時才轉換完成。不過畫質的確不錯,花多點時間也值得。

老實說,看過這OP之後是有點失望的,因為意境上實在不及原配,但大部份片段也是新作的,而且據說這OP是以HD來作mastering,所以比本篇內容畫質更高,所以也沒甚麼好投訴。不過也因為高清的原因,很多瑕疵都看得很清楚,高清對製作人來說真是要求很高哩。

 

引用URL : http://blog.comicparty.com/trackback.php?id=276

[搞搞影像大作戰 ] 27 八月, 2006 17:07

可能寬頻的頻寬愈來愈大了,最近要下載OVA或出了DVD的動畫時,最先找到的總是ISO。不是說DVD不好,一隻DVD才只有兩集片,不單欣賞起來挺麻煩,也佔用了很多地方。如果存成AVI檔的話,300MB左右已經有很好質素,而且一隻DVD就可以存18-20集,只有12-13集的片一片DVD就搞定,欣賞起來自然方便得多。

為了解決家中「核子反應堆(裝DVD的筒)」過多的問題,米奇開始去研究在質素和檔案大小平衡下把DVD壓成AVI的技巧。關於這樣的技術,五、六年前便已經有文章介紹,例如『PC DVD數位科技』網的這一篇。不過由於年代太久遠,有些連結已改變了,甚至部份軟件已大幅度改版了(例如DVD2AVI作者已經改而開發另一個轉換軟件DGMPGDec了),有修正的需要。

另外作為動畫迷,還有一些針對動畫片特有問題的對應措施:在日本,動畫片的Frame Rate原來是不停在改變的,OP和ED的frame rate是30fps,正片則是24fps,如果像『機神咆吼デモンベイン』就更連正片也不停地改變Frame Rate。

不幸的是,AVI是不支持可變Frame Rate的,不同Frame Rate的片硬要夾在一起,播起來自然不會順暢。要解決這個問題,很多轉片教學的做法都是教大家從30fps的片中每隔5frame抽去一frame,令全片都維持在24fps。不過對於完全主義的日本職人來說,這實在是不夠完美的做法。

日本職人早年就已經在推動另一種造法,就是為片段加入空frame(Null Frame)。原理是取24和30的最小公倍數120,在不同Frame Rate片段平均地加插空frame,以製成Frame Rate固定為120fps的影片。由於空Frame只是數位上的虛構影格,沒有實質的內容,所以不單看起來不會有閃爍的效果,檔案大小也幾乎跟正常影片沒有分別。

現在從日本下載回來的片,90%以上都是120fps的。米奇將在這「動畫DVD壓片研究所」裡推出的文章,都是針對DVD轉換120fps影片的。另外,由於米奇看動畫很少需要字幕,所以在字幕方面的知識可謂極端貧乏,所以這個研究所也不會介紹有關內容。如果您有意貢獻那方面的知識,歡迎聯絡米奇。

引用URL : http://blog.comicparty.com/trackback.php?id=237

«上一篇   1 2
Host & Maintance by ComicParty.com | 本網站內容由會員提供,不代表本網站立場
請尊重知識產權。如您發現本網站的內容侵犯您的著作權,請聯絡站長仲裁