FLV 小檔案

FLV 家族實在有點複雜, 首先它的源起是 Adobe 原來的 SWF 只是為了動畫 (像是前幾年流行的賤兔 SWF), 但是放 video 就不行了, 因此便有 FLV 這個新的 container 產生.

第一版的 FLV, video 壓縮是 H.263 的變形, 又叫 Sorenson Park. 又有人稱它為 FLV1的 video format. 這個應該就是 Youtube 在用的 video format.

Adobe Flash Player 8 的 video 改成了 On2 公司的 TrueMotion VP6 .又有人稱它為 FLV4 的 video. On2 後來出了 VP7, 但不知道誰在用? 

Note> On2 VP6:中國土豆網在用.

Adobe Flash Player 9 的 video 改成了 H.264 (video) 搭配 AAC (audio).

如果從 Youtube 抓回來的檔案, 它的 audio 多數是 MP3 , 但如果是自製的 FLV 檔, audio 可能是 NellyMoser. 另外也有 ADPCM 或 PCM.

使用 FLV 的網站包括: YouTube, Google Video, Reuters.com, Yahoo! Video, 但不知道每一家用的壓縮技術是否一樣?

從 WIKI 抓來這個表:

http://en.wikipedia.org/wiki/Flash_Video

File Formats

Because of restriction in the .flv format, Adobe is moving to a new file format, listed below. Flash player does not however, check the extension of the file, but rather looks inside the file to detect which format it is.

File Extension Mime Type Description
.f4v video/mp4 Video for Adobe Flash Player
.f4p video/mp4 Protected Video for Adobe Flash Player
.f4a audio/mp4 Audio for Adobe Flash Player
.f4b audio/mp4 Audio Book for Adobe Flash Player

These file formats are recommend formats for H.264/AAC support.

Codec support of FLV

Codecs Support
H.264 Yes
VP6 Yes
Xvid No
Divx No
Sorenson H.263 Yes

 

WLAN 架站小心得

分享一下很小的技巧, 就是如何用內網的 IP 透過 wireless LAN 架站.

最基本的架站方式, 當然就是有一個固定 IP.

其次, 就是用一個浮動 IP, 但是每次上網就到免費的動態 DNS 網站註冊, 這樣別人還是可以用 URL 找到你架的站的 IP. 當然, 我們要選免費的服務才不會吃虧.

如果 server 放在自己的內網, 透過 AP/Gateway 的 NAT 轉過 IP 之後, 我們要怎麼讓外面的人透過 URL 來 access 我們的網站呢?  我試了一下我那不好用的 gateway, 就是要在安裝 HTTPD 的時候, 把內網的 “固定 IP", 例如 192.168.1.1 指定給 HTTPD.

假設我們只安裝 HTTPD, 那麼就在 gateway 裡面把 port 80 forward 到內網的 192.168.1.1. 這樣一來, 外面的人只要看到 URL, 就會自動透過外面的 DNS, 找到我們用來上網的固定 IP,  接著 port 80 的 packet 也會自動送到我們內網 192.168.1.1 的那台 HTTPD 主機去.

那麼, NAT 後面的內網怎麼辦呢? 192.168.1.2 平平在內網, 但port forwarding 就用不到了. 這時候, 把 DMZ 裡面設定成剛才的 192.168.1.1, 這樣內網就可以直接看到我們自己做的網站. 若不設定 DMZ 非軍事區, 那麼只會看見 gateway 的首頁, 那還蠻悶的….

花了我一兩個小時的研究, 我終於搞定了. 但是要架什麼站, 我都還沒想好. 這一切都是我貪小便宜去註冊了 cash.idv.tw 網域所帶來的後遺症, 哈哈!

FMEA 小檔案

我們公司有一家客戶, 他們到我們公司來看過之後, 建議我們要用 FMEA. 嗯, 什麼是 FMEA 呢? 當然要做一點功課. 它的歷史, 大家到 WIKI 去看就知道了. 我只想講一下那是做甚麼的?

它是一種品質管理的手法, 用一個風險優先數 RPN (Risk Priority Number) 來描述問題的嚴重性, 愈嚴重的問題, 當然要優先解決.

