如何阻止 HDHomeRun 錄製節目

此变通方法会在原 HDHomeRun 视频位置留下一个仅含原始元数据的 100K “存根”文件,使 HDHR 识别为已存在,避免重复录制


步骤 1:下载所需文件

  1. 创建文件夹 C:\PartCopy
  2. 下载以下 2 个文件并放入上述文件夹

步骤 2:首先修改你的配置文件,加入以下内容:

PostCustomCommandPath=C:\PartCopy\MakeStub.bat
PostCustomCommandParameters="%sourcefile%" 0d 100000d
PostCustomCommandHangPeriod=600
PostCustomCommandCritical=true
PostCustomCommandUISession=false
PostCustomCommandShowWindow=false
PostCustomCommandExitCodeCheck=false

其中 0d 表示从十进制 0 位置开始,100000d 表示复制前 100K 字节(十进制)

步骤 3(可选):归档而非删除原文件

该脚本 MakeStub.bat 会_删除_原文件并用存根替换。若希望_归档_原文件而非删除,请编辑批处理文件(MakeStub.bat),将行

del %1

替换为

move %1 "C:\ArchivedFiles"

这样会把原文件移至 C:\ArchivedFiles 文件夹,可根据需要更改文件夹名称。

它对我无效。这是我错误代码的片段和我的配置文件:

2017-07-09T23:40:56 MCEBuddy.Transcode.CustomCommand → 读取自定义命令参数 →

PostCustomCommandPath = c:\partcopy\partcopy.exe 
PostCustomCommandParameters = "%sourcefile%" "%originalfilepath%\%originalfilename%.%originalext%" 0d 100000d 
PostCustomCommandHangPeriod = 600 
PostCustomCommandCritical = True 
PostCustomCommandUISession = False 
PostCustomCommandShowWindow = False 
PostCustomCommandExitCodeCheck = False
2017-07-09T23:40:56 MCEBuddy.Transcode.CustomCommand --> 即将运行自定义命令,参数为: 
PostCustomCommandPath = c:\partcopy\partcopy.exe 
PostCustomCommandParameters = "\\WDMYCLOUD\HDHomeRun\Orphan Black\Orphan Black S05E05 20170708 [20170709-0200].mpg" "\\WDMYCLOUD\HDHomeRun\Orphan Black\Orphan Black S05E05 20170708 [20170709-0200].mpg" 0d 100000d 
PostCustomCommandHangPeriod = 600 
PostCustomCommandCritical = True 
PostCustomCommandUISession = False 
PostCustomCommandShowWindow = False 
PostCustomCommandExitCodeCheck = False
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base --> 启动进程 c:\partcopy\partcopy.exe
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base --> 进程参数 "\\WDMYCLOUD\HDHomeRun\Orphan Black\Orphan Black S05E05 20170708 [20170709-0200].mpg" "\\WDMYCLOUD\HDHomeRun\Orphan Black\Orphan Black S05E05 20170708 [20170709-0200].mpg" 0d 100000d
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base --> UI 会话管理员进程 : False
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base --> 设置进程优先级为 Normal
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  P a r t C o p y   -   V e r s i o n   1 . 1 2   R e l e a s e   1   B u i l d   3 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  C o p y r i g h t   ( C )   2 0 0 5 - 2 0 1 4   J o h n   B u o r o ,   V i r t u a l O b j e c t i v e s . 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  A l l   R i g h t s   R e s e r v e d . 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  T h i s   p r o g r a m   i s   F r e e w a r e   a n d   m u s t   n o t   b e   d i s t r i b u t e d   o r   s o l d   f o r   p r o f i t . 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  U s i n g   C o m m a n d - L i n e   P a r a m e t e r s 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  S o u r c e   F i l e   =   \\ \\ W D M Y C L O U D \\ H D H o m e R u n \\ O r p h a n   B l a c k \\ O r p h a n   B l a c k   S 0 5 E 0 5   2 0 1 7 0 7 0 8   [ 2 0 1 7 0 7 0 9 - 0 2 0 0 ] . m p g 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  D e s t i n a t i o n   F i l e   =   \\ \\ W D M Y C L O U D \\ H D H o m e R u n \\ O r p h a n   B l a c k \\ O r p h a n   B l a c k   S 0 5 E 0 5   2 0 1 7 0 7 0 8   [ 2 0 1 7 0 7 0 9 - 0 2 0 0 ] . m p g 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  E R R O R :   S o u r c e   a n d   d e s t i n a t i o n   f i l e s   c a n n o t   b e   t h e   s a m e ! 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  S t a r t   P o s i t i o n   =   0 d 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  O f f s e t   L e n g t h   =   1 0 0 0 0 0 d 
2017-07-09T23:40:56 MCEBuddy.AppWrapper.Base -->  
--> 进程以代码 1 退出

我的配置文件:

