Coupes personnalisées du presse-papiers et édition manuelle des coupes

J’ai cherché un guide pour les découpes personnalisées mais je n’en ai pas trouvé et je rencontre une question sur le fonctionnement. J’utilise comskip manuellement avant mes conversions et j’édite généralement le fichier edl résultant, donc j’étais intéressé quand j’ai vu les découpes personnalisées, mais cela ne semble pas faire ce que je veux.
J’ouvre la vidéo et l’EDL se charge en même temps. Donc disons que je sélectionne la ligne 2, je clique gauche pour déplacer le curseur et je l’ajuste selon mes besoins. Je clique sur Start Cut et je m’attends à ce que cela change la valeur dans la ligne où je suis, mais ce n’est pas le cas. Le mieux que je puisse faire est de supprimer la ligne et d’en ajouter une complètement nouvelle, mais en faisant cela je perds l’emplacement de fin de coupe donc ça ne vaut pas la peine.
Y a-t-il un moyen d’éditer les valeurs via l’interface graphique que je ne vois pas ? Si je pouvais faire ces petits ajustements et simplement enregistrer le fichier résultant, ce serait parfait.

Cela a été implémenté dans la version BETA 2.5.3 d’aujourd’hui, vous pouvez modifier manuellement les sélections de coupe.

Je ne suis pas sûr que cela fonctionne, ou du moins pas comme je m’y attendais.
Premier point, assez mineur : quand j’ouvre la vidéo, la plupart du temps le premier début de coupe est bien à 0,00, donc je clique simplement sur « Cut End », j’attends que le curseur se déplace, puis je l’ajuste — mais il m’est impossible de valider « Cut End » car il semble qu’il faille d’abord définir le début. Ce que je pourrais faire, j’imagine.

Le vrai problème, plus gênant : je remets le curseur à 0, je clique sur « Start Cut », puis sur « Cut End », j’attends que le curseur atteigne la valeur EDL actuelle, je l’ajuste, mais quand je clique sur le bouton « End Cut » une popup apparaît : « Invalid End Cut – End of cut has to be after start cut ». Or la fin est bien après le début, donc je ne comprends pas. Le tableau indique « Cut Start » à 0,00 et « Cut End » à 00:01:23,980. Le bouton « End Cut » est actif, le curseur est à 00:03:12,988, mais le message d’erreur apparaît quand même. Le message est donc incorrect, puisque le début est bien à 0.

Pour modifier la coupe, éditez manuellement l’horodatage de coupe en double-cliquant sur l’entrée que vous souhaitez couper.

Début et fin ne fonctionnent que par paires pour ajouter de nouvelles coupures ; vous avez besoin d’un début suivi d’une fin. Toute modification ultérieure doit être effectuée en éditant manuellement le tableau des coupures.

Une suggestion pour les versions futures, bien que je ne sois pas sûr que ce soit possible : serait-il possible de cliquer sur l’heure de début (juste sous la vidéo, pas dans le tableau) pour la copier dans le presse-papiers ? J’ai fait des modifications manuelles, mais j’utilise souvent un petit écran et je fais des fautes de frappe ; ma mémoire est mauvaise, donc j’oublie les horaires, et dès que je commence à modifier, l’heure de début change. Ainsi, je pourrais copier la valeur et la coller à la place du début ou de la fin que je veux remplacer.

Ajouté dans la version BÊTA 2.5.3 d’aujourd’hui

Je viens de l’installer, mais Custom Cuts plante quand je clique sur le curseur puis que j’essaie de me déplacer avec les touches fléchées gauche ou droite. Je clique sur le curseur pour le mettre au premier plan, puis j’essaie de bouger avec la flèche : rien ne se passe, c.-à-d. que le compteur de temps n’avance pas, mais 3 à 5 s plus tard la fenêtre se ferme sans message.

Depuis le Visionneur d’événements :
Application : MCEBuddy.CustomCutsGUI.exe
Version du Framework : v4.0.30319
Description : Le processus s’est arrêté en raison d’une exception non gérée.
Informations sur l’exception : System.Runtime.InteropServices.COMException
à System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32, IntPtr)
à System.Windows.Clipboard.Flush()
à System.Windows.Clipboard.CriticalSetDataObject(System.Object, Boolean)
à System.Windows.Clipboard.SetDataInternal(System.String, System.Object)
à MCEBuddy.CustomCutsGUI.MainWindow.timeSlider_KeyDown(System.Object, System.Windows.Input.KeyEventArgs)
à System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
à System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
à System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
à System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
à System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs)
à System.Windows.Input.InputManager.ProcessStagingArea()
à System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
à System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
à System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawKeyboardActions, Int32, Boolean, Boolean, Int32)
à System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(System.Windows.Interop.MSG ByRef, Boolean ByRef)
à System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(System.Windows.Interop.MSG ByRef, System.Windows.Input.ModifierKeys)
à System.Windows.Interop.HwndSource.OnPreprocessMessage(System.Object)
à System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
à System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
à System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate, System.Object)
à System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(System.Windows.Interop.MSG ByRef, Boolean ByRef)
à System.Windows.Interop.ThreadMessageEventHandler.Invoke(System.Windows.Interop.MSG ByRef, Boolean ByRef)
à System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(System.Windows.Interop.MSG ByRef)
à System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
à System.Windows.Application.RunDispatcher(System.Object)
à System.Windows.Application.RunInternal(System.Windows.Window)
à MCEBuddy.CommercialCutsGenerator.App.Main()

Cette erreur est due au fait que votre presse-papiers est verrouillé par une autre application. Cela ne devrait pas planter, donc merci de l’avoir signalé. J’ai mis en place un correctif pour gérer l’exception gracieusement et continuer.

Essayez la nouvelle version.

J’ai dû attendre qu’une conversion se termine. Le plantage ne se produit plus, mais je dirais que les résultats sont mitigés. Le PC que j’utilisais n’est pas celui où j’utilise normalement les coupes personnalisées ; il était occupé à faire un enregistrement, donc j’ai installé sur un autre. Après l’installation et un redémarrage, le plantage n’arrive plus, mais je pense que le presse-papiers est toujours verrouillé pour une raison quelconque. Il n’y a rien d’autre d’ouvert à part MCEBuddy lui-même.
Je l’ai aussi testé sur le PC que j’utilise normalement (après la fin de mon enregistrement), et sur cette machine, cela semble fonctionner correctement. J’ouvre le fichier, ajuste le curseur, clique sur l’heure et je peux ensuite coller. Donc je ne sais pas pourquoi sur l’autre PC cela ne fonctionne pas, mais cela pourrait affecter d’autres personnes. J’effectue typiquement les coupes sur mon PC d’enregistrement car les coupes personnalisées semblent mieux fonctionner en termes de performance que sur ma machine de conversion. Même système d’exploitation, mais carte vidéo différente. Celle qui fonctionne utilise une vidéo Intel intégrée, celle qui ne fonctionne pas utilise une AMD Radeon R9 200 series. Je ne sais pas si cela devrait avoir un effet, mais le saut d’endroit en endroit dans une vidéo TS se charge plus rapidement sur l’Intel intégrée.

J’ai remarqué un petit bug avec la copie de l’heure. Si vous faites glisser le curseur tout à droite, il ne copie pas l’heure lorsque vous cliquez dessus, vous obtenez simplement ce qui était dernier dans le presse-papiers. Il copie bien lorsque le curseur est tout à gauche, par exemple vous obtenez 00:00:00.000
Dans chaque cas, je clique sur l’élément de temps de gauche, et autant que je puisse dire, cliquer sur le côté droit ne copie jamais.