RPN = 嚴重度(S) ×發生率(O) ×檢知度(D).

O 有時候用 P 代替. P 表示 probability.

當這三個值 normalize 到 1~10. RPN 就會落在 1~1000.

首先我們要建立一張 FMEA 表格, 這個表格中要包括系統的框圖 (block diagram).

接著將系統展開為子系統, 函數與元件.

system –> sub-system –> function –> component

對每一個項目 (比方說 component), 列出 failure mode. 因為這個 componet 也有可能導致另一個 componet 發生問題, 因此這些 failure mode 都要被列舉出來.

有了 failure mode 之後, 接者描述 failure mode 會產生哪些 failure effect.Failure effect 決定錯誤的嚴重性 S. 比方說跌倒是 3, 中風是 7.

每個 Failure mode 可能有不同的原因 (failure cause), 每一個 failure cause 都會得到一個機率的評價 P.1 表示不太可能, 10 表示非常可能. 比方說老王可能跌倒也可能中風, 兩個 cause 的機率不同.

錯誤可以在某個 control process 被檢測出來, 其可能性是 D. 比方說老王在游泳, 就不可能會跌倒, 但是還是有可能中風.

依據 DOS 或 DPS 可以求出 RPN. RPN 表示經過某個步驟 (control process), 會以 P/O 的機率出現 failure mode, 而此 failure mode 會以 D 的機率, 發生 S 這麼嚴重的問題.

當然, 這裡只能判斷問題的嚴重程度, 使我們理智地優先選擇要解決某個 failure cause.

至於怎麼去做, 那就是另一件事了. 老王! 加油!

[註]

Failure mode: 指錯誤呈現的狀況

Failure effect: 指錯誤造成的影響

Failure casue: 錯誤的原因

Deep Colors 小檔案

又是因為客戶的需求, 我得了解一下 deep colors. 按照 Wiki 的說法, 24 bits 是 true color, 30/36/48 bits 是 deep color. 因為表達顏色的 bit 數增加, 色塊的問題就可以改善 (所謂 color banding 的問題)

有了 deep color, 當然也就能夠有更大的色彩空間. 原來的 RGB space 就可以擴充到 XvYCC space (extended gamut YCC). 亦即 8 bits 的 value 從1 到 254 都可以用. 這也是 HDTV 所支援的色彩空間. 在 ATV 的時代, RGB 主要是值域為 16-235, 以避免 undershoot 或是 overshoot. 所以可用的顏色甚至還不到 256x256x256 那麼多.

當然 16 bits 的灰階有沒有人看得出來呢? 據說還是頗有爭議的. 在技術面, video 送出人眼無法區別的深淺度, audio 送出幾乎沒有人可以聽到的頻率 192KHz 與 24 bits value. 這個世界, 真的是瘋過頭了. 會不會以後又流行回去 true color, CD quality music, stereo speaker 呢? 至於 high resolition 的 HDTV, 我想應該還是要的.

Samba server 設定的小 memo

我們公司的 server 前幾天快爆了, 於是我就加了一顆硬碟上去. 由於排線有點小問題, 拆裝硬碟之後, 大家密集使用的 server, 突然就變得不能開機了. 雖然 server 上沒有甚麼重要的資料, 但是我們工讀生的 script 都在上面, 萬一她那邊不能 release code 了, 誰都幫不上忙. 我們緊張了一陣子, 還好把排線換掉之後, 每一顆硬碟的內容都在.

電腦不會動, 當然就是重灌囉! 不幸的是, 我們的 Fedora 版本太舊了, 安裝上去之後, telnet, samba, nfs 統統不會動了, 在本機上選 upgrade, service 也統統都沒反應. 因此我把手動安裝的 samba 的步驟稍微整理一下, 以備不時之需. 其實我覺得更應該記下來的是, 我們同事 hack 的方法, 竟然都不用啟動 smb 耶, 而是依序執行某 3 隻程式也行. 我們先講正統的做法吧!

1. 檢查 samba 的 package 在不在?

rpm -qa samba

