[教學] 剪接/合拼/分割 Thomson F500(8仔/同洲 oem)機頂盒錄影節目

本帖最後由 C_Law 於 2011-5-21 22:45 編輯

2011-05-21,6# 新增合拼及分割教學。

初次在這裡發帖,請多多指教。


剪接教學
我部機頂盒是 Thomson F500,已用了一年多,硬碟也接近錄滿,唯有清洗一些不再看的舊錄影節目。除此之外,對於要保留的節目,雖然機頂盒本身有提供剪接功能,但所謂的剪接只是"假剪接",並非真正將被剪去的片段從硬碟刪除,只不過紀錄剪接位置,重播時跳過被剪去的位置,所以我想,如果能夠真正把要剪去的片段刪除,就可以再空出超過 25% 硬碟空間(通常每小時節目約有 15 分鐘廣告時間,加上預校錄影時會在頭尾多錄兩分鐘,所以浪費了超過 25% 空間)。

以下是我試出來的剪接方法,剪接後的節目仍然保留所有聲道及字幕,而且可以放回機頂盒播放。聽聞這部 Thomson F500 是 8 仔/同洲 oem 機,可能我這個剪接方法也適用於同類的 oem 機(不過我無其它機頂盒去試)。我的剪接方法分為 4 個步驟:
1.備份檔案
2.剪接
3.修改節目資訊
4.分割

1.備份檔案
這部機頂盒的硬碟[資料夾]及檔案結構如下:
[PVR]
 ├[PVRxxxxx]┬DATA.ifo、mystream.dat
 │     └[~DATA]─DATA.idx、DATA00.trp……
 │
 其它[PVRxxxxx]

每個錄影節目都放在一個 PVRxxxxxx 資料夾裡(xxxxx 是 5 位 16 進制數字),當中的 mystream.dat 是這個節目的資訊檔,而子資夾 ~DATA 入面的 DATA00.trp 就是實際的影音檔,如果錄影時間長,會再有 DATA01.trp、DATA02.trp……。

如果要剪接的節目曾經在機頂盒做過"假剪接",先在機頂盒把剪接還原。將機頂盒硬碟接駁到電腦,我建議把需要剪接的節目所屬的整個 PVRxxxxx 資料夾複製到電腦內的 NTFS 格式硬碟,一來剪接時會快過將經 USB 讀取機項盒硬碟內的檔案,二來萬一出錯,都可以將未修改過的備份檔抄回去。

2.剪接
軟件:Smart Cutter for DV and DVB v.1.3.8f
http://www.fame-ring.com/smart_cutter.html
http://www.fame-ring.com/smart.cutter.rar
我是用 Portable 版本,下載後無需安裝,只要解壓到一個新資料夾就可以使用。
sc.png

(這是收費軟件,如果未輸入注冊碼,每個剪接位都會被加插一格水印。不過 google 一下都應該可以找到注冊碼)

開啟 smart.portable.exe,按 OPEN 開啟電腦硬碟內的 DATA00.trp。

拉動時間軸找出一段節目的開始位置(要保留的片段),按中間的一格後按 NEW START POINT。以同一方法找出結束位置後按 NEW END POINT。然後按 add list。

以相同方法找出每一段要保留的片段的開始及結束位置。

如果是長時間錄影的節目,機頂盒錄影時已分開為多個 DATAxx.trp,按 Next 會順號碼開啟下一個 DATAxx.trp。也可以按 OPEN 手動選擇下一個檔案。

如果打算剪接後放回機頂盒播放,由於這部機頂盒有時會播不到最後的幾秒到十幾秒,所以我建議設定最後一個片段的時候,將結束位置再推遲多廿秒,確保放回機頂盒播放時不會看不到結尾。

記低右上角 Result Point 最後一個片段的結束時間(不要理最後的 3 位 ms),這是剪接後的節目片長時間,以備第 3 步修改節目資訊檔時使用。

最後按 link(方格變黃色)及 Record List!,輸入新檔名後便開始進行剪接。我建議將輸出檔以 edited 為名存放在電腦硬碟裡,剪接後的新檔就是 edited.trp.12.trp。

