He buscado una guía para los cortes personalizados pero no he encontrado ninguna y me surge una duda sobre cómo funciona. Uso comskip manualmente antes de mis conversiones y, por lo general, edito el archivo edl resultante, así que me interesó cuando vi los cortes personalizados, pero parece que no hace lo que quiero.
Abro el video y el EDL se carga al mismo tiempo. Entonces, digamos que selecciono la fila 2, hago clic izquierdo para que se mueva el control deslizante y lo ajusto según sea necesario. Hago clic en “Start Cut” y espero que cambie el valor en la fila en la que estoy, pero no lo hace. Lo mejor que puedo deducir es que debo eliminar la fila y agregar una completamente nueva, pero al hacerlo pierdo la ubicación del corte final, así que no vale la pena.
¿Hay alguna forma de editar los valores a través de la interfaz gráfica que no esté viendo? Si pudiera hacer estos pequeños ajustes y simplemente guardar el archivo resultante, sería perfecto.
Esto se ha implementado en la versión BETA 2.5.3 de hoy, puedes editar manualmente las selecciones de corte.
No estoy seguro de que esté funcionando, o al menos no de la manera que esperaba. Lo primero es algo menor, pero cuando abro el video, la mayoría de las veces el primer corte comienza bien en 0.00, así que simplemente hago clic en Cut End, espero a que se mueva el control deslizante, luego lo ajusto; pero no me deja presionar cut end porque parece que primero tienes que hacer start. Supongo que podría hacerlo.
El problema más grande es que muevo el control deslizante de vuelta a 0, presiono start cut, luego hago clic en cut end, espero a que el control deslizante se mueva al valor edl actual, luego lo ajusto, pero cuando hago clic en el botón End Cut aparece un mensaje: «Invalid End Cut - End of cut has to be after start cut», lo cual es cierto, así que no sé cuál es el problema. La tabla muestra Cut Start como 0.00, Cut End como 00:01:23.980. Estoy en el punto donde el botón End Cut está habilitado y el control deslizante se ha movido a 00:03:12.988, pero presionar End Cut muestra ese mensaje. Así que el mensaje de error es incorrecto, ya que el inicio es 0.
Para cambiar el corte, edita manualmente la marca de tiempo del corte haciendo doble clic en la entrada que deseas cortar.
Inicio y fin solo funcionan en pares para añadir nuevos cortes; necesitas un inicio seguido de un fin. Cualquier edición posterior debe realizarse editando manualmente la tabla de cortes.
Una sugerencia para futuras versiones, aunque no estoy seguro de si es posible, pero ¿hay alguna manera de que al hacer clic en la hora de inicio (justo debajo del video, no en la tabla) se copie al portapapeles? He estado haciendo la edición manual, pero a menudo uso un monitor pequeño, así que me equivoco al editar, y mi memoria es pésima, así que el problema que tengo es que olvido las horas, pero en cuanto empiezo a editar, la hora de inicio cambia. De esta manera, podría copiar el valor y simplemente pegarlo sobre la hora de inicio o fin que estoy intentando reemplazar.
Añadido en la versión BETA 2.5.3 de hoy
Acabo de instalarlo, pero en mi caso CustomCuts se bloquea cuando intento hacer clic en el control deslizante y luego me muevo con las teclas de flecha izquierda o derecha. Hago clic en el control deslizante para enfocarlo, luego intento moverme con la tecla de flecha y no sucede nada; es decir, el contador de tiempo no se mueve, pero quizá 3-5 segundos después la ventana simplemente se cierra sin mensaje.
Desde el Visor de eventos:
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()
Ese error se debe a que tu portapapeles está bloqueado por otra aplicación. De todos modos, no debería fallar, así que gracias por reportarlo. He aplicado un parche para manejar la excepción correctamente y continuar.
Prueba la nueva versión.
Tuve que esperar a que terminara una conversión. El bloqueo ya no ocurre, aunque diría que los resultados son mixtos. El PC que estaba usando no es donde normalmente uso Custom Cuts; estaba ocupado grabando, así que lo instalé en otro. Tras la instalación y un reinicio, el bloqueo no se reproduce, pero creo que el portapapeles sigue mostrándose bloqueado por algún motivo. No hay nada más abierto aparte de MCEBuddy mismo.
También lo probé en la PC que uso habitualmente (cuando terminó la grabación) y en esa máquina parece funcionar bien: abro el archivo, ajusto el deslizador, hago clic en la hora y puedo pegarla. Así que no sé por qué en la otra PC no funciona, pero podría afectar a otras personas. Normalmente hago los cortes en mi PC de grabación porque Custom Cuts parece rendir mejor que en la caja de conversión. Mismo sistema operativo, pero diferente vídeo. La que funciona usa gráficos integrados Intel; la que no, una AMD Radeon R9 200. No sé si eso debería influir, pero saltar de un punto a otro en un vídeo .ts carga más rápido con los gráficos Intel integrados.
Noté un pequeño error con la copia del tiempo. Si deslizas el controlador hasta el extremo derecho, no copiará el tiempo cuando hagas clic en él; simplemente terminarás con lo que estaba últimamente en el portapapeles. Sin embargo, sí copia cuando el controlador está al extremo izquierdo, por ejemplo obtienes 00:00:00.000. En cada caso estoy haciendo clic en el elemento de tiempo del lado izquierdo; hasta donde puedo decir, hacer clic en el lado derecho nunca copia.