沒看到印東西, 那麼 /etc/init.d 下面應該沒有smb 這隻程式.

2. 安裝 yam -y install samba

接者 samba 就被安裝好了, 但是還沒有啟動.

3. 加 user, vi /etc/samba/smb.conf

檔案的上半部有一些 global rule, 開得鬆一點, 底下的目錄就隨便都可以進得去.

4. 測試 testparm

如果有問題會 complain.

5. 加 user, smbpasswd -a username

這個程式會要求輸入 password, 並且再 confirm 一次

值得留意的地方是, smbpasswd 是一個執行檔, 但是 /etc/samba/smbpasswd 底下真的有一個同名的檔案是放 password 的實體位置.

6. 可以省略的部分

6.0 其實連 5 都可以省略, 假如大家開公用目錄來用, 就不要分那麼細了.

6.1 防火牆設置,  vi /etc/sysconfig/iptables

6.2 重新啟動 iptable, /etc/rc.d/init.d/iptables restart

6.3 將 samba 設為自動啟動, chkconfig smb on

6.4 確認自動啟動的狀態, chkconfig –list smb

7. 啟動 samba server,  /etc/init.d/smb start

系統會印出

starting smb service: [OK]

starting nmb service: [OK]

8. 若不按照上面 7 的步驟, 硬是執行 smbd, nmbd, winbinbd 也是有同樣的效果. 而且不用 smb restart  也可以對 smb.conf 立刻生效喔! 這就是我們同事的最精簡 hack 版.

若慎重一點的話, 要按照下面的步驟.

以下抄襲自:由 jengyic 發表於 週六 6月 03, 2006 5:22 pm,

網址為: http://www.daemon-land.idv.tw/phpBB3/viewtopic.php?f=18&t=143

安裝 samba

1.cd /usr/ports/net/samba3

make install clean

options for samba

不修改預設值,僅多勾選 AD Support 選項。

2.cp /usr/local/etc/smb.conf.default /usr/local/etc/smb.conf

3.開機時啟動

(1)察看 samba.sh 內容,寫入 samba_enable="YES"

(2)寫入
smbd、nmbd、winbindd

smbd_enable="YES"

smbd_flags="-D"

nmbd_enable="YES"

nmbd_flags="-D"

winbindd_Enable="YES"

winbindd_flags=""

inetd_enable="YES"

4.使用 swat 管理

vi /etc/inetd.conf

將 swat 敘述前的 # 符號刪除,重新啟動 inetd

/etc/rc.d/inetd restart

開啟瀏覽器,輸入 http://FQDN:901

註1:

inetd.conf

# Enable the following two entries to enable samba startup from inetd
# (from the Samba documentation). Enable the third entry to enable the swat
# samba configuration tool.
#
#netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
#netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd
#swat stream tcp nowait/400 root /usr/local/sbin/swat swat

前兩行表示如果要在開機的時候,自 inetd 啟動 samba ,需要將 netbios* 前的 # 符號刪除;如果要使用第三方 samba 設定工具(指的是 swat ),就需要將 swat 前的 # 符號刪除。

但是,發現系統主機前會不斷出現訊息r

….inetd[1228]: netbios-ssn/tcp: bind: Address already in use
….inetd[1228]: netbios-ns/udp: bind: Address already in use

最後,將 /etc/inetd.conf 中的 netbios* 前的 # 符號填上,就不再出現;猜測可能是因為先前寫入 /etc/rc.conf 檔案中的 smbd、nmbd 兩者已經在開機的過程中啟動,而後 inetd 要再啟動 smbd、nmbd 時,便出現已使用的訊息。

註2:

會了能夠在網路上看見中文檔案名稱的分享資料夾,需要在 smb.cond 檔案中加入 unix charset = big5 (發現僅在 xp 中見到中文僅需修改 big5 即可,但在 98 會呈現空白,需再添加 dos charset = 0xb9 ,由 CP850 修改為 0xb9 ,方可辨識中文)(亦可在 swat 中修改);而安全性設定則設為 user 即可。

註3:samba 的使用者帳號必須是存在系統上的帳號。