以一個片長 1h00m44s、1.69GiB 的明珠台節目為例,剪接所用的時間大約 3 分鐘。剪去廣告後的片長是 0h42m24s,新檔的體積只剩下 1.16GiB,只是原來的大約 70%!如果要剪接高清翡翠台的節目,由於檔案體積比較大,會用更長時間。

如果剪接後不打算放回機頂盒裡播放(例如目的是在電腦播放、轉換其它格式、轉做 DVD……等等),做到這裡已可完工。

3.修改節目資訊檔
軟件:HexEdit(freeware)
http://www.physics.ohio-state.edu/~prewett/hexedit/
http://www.physics.ohio-state.edu/~prewett/hexedit/hexedit.exe
同樣是免安裝,下載後即可直接執行 hexedit.exe。
he.png

先將第 2 步記低的剪接後片長時間轉為秒,再轉換為 16 進制(可以用 Windows 內置的小算盤)。例如以上我用來做示範的節目,剪接後片長是 0h42m24s = 2544s = 09f0(hex),如果不足 100(hex) 要在前面加 00,例如 ff(hex) 要改為 00ff(hex)。如果在第 2 步沒記低片長時間,可再用 Smart Cutter 打開已剪接的新檔案,左上角的 Len(sec)就是片長時間(只要整數,不用理小數點後的數字)。

用 HexEdit 開啟機頂盒硬碟內的 mystream.dat(小心看清楚資料夾名 PVRxxxxx 的 5 位 16 進數字,不要開錯其它節目的資訊檔),如圖所示,更改屬於時間長度的 2 byte(以 00 開始計,位置就是 12~13),即是將本來的 0e 3c 改為已剪接 09 f0。如有需要,也可更改其它資料,例如位置 90(hex) 開始是節目名,每字 2 byte,編碼是 hexadecimal code points 的 Unicode,節目名以連續兩個 00 00 完結(電視台名都一樣)。有時 EPG 的節目名太長,例如加入廣告讚助名,可以在這裡修改。以下網址可把文字/Unicode 互相轉換:
http://rishida.net/tools/conversion/

完成修改後,按 File→Save as 覆蓋原來的 mystream.dat。

4.分割
軟件:Free File Splitter v5.0.1189(freeware)
http://www.filesplitter.org/
http://www.filesplitter.org/Free-File-Splitter-v5.0.1189.exe
同樣是免安裝,下載後即可直接執行 Free-File-Splitter-v5.0.1189.exe。
fs.png

Right click 剪接後的 edited.trp.12.trp→內容,查看它的檔案大小(Byte),如果大過 2146893824(很怪的數字,差少少不到 2GiB),就要把它分割。如果不足或等於這數字,就不用分割,直接將 edit.trp.12.trp 抄到硬碟的 ~DATA 資料夾(小心看清楚 PVRxxxxx 的 5 位 16 進數字,不要抄錯位置)。

執行 File Splitter,將 Source file 選擇為已剪接的 edited.trp.12.trp,Destination folder 選擇為機頂盒硬碟相關的 ~DATA 資料夾(小心看清楚 PVRxxxxx 的 5 位 16 進數字,不要選錯位置),然後在 Size of a chunk 中以人手輸入 2146893824,以及將單位改為 Bytes,之後就可以按 Split 開始進行分割。以一個原本約 2.4GiB 的檔案為例,大約需要 3 分鐘。分割後的檔名會是 edited.trp.12.trp.chunkxxx,xxx 是由 001 開始的三位數字。

刪除機頂盒內硬碟內的 DATAxx.trp(xx 是雙位數字),然後將所有 edited.* 依次序改名為 DATAxx.trp(xx 由 00 開始)。

之後就可以將機頂盒硬碟接回機頂盒,嘗試開啟這節目,如果能正確播放就可以刪除電腦硬碟內的備份檔案。

