2009年1月24日 星期六

[軟体] 用 XBox360 播放 XviD + 中文字幕 or RMVB 視訊的方法

+ WinMEnc_logo

TVersity + WinMEnc

不知道以前是哪個老師告訴我, 凡是要往前看 ... 為了美好的未來而努力.

直到年紀大了我才知道, 對於成年人來說, 只有美好的現在才是最重要的.及時行樂然後活在當下, 才能真正活的瀟灑與快樂.

張國榮, 梅豔芳, 倪敏然, 飯島愛等身邊熟悉的人事物漸漸的消失. 而爺爺的身體也每況愈下. 年輕時不曾想像或考慮的事. 無論接受與否, 都會從我的身上經過.

在我們這個年紀 (6 年級上下), 正首次經歷著熟悉的人物逐漸凋零,

我想 4 年級生可能正在體驗同輩的凋零, 真是不勝欷噓.

小時候

[凡是要往前看 ... 為了美好的未來而努力] 那套似乎並不適合用在我們這些人身上! 對我來說, 只有珍惜美好的現在才是最重要的.

我想我該珍惜我擁有的一切, 在他們還沒凋零前.... 我希望能體驗活在當下的感覺.


好吧! 來看看我是怎麼弄的 ....

最佳解:
若原先的 XviD 檔就有把字幕一起壓進去, 那直接把那個檔放在
MyVideo, 那麼 XBox360 可以直接透過 Media Player 11 或
TVersity 播放你的 XviD 檔. 新版的 XBox360韌體可以直接播放
XviD 串流, 不用讓你的電腦轉碼.

一般解: 轉換編碼格式,播放串流
Step 1: 先檢查 DirectVobSub 的字型是否為Default(1), 否則會出現亂

詳細作法如下:

a. 選擇右下角綠色 icon

DirectVob

b. 選擇字型

DirectVobSub_Font_1

c. 設定為 DEFAULT (1)

DirectVobSub_Font_2

Step 2: 轉換編碼方法有兩種:

On-the-fly:

利用 TVersity 做 transcoding, 使用這個方法前, 先看一下優缺點

缺點:
電腦計算能力要好, 否則撥到一半要等 buffer.
我的機器 (1.4G 筆電) 等 Buffer大約 10 秒. 還好 ^_^
優點:
不用等全部壓縮完才可以看.

詳細作法如下:
Step 1: 在 TVersity 中, 點選 Library tab

把 XviD 檔拉進 library.

如下所示: TVerity_Library_SingleFile2

Step 2: 因為該 avi 檔我們已經知道字幕沒有壓在一起, 所以
需要強制該檔案 always transcode,字幕與畫面組合重
新壓成 wmv 送給 XBox360 播放.
其間 Tversity 會自動開啟相同目錄的 srt 字幕檔播放.
(否則不會把 srt 字幕帶進來).

若你的 avi 檔影像中已經連字幕都壓進去了, 那麼就不用
transcode 了.

Always transcode 的設定如下:
在 Library tab 下, 點選 [Edit Item] -> [Always]

然後 [Update]

圖示如下:

TVerity_Library_Always_Transcode


注意 1: XBox360 第一次會出現網路中斷, 不要緊.
這時候 TVersity 已經開始轉碼, 只是資料還沒送出來.
等 20 秒再試一次即可.

注意 2: 當 XBox360 停止時, TVersity 依然會繼續 transcode,
這是因為 XBox360 不會送出 stop 命令出來的原因
解決方法:
1. 在 XBox360 端選擇另一個比較小的檔案播放,
使得檔案撥完, TVersity 自動停止轉碼.
2. 另一個方法就是直接到電腦端重新啟動 server

Off-line:

用工具 (ex: WinMEnc) 把字幕與 xvid 影像重新壓一次, 使用這
方法前, 先看一下優缺點

缺點:
要先等電腦全部壓完才能播放 或 一個完整的解碼編碼
(fully transcoded) 流程完成, 否則 XBox360 會出現
不支援格式.
優點:
1. 比 On-the-fly 節省 CPU 資源, 讓等級比較差的電腦,
也可以讓 XBox360 播放順暢的影像
2. 任何 DivX Player 都可以播放有中文字幕的 XviD 影片
(因為字幕已經包含在影像中了)


使用 WinEnc 做重新編碼, 詳細的作法

Step 1: 編碼前先用 Media Player Classic 檢查中文是否為亂碼
Step 2: [按 Add Files ...] 選擇要重新編碼的檔案.

你可以選擇 avi 或者是 DVD 中的 vob 檔重新壓縮.
下面是 vob 的例子.

WinEnc_SelectFile

如果你的來源是 DVD 光碟片, 那請選擇
[DVD] -> 選擇 [Drive] -> [Add DVD to Batch]

如下圖所示:

WinEnc_DVD

Step 3: 在 Video tab 裡, 選 Video Codec: XviD

WinEnc_XviD2


Step 4: 在 Subtitle tab 裡, 選擇字幕種類. 下面是 srt 的例子.

注意: 你的字幕檔應該與 avi 檔名稱相同,而且一個是 avi
另一個是 srt.

ex:

Filename.avi
Filename.srt
(如果你的字幕檔名為 Filename.avi.srt, 那麼 WinMEnc 將不會把字幕放進來, 這點與 Media Player Classic 不一樣, 請注意)

WinEnc_SubTitle

Step 5:
Enjoy

by Jing

5 則留言:

  1. 其實阿~我總覺得這種方式(也是唯一方式)是種脫褲子放屁的方法(沒有攻擊的意思)

    為了要讓360能撥放影片結果動用了電腦作再編碼的動作,PS3的DLNA也是一樣脫褲子放屁。這樣豈不是很不環保嗎!?

    我的建議是拿電視上的D-SUB直接接上電腦調到1080的解析度直接撥放,這樣什麼格式都可以撥,僅作一次解碼。

    恩~用電腦作media center是最棒的~

    回覆刪除
  2. 謝謝你的回應,

    哈. "脫褲子放屁" 說的好,

    您所說:從房間裡面把機器搬到電視旁邊. 我都忘了有這個終極的解決方法.

    如果我的 XBox360 可以處理 srt 字幕或者是電視支援網路那就好了. 我就不用搬電腦了或者是用這種不環保的方法.

    XBox360 韌體更新後,雖然可以直接處理 XviD 串流, 可是無法直接處理字幕是一個問題.

    既然 XBox360 都已經接到電視上了, 而且又能經由網路讀取遠端資料, 最後卻因為無法處理字幕要重新壓縮, 而讓我們最後還要搬電腦. 微軟是應該要注意這個問題了.

    希望我在微軟工作, ..., 我就能針對這個問題,一個小程式解決字幕與環保的問題.

    回覆刪除
  3. 你好,這真是一個非常好的方法,但是我在always transcode ,並依照設定,在DirectVobSub 的字型為Default(1),結果在XBOX 360 上看到的仍是方塊亂碼,不是是否有遇過此類問題?

    回覆刪除
  4. 首先在你的電腦上播放一定要可以看到正常的字幕, 在 XBox360 才會顯示正常的字幕.

    如果你的設定已經是 Default(1), 還是出現亂碼, 如果是我的電腦的話, 那麼我會試試下面的方法

    Step 1: 請先設定為其他選項, 存檔離開
    Step 2: 再開啟重新設定為 Default(1), 存檔離開
    Step 3: 開啟 Media Player Classic 播放檢查是否還是亂碼

    祝你成功

    回覆刪除
  5. 谢谢,我晚上回去试试。
    一直因为不能加载中文字幕而烦恼。

    回覆刪除