[HDHomeRun H.264 high quality]
Description=使用此选项可移除广告并将源视频转换为兼容 SiliconDust HDHomeRun 的 MPG 文件(H.264/AC3 视频/音频)。
order=handbrake,ffmpeg 
ffmpeg-general=-threads 0 
ffmpeg-video=-ss 3 -vf yadif=0:-1:1,hqdn3d -vcodec libx264 -b 1800k -x264opts me=hex:trellis=2:subq=8:partitions=all:8x8dct=1:ref=5:rc-lookahead=50:keyint=25:min-keyint=20:bframes=3:weightb=1:level=4.0:b-pyramid=normal:direct=auto:mixed-refs=1:deblock=-1,-1:no-fast-pskip=1:no-dct-decimate=1:b-adapt=2:threads=auto -map 0:v -sn
ffmpeg-audio=-acodec ac3 -ab 192k -map 0:a 
ffmpeg-audioac3=-acodec ac3 -ab 384K -map 0:a 
ffmpeg-ext=.ts 
ffmpeg-audiodelay=skip 
handbrake-general=--decomb --denoise="weak" --loose-anamorphic --verbose=2 -T -f mp4 -O
handbrake-video=--start-at duration:3 -e x264 -b 1800 -x me=hex:trellis=2:subq=8:partitions=all:8x8dct:ref=5:rc-lookahead=50:keyint=25:keyint-min=20:bframes=3:weight-b:level-idc=40:b-pyramid=normal:direct-pred=auto:mixed-refs:deblock=-1,-1:nofast-pskip:nodct-decimate:b-adapt=2:threads=auto
handbrake-audio=-E ffac3 -R auto -B 192 -D 0 -a 1,2,3,4,5 
handbrake-audioac3=-E ffac3 -R auto -B 384 -D 0 -a 1,2,3,4,5 
handbrake-ext=.mp4 
handbrake-remuxto=.ts 
handbrake-audiodelay=skip 
PreConversionCommercialRemover=true 
RenameExt=.mpg
PostCustomCommandPath=C:\PartCopy\PartCopy.exe
PostCustomCommandParameters=""%sourcefile%" "%originalfilepath%\%originalfilename%.%originalext%" 0d 100000d"
PostCustomCommandHangPeriod=600
PostCustomCommandCritical=true
PostCustomCommandUISession=false
PostCustomCommandShowWindow=false
PostCustomCommandExitCodeCheck=false

請用程式碼引號 ``` 包住內容,或將其標記為預先格式化文字,以便保留字元並提高可讀性(請立即編輯您的貼文)。

我來猜測一下,您可能啟用了以下其中一個選項:

Skip copying original filesSkip remuxing files

如果是這樣,您需要確保不要勾選這兩個選項,這可能就是失敗的原因,因為當您不複製時,"%sourcefile%" 會與 %originalfilepath%\%originalfilename%.%originalext% 相同,這就是 PartCopy 抱怨來源與目的地相同的問題。若勾選其中任一選項,就會導致此問題。取消勾選這些選項即可解決。

另請注意,您的 PostCustomCommandParameters 缺少雙引號("),整組參數都應以雙引號包覆:

PostCustomCommandParameters=""%sourcefile%" "%originalfilepath%\%originalfilename%.%originalext%" 0d 100000d"

我檢查過了,兩個被略過的方塊都沒有勾選。

我在 Monitor Location Expert 設定中有以下內容:
已勾選「封存原始檔案」
未勾選「刪除原始檔案」
已指定封存資料夾。
排除資料夾為空白
處理前最小等待時間 1 分鐘。
已勾選「監控已轉換影片」
已勾選「重新監控已錄製影片」。

這些設定會導致問題嗎?

不太可能。你能附上你的转换日志吗?

你说得对,我刚刚验证过,最新版本确实存在这个问题。为了解决这个问题,我们需要一个批处理文件来覆盖原始文件。我已经创建了一个批处理文件,并在首帖中更新了说明。试试看,现在应该可以了。

看起來它現在正在生成檔案,但似乎會刪除原始檔案(而不是歸檔),然後將這個 10k 的檔案移動到我的歸檔資料夾。

是的,這是正確的。這個腳本會覆寫原始檔案。如果你不想刪除,而是想封存,只要修改批次檔,把原始檔案移到封存資料夾即可。

這裡有一個批次檔範例(取代 MakeStub.bat 的內容),可將原始檔案封存而非刪除,並留下 stub:

PartCopy %1 %1.tmp %2 %3
move %1 C:\ArchivedFiles
move %1.tmp %1

我已更新原始說明以反映這點。

運作得非常順利,感謝!

接下來我需要試著建立一個只產生 100k 檔案的設定檔,用來回填我所有舊的錄音。

这很简单。在转换任务中使用“仅重命名”选项,并在其中使用相同的配置文件。无论你使用什么配置文件都无关紧要,因为当你启用仅重命名时,它只会重命名而不会重新编码,但最后自定义命令仍会运行,创建你的 100k 存根。确保关闭广告检测功能。

這仍然是防止 HDHomerun 再次錄製節目的首選方法嗎?我使用 HDHR H.265 設定檔轉換了所有錄製內容,並將它們移動到另一個資料夾,然後封存了舊檔案。

是的,这仍然是防止录制的最佳方式。