總結
我試過以這方法剪接 11、16、81、84、85 台的錄影節目,當中以 TVB 台的效果最好,原來的廣告位置,經剪接後可說是看不出有被剪接過,有時翡翠台的電視劇在廣告前後會有幾句重複的對白,如果細心選擇剪接位置,甚至可以連重複的對白都剪接好。

但 ATV 台的節目就比較差,因為在廣告前後出現的那個節目名畫面,有時會同節目畫面有一兩格互相 fade in/out 重疊,而且這節目名畫面有背景音樂,連聲音都重疊,所以難以做出完美的剪接。

這方法還有一個缺點有待解決。如果錄影時間長,機頂盒原先已分開 DATA00.trp、DATA01.trp……多個檔案,經剪接後,播到原本每個 DATAxx.trp 之間的接駁位都會輕微窒一窒。

順帶一提,在電腦用 DVB Viewer 錄出來的 *.ts 檔,也可以用 Smart Cutter 做剪接,剪接後仍能保留所有字幕及聲道。

雖然自己不是用這幾款機頂盒,但在這篇教學中亦獲益良多。

TOP

好文已save~

TOP

好似幾正噉喎

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

本帖最後由 C_Law 於 2011-5-21 23:21 編輯

繼上次的剪接教學,今次再寫一篇合拼/分割教學,由於方法跟剪接大同小異,所以附加到剪接教學之下,不另外開新帖。


合拼教學
所謂合拼是要將多個從同一個電視台但本來是分開錄影的節目(例如電視連續劇)合拼成一個節目,合拼後可在機頂盒裡一氣呵成的播放,無需每看完一集後再到硬碟目錄找下一集,方便"煲劇"。我的合拼方法分為以下五個步驟:
一. 備份檔案
二. 剪接及合拼
三. 修改節目資訊
四. 分割
五. 複製時間搜索檔

一. 備份檔案
同 1# 的第 1 步備份檔案一樣,如果要合拼的節目曾經在機頂盒做過"假剪接",請先在機頂盒把剪接還原。

假設要合拼兩個節目,它們本來分別存放在 PVR 資料夾下的 PVRxxxxx 及 PVRyyyyy 資料夾裡,將機頂盒硬碟接駁到電腦後,首先在機頂盒硬碟的根目錄新增一個名為 PVRbackup 的資料夾,然後將 PVR 下的 PVRxxxxx 及 PVRyyyyy 整個資料夾移動到 PVRbackup(由於只是在同一個硬碟機 partition 內移動,所以應該差不多即時完成移動),再在 PVR 資料夾下新增一個 PVRzzzzz 資料夾(zzzzz 是 5 位 16 進制數字,只要不是跟機頂盒內已有的資料夾撞名就可以)以及在它之下新增一個 ~DATA 子資料夾,新增及移動資料夾後的架構如下:

機頂盒硬碟
 │
 ├[PVR]
 │ │
 │ 其它[PVR*****]
 │ │  └[~DATA]
 │ │
 │ └[PVRzzzzz]   ←新增的資料夾─┬合拼後的新節目存放位置
 │    └[~DATA]  ←新增的資料夾─┘
 │
 └[PVRbackup]     ←新增的備份資料夾
   │
   ├[PVRxxxxx]   ←┬從[PVR]移動過來(要合拼的第一個節目)
   │  └[~DATA]  ←┘
   │
   └[PVRyyyyy]   ←┬從[PVR]移動過來(要合拼的第二個節目)
      └[~DATA]  ←┘

最後將 PVRxxxxx 及 PVRyyyyy 內的 mystream.dat 改名為 mystream.dat.old(雖然機頂盒錄影新節目時只會在 PVR 下開新的 PVR***** 資料夾,但原來當機頂盒開啟硬碟目錄時會搜尋整個硬碟內的所有 mystream.dat,即使已被搬遷到 PVR 資料夾以外的節目,仍然會出現在目錄中,所以要改名)。

二. 剪接及合拼
同 1# 的第 2 步剪接一樣,執行 smart.portable.exe,先設定好第一個節目 PVRxxxxx 的 ~DATA 資料夾內所有 DATAxx.trp 的剪接點。然後按 Open 開啟第二個節目 PVRyyyyy 的 ~DATA 資料夾內的 DATAxx.trp 繼續設定第二個節目的剪接點。如有更多節目要合拼,也是以相同方法繼續加上去。

我在 1# 有提過,設定最後一個節目的最後一個片段時,應將結束時間推遲 20 秒,以免放回機頂盒播放時看不到結尾。

設定完所有節目的剪接點後,記低右上角 Result Point 最後一個片段的結束時間(不要理最後的 3 位 ms),這是剪接及合拼後的節目片長時間,以備第 3 步修改節目資訊檔時使用。

最後按 link(方格變黃色)及 Record List!,輸入新檔名後便開始進行剪接及合拼。由於要將多個節目合拼,合拼後的檔案體積將會很大,所以必需儲存到電腦的 NTFS 格式硬碟,我建議以 edited 為名存檔,完成後的檔案名是 edited.trp.12.trp。

三. 修改節目資訊
同 #1 的第 3 步修改節目資訊一樣,先將上一步記低片長時間轉為秒,再轉為 16 進制。

用 HexEdit 開啟第一個節目 PVRxxxxx 的 mystream.dat.old 更改片長時間(以 00 開始計,位置是 12~13)。如有需要可更改節目名,詳情可參考 1# 的第 3 步,但注意不要用太長的節目名,以免錯誤覆蓋後面的其它資訊。

最後按 File→Save as 以 mystream.dat 為名存檔到 PVR\PVRzzzzz 資料夾裡(小心看清楚 5 位 16 進數字 zzzzz,不要錯誤覆蓋其它節目的資訊檔)。

四. 分割
同 #1 的第 4 步分割一樣,如果 edited.trp.12.trp 的體積不足或等於 2146893824 Byte,就直接把它複製到 PVR\PVRzzzzz\~DATA 資料夾裡(小心看清楚 5 位 16 進數字 zzzzz)。如果它的體積大過這數字,就要用 File Splitter 將它分割並存檔到 PVR\PVRzzzzz\~DATA 資料夾裡(小心看清楚 5 位 16 進數字 zzzzz)。

最後按次序將 PVR\PVRzzzzz\~DATA 資料夾內的所有 edited.* 改名為 DATAxx.trp(xx 由 00 開始)。

五. 複製時間搜索檔
這是專為合拼需要而新增的一個步驟。在 1# 的第 1 步備份檔案中提到每個錄影節目資料夾內的各個檔案和子資料夾,當中的 DATA.ifo 及 DATA.idx 是至今都沒有講過它們的用途。雖然我看不懂這兩個檔案的內容,但從網上爬文所知,這部機頂盒要靠這兩個檔案進行前後搜畫及跳躍,所以我把它們稱作時間搜索檔。由於要將多個節目合拼,合拼後的總片長會長過原來個別節目的片長,因此原來的 DATA.ifo 及 DATA.idx 已不足應用。例如兩個連廣告原本各自有 60 分鐘片長的節目,剪去廣告及合拼後的總片長是 90 分鐘,如果用舊的 DATA.ifo 及 DATA.idx,播放合拼後的新節目時,只有在最初的 60 分鐘範圍可以進行搜畫,播到 60 分鐘後就只能作普通播放,或是會突然停下來。

為解決這問題,可以從其它錄影節目借用這兩個檔案,只要是同一個電視台錄出來的節目,而且片長是長過合拼節目的總片長,就可以借過來用。如果從未試過長時間錄影,可以找個不用錄影其它節目的時間故意進行一次長時間錄影(例如晚上睡前開始錄影,早上起床後才停步,不過緊記要設定機頂盒錄影時不要按 EPG 自動分割節目),錄完後備份這兩個檔案並改名為 xx.DATA.ifo,及 xx.DATA.idx(xx 是這次錄影的台號),然後就可以刪除這個錄影節目,如果以後要合拼這個台的節目就可以用這兩個檔案。

