奇怪的問題,無法理解!?

家裡有三台 Mac,分別是 Mac Mini, iMac and Macbook
但 Mac Mini 最近發生了一件怪事:

用 iTunes 在看朋友分享的『棋靈王』卡通時,
突然發現『只有影像卻沒有聲音』的現象,
可是以前看過啊,沒問題啊….
且看其他影片卻是正常,
反覆實驗,確認只有『棋靈王』系列影片(全集)有問題,
其他的影片完全正常!

難道是,檔案故障?
立刻將檔案複製到其他電腦 iMac and Macbook
結果一切正常:檔案沒壞!

在 Mac Mini 反覆做了一些實驗:
1. Safari 看 Youtube,影像聲音正常。
2. 用 Quicktime 看影片, 影像聲音正常。
3. 用 iTunes 看其他影片,影像聲音正常。
4. 用 iTunes 看『棋靈王』,只有影像,沒有聲音。
5. iTunes 砍掉重裝,沒用!
6. 用 QuickTime 看『棋靈王』,一樣,只有影像,沒有聲音。
7. 用 VLC 看『棋靈王』,一樣,只有影像,沒有聲音。
8. 用 MPlayer 看『棋靈王』,一樣,只有影像,沒有聲音。
9. 磁碟工具程式->修復權限,沒用!

難掉是 Mac OS 系統內部 某個 Audio Codec 掛了,
而這 Audio Codec 恰巧只有『棋靈王』用到?
這麼巧?
在 Google 不到有用的資訊下,
只好使出絕招:OS重灌!

一個半小時後…
暈倒!完全沒用,結果一樣!
WHY?WHY?WHY?WHY?

難道我的 Mac Mini 被 佐為 附身了?

就當我看著無聲影片,絕望沮喪之時,
手一不小心碰到外接喇叭的音源線,
突然,聲音出現了!!!
好像是,音源線接頭 與 MacMini 的耳機插孔 接觸不良,
碰一下 OK,再碰一下 聲音又會消失

不對!
要真是真是『音源線接頭 與 MacMini 的耳機插孔 接觸不良』
怎會只有『棋靈王』會有問題,其他的都OK
奇怪,不合理啊…..

將『音源線接頭』拔下,用橡皮擦,用力的擦一擦,
再裝回去後,『棋靈王』影音 就 穩定正常了。

嗯,很怪,得好好研究研究了…..

影片字幕檔的編碼

在觀看友人分享的影片時,
最常遇到的麻煩事:『字幕都是亂碼!』
原因十之八九都是編碼問題,
由於友人大都是 Windows 環境,
所以文字檔大都沿用 BIG5 編碼,
可是 BIG5 在 Mac OS 下卻是行不通的,
一個簡單指令可以迅速完成編碼轉換:

$ iconv -f BIG5-2003 -t UTF-8 BIG5.srt > UTF8.srt

自動影片分割

因為要上傳影片到 Youtube
必須將影片分割成數個不超過10分鐘長度的小片段
可是在 Mac OS X 下好像沒有好用的軟體
可又不想用 Quicktime 來一個一個手動分割
所以參考了一些資料後
寫了一個 AppleScript
File name : splite.scpt

(*
    Splite Quicktime Movie into equally sized for Youtube
    YF Chen
    yfc@yfchen.com
*)

    set sourceFile to choose file with prompt "choose video file as source"
    set theFolder to (choose folder with prompt "Choose a folder for the slices:") as text

    tell application "Finder"
        my splitteVideo(sourceFile, theFolder)
    end tell

    on splitteVideo(sourceFile, theFolder)
    
    tell application "QuickTime Player 7"
        activate
        try
            open sourceFile
            on error
            display dialog "Open a movie first" buttons ["OK"] with title "Error"
            return
        end try

        -- get active movie
        set sourceDoc to document 1
        set theDuration to duration of sourceDoc
        set theTitle to name of sourceDoc
        set DurOverlap to 2 -- 2sec overlaping
        set DurScal to (90 * 1000)

        -- calculate segments
        set DurCut to (9 * 60) -- 9 min
        set DurDoc to (duration of sourceDoc) / DurScal
        set NumOfSeg to DurDoc div DurCut

        -- loop each segment
        repeat with i from 0 to NumOfSeg
            -- set segment selection
            set durStart to (i * DurCut) * DurScal
            set durEnd to ((i + 1) * DurCut + DurOverlap) * DurScal
            if durEnd > theDuration then
                set durEnd to theDuration
            end if
            set selection start of sourceDoc to durStart
            set selection end of sourceDoc to durEnd
            -- copy selection into new movie
            copy sourceDoc
            set newdoc to make new document
            paste newdoc
            set theSlice to i as integer as string
            set theFile to (theTitle & "_" & theSlice) & ".mov" as string
            set theFile_full to (theFolder & theFile) as string
            try
                save self contained newdoc in theFile_full
            end try
            close document theFile
        end repeat

        close sourceDoc
        quit

    end tell

end splitteVideo