自定义剪切的剪贴板和手动编辑剪切

我一直在找自訂剪輯的教學,但找不到,而且對它的運作方式有疑問。我習慣在轉檔前手動執行 comskip,通常會再編輯產生的 edl 檔,所以看到「自訂剪輯」時很感興趣,但它似乎無法達成我要的功能。

我打開影片時,EDL 會同時載入。假設我選了第 2 列,我左鍵點擊讓滑桿移過去,再微調到我要的位置。我按下「Start Cut」,原本預期它會更新我所在列的值,但並沒有。目前看來我只能刪除該列,再重新新增一列,但這樣會失去結束剪輯點,反而不划算。

有什麼方法能透過 GUI 直接編輯這些值嗎?如果我能微調後直接存檔就完美了。

這已在今天的 2.5.3 BETA 版本中實作,您可以手動編輯剪下選取範圍。

不確定它是否正常運作,至少不是我所預期的那樣。
首先是個小問題:當我打開影片時,大多數情況下第一個剪輯起點會正確顯示為 0.00,所以我直接點擊「剪輯結束」,等滑桿移動後再微調——但它不讓我按「剪輯結束」,似乎必須先設定「剪輯起點」。我想這也還能接受。

更大的問題是:我把滑桿拉回 0,按下「剪輯起點」,再點「剪輯結束」,等滑桿移到目前的 EDL 值後微調,但當我按下「剪輯結束」按鈕時,卻跳出提示「無效的結束剪輯——結束剪輯必須在起點之後」,而實際上結束的確在起點之後,所以不清楚問題出在哪。表格顯示剪輯起點為 0.00,剪輯結束為 00:01:23.980。此時「剪輯結束」按鈕已啟用,滑桿也已移到 00:03:12.988,但按下「剪輯結束」仍會跳出該提示。因此這條錯誤訊息是錯的,因為起點就是 0。

要變更剪輯,請雙擊您想要剪輯的項目,手動編輯剪輯時間戳。

開始與結束必須成對使用,才能新增剪輯片段;您需要一個開始,後接一個結束。之後的任何編輯都必須透過手動編輯剪輯表格來完成。

未來版本的一個建議,雖然不確定是否可行,但能否讓點擊開始時間(在影片下方,而非表格內)時,自動複製到剪貼簿?我目前都是手動編輯,但螢幕很小,常打錯,而且我記性很差,問題是一旦開始編輯,開始時間就變了。這樣我就能先複製數值,再直接貼上來取代我要換掉的開始或結束時間。

新增於今日 2.5.3 BETA 版本

我剛安裝好,但對我來說,當我點擊滑桿後嘗試用左右方向鍵移動時,Custom Cuts 會當掉。我點一下滑桿讓它取得焦點,然後用方向鍵移動,但什麼都沒發生——時間計數器不會動,大約 3–5 秒後視窗就無訊息地直接關閉。

來自事件檢視器的資訊:
Application: MCEBuddy.CustomCutsGUI.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.InteropServices.COMException
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32, IntPtr)
at System.Windows.Clipboard.Flush()
at System.Windows.Clipboard.CriticalSetDataObject(System.Object, Boolean)
at System.Windows.Clipboard.SetDataInternal(System.String, System.Object)
at MCEBuddy.CustomCutsGUI.MainWindow.timeSlider_KeyDown(System.Object, System.Windows.Input.KeyEventArgs)
at System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
at System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
at System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawKeyboardActions, Int32, Boolean, Boolean, Int32)
at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(System.Windows.Interop.MSG ByRef, Boolean ByRef)
at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(System.Windows.Interop.MSG ByRef, System.Windows.Input.ModifierKeys)
at System.Windows.Interop.HwndSource.OnPreprocessMessage(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate, System.Object)
at System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(System.Windows.Interop.MSG ByRef, Boolean ByRef)
at System.Windows.Interop.ThreadMessageEventHandler.Invoke(System.Windows.Interop.MSG ByRef, Boolean ByRef)
at System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at MCEBuddy.CommercialCutsGenerator.App.Main()

这个错误是因为你的剪贴板被另一个应用程序锁定了。无论如何它都不应该崩溃,所以感谢你的报告。我已经添加了一个补丁来优雅地处理这个异常并继续运行。

试试新的构建版本。

好的,得等到一個轉檔完成才能測試。程式不再當掉了,但結果只能說好壞參半。我測試的這台電腦平常並不是用來跑自訂剪輯的,當時它正在錄影,所以我換到另一台安裝。安裝完並重開機後,當掉問題消失,但剪貼簿似乎仍被鎖住。除了 MCEBuddy 本身,並沒有其他程式開啟。

我也在我平常用的那台電腦上試了(等錄影結束後),這台就完全正常:開檔、拉滑桿、點時間,就能貼上。不確定為何另一台不行,但可能也會影響其他人。我通常會在錄影用的電腦上做剪輯,因為自訂剪輯在這台上效能比轉檔機好。兩台都是同樣的作業系統,只是顯示卡不同:能正常運作的是 Intel 內顯,不行的那台是 AMD Radeon R9 200 系列。不確定是否有關,但在 ts 影片裡跳轉位置時,Intel 內顯載入速度確實比較快。

注意到复制时间的一个小 bug:如果把滑块拖到最右边,点击时不会复制时间,剪贴板里仍是上一次的内容;而滑块在最左边时则能正常复制,例如会得到 00:00:00.000。
据我观察,无论什么情况,点击左侧时间项才会复制,点击右侧似乎永远无法复制。