將 DATA.ifo 複製到 PVRzzzzz 資料夾,以及將 DATA.idx 複製到 PVRzzzzz\~DATA 資料夾後,就可以將硬碟接回機頂盒,嘗用從機頂盒播放這個新的合拼節目,如果能正常播放,就可以刪除在 PVRbackup 資料夾下的 PVR***** 備份檔。

總結
我試過將合拼後的新節目放回機頂盒,結果能正常播放,所有聲道及字幕都保留。如果播放時用機頂盒落標記(按搖控器 Info 鍵後再按綠色鍵),之後也可以正常跳到標記位置(按 Info 鍵後再按黃色鍵)。前後搜畫或跳躍也大致上算是正常,唯有是當這個新節目差不多播到尾的時候,如果再要向前跳,而所跳去的位置是超出新節目的片長,就會在結尾位置停下來,不能再倒後搜畫,只能按 Play 再從頭播放,或按 Stop 反回即時電視廣播畫面。例如新節目總片長 2h17m,如果已播到 2h10m 時用搖控器跳前 1/8(即是約 17 分鐘)到 2h27m(按 Info 鍵後再按紅色鍵),超出了片長時間,畫面就會停在結尾位置,如果是機頂盒正常錄影出來的節目,在這情況下再按 Rewind 鍵是可以從結尾位置開始倒後搜畫,而合拼後的新節目一旦跳躍超出總片長的位置就不能再向後搜畫。

我目前只試過將上個月在明珠台(84)播放的三集"血洗白教堂(II)"合拼成一個節目(英國短篇連續劇,一季就只有三集),相信其它台的錄影節目也能用這方法合拼(暫時沒計畫去試),不過我估計兩個時間搜索檔是跟電視台有關,84 台的 DATA.ifo 及 DATA.idx 未必可以用於合拼 81 台的節目,所以可能需要每一個台都做一次長時間錄影,以得出各台的時間搜索檔。除此之外,我估計不同台的節目也未必可以合拼在一起,尤其是 81,85,根本是兩個不同的廣播格式,雖然我未試過,但幾乎可以肯定它們是不能合拼。

至於合拼長度方面,如果太貪心將整套 20 集的連續劇合拼在一起,雖然是可以一氣呵成的播放,但總片長時間太長會不利於搜畫(例如一套 20 集一小時的節目,除去廣告後約 900 分鐘,這機頂盒只可以以每分鐘或是 1/8 總片長的間隔前後跳,如果想跳去第 2 集,就要按 45 次前跳 1 分鐘,如果用 1/8 前跳,一跳就已經去到第 3 集中間)。所以我建議每 4~5 集合拼成一個節目,4 集的好處是因為機頂盒可以以 1/8 總片長間隔前後跳,每跳 1/8 就即是大約跳半集,這樣比較方便按集數搜畫。5 集就剛好是一個星期,比較方便管理。

另外還有一個小貼士,機頂盒開啟硬碟目錄時,是以各節目的錄影起始時間排序(即是 mystream.dat 入面的 14~1B 位置),假設一套 20 集的電視劇,每集的播放時間是晚上 8 點半,如果以每 4 集合拼為一個節目計我建議修改節目資訊檔時,第 1~4 集合拼後的節目資訊檔源用第 1 集的日期,但將時間的分改為 1(以 00 開始計,位置是 1A),之後每一個合拼節目都用第 1 集的日期時間,但將分再加 1。以後在機頂盒開啟硬碟目錄時,整套電視劇的幾個合拼節目就會在目錄中按次序排列在一起。


分割教學
當我寫這篇合拼教學時,中途忽然想到除了合拼之外,也可以做分割。例如機頂盒沒設定按 EPG 分割節目,連續錄影時將多個電視節目當作一個節目,就可以用這方法將每個節目分割成獨立的節目。每個節目都在 PVR 之下開一個 PVR***** 資料夾及 ~DATA 子資料夾,照樣跟第一至四步去做,至於第五步,由於分割出來的節目必然短過原來的節目,所以可以直接用原來的 DATA.ifo 及 DATA.idx。雖然我沒真正試過這樣做,但估計應該是可行。

TOP