Comment lire plusieurs vidéos côte à côte synchronisées?

J'ai 3 vidéos, toutes 3 ont le même temps, la même quantité de trames, et elles ne diffèrent que de qualité de codage.

Maintenant, je leur ai besoin de fonctionner côte à côte de manière synchronisée à des fins d'évaluation. Ce qui signifie quand j'appuie sur "play" BOTH! Les vidéos devraient commencer. Analogiquement pour stop, forward, backward.

Quelqu'un connaît-il un joueur capable de faire cela? Par cela, je veux dire jouer plus d'une vidéo côte à côte …

Plate-forme: Win7

    VLC sous Windows (1.1.10 ou ultérieur):

    • Outils → Préférences
    • Afficher les paramètres → Tous
    • Cliquez sur Avancé (Cliquez sur Playlist pour VLC 2.1.5)
    • Décochez "Autoriser une seule instance en cours d'exécution"
    • Décochez "Une instance lors du démarrage du fichier"

    VLC sur OS X ne fournit pas le même ensemble d'options. Vous pouvez toutefois exécuter plusieurs instances du Terminal avec open -a VLC .

    Si quelqu'un s'intéresse encore à cela, la version actuelle de VLC est capable de le faire très bien, sans aucune sorte de script ou d'add-on. Pour autant que je sache, vous ne pouvez jouer que deux fichiers de façon synchrone, pas 3.

    1. Pour ce faire, ouvrez simplement VLC et sélectionnez Médias> Ouvrir plusieurs fichiers .
    2. Dans les multiples fenêtres de fichiers, sélectionnez ajouter pour ajouter le premier fichier.
    3. Après cela, cliquez sur la case à cocher " Afficher plus d'options ", suivie de la case à cocher " Jouer d'autres médias de manière synchrone ", en bas de la fenêtre.
    4. Sélectionnez l'option suivant, « Extra media », pour ajouter le second fichier.
    5. Hit play et les deux fichiers multimédias jouent simultanément avec une seule fenêtre de contrôle.

    Bino est un lecteur multimédia multiplate-forme généralement recommandé pour la lecture de fichiers stéréoscopiques. Entre autres fonctionnalités, il prend en charge la lecture synchronisée de flux multiples.

    L'interface peut sembler un peu primitive ou confuse au début, mais tout ce que vous devez faire est

    1. Faites glisser vos deux fichiers vidéo vers Bino
    2. Sélectionnez l'option de saisie "Séparer les flux, la première en premier" et l'option de sortie "Gauche / droite"

    Voilà, vous avez une lecture synchronisée. Le genre d'utilisation d'un seul ensemble de contrôles de lecture pour tous les flux afin que vous ne deviez pas "Investir dans des poids de doigts et vous entraîner à cliquer très rapidement" comme le suggère @ ta.speot.is.

    En prime, il supporte le rendu anaglyph 3D.

    Google probablement déjà vous l'a dit, vous pourriez acheter un couple de logiciels propriétaires qui pourraient le faire, mais au cas où: videocompare, tmpgenc, vidlord …

    Celui-ci est gratuit: http://forum.doom9.org/showthread.php?t=138430

    (Travaux de liens de téléchargement à la fin du fil)

    Non testé car ma configuration de vin est complètement vissée en ce moment. Il ne fait pas côte à côte, mais une lecture empilée (à moins que vous n'ayez un très bon lcd, vous ne verrez pas la même chose en jouant la même vidéo dans deux coins opposés de l'écran de toute façon)

    Si vous pensez que vous avez vraiment besoin côte à côte, vous pouvez utiliser avisynth pour faire ce que Zimmer a dit.

     clip1 = DirectShowSource("C:\MyEncode1.foo", audio=false) clip2 = DirectShowSource("C:\MyEncode2.foo", audio=false) StackVertical(clip1,clip2) 

    (Forum de référence.doom9.org/showthread.php?t=139769)

    Vous n'avez pas besoin de faire un codage (qui ajouterait ses propres artefacts de codage de toute façon), il suffit de créer un projet qui produirait une codage des deux vids jouant ensemble et sauter le fichier.

    Essayez Kinovea , c'est gratuit et précise:

    Kinovea est un lecteur vidéo pour tous les amateurs de sport.
    Ralentissez, étudiez et commentez la technique de vos athlètes ou de vous-même.
    Il est 100% gratuit et open source.
    Observez deux vidéos côte à côte et synchronisez-les sur un événement commun .

    Après avoir fait ce que Kiran a dit, ouvrez toutes vos vidéos et exécutez le script AutoHotKey suivant

     ScriptVersion = 1.1 #Singleinstance,force GoSub, MainProgram return mainprogram: SetTitleMatchMode, 2 WinGet, id, list, - VLC media player,, Program Manager Windows = Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 Windows := this_id . "," . Windows } StringTrimRight, Windows, Windows, 1 #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. ~]::LoopControlSend(Windows, "]") ~[::LoopControlSend(Windows, "[") ~j::LoopControlSend(Windows, "j") ~k::LoopControlSend(Windows, "k") ~space::LoopControlSend(Windows, "{space}") ~+left::LoopControlSend(Windows, "+{left}") ~!left::LoopControlSend(Windows, "!{left}") ~^left::LoopControlSend(Windows, "^{left}") ~+right::LoopControlSend(Windows, "+{right}") ~!right::LoopControlSend(Windows, "!{right}") ~^right::LoopControlSend(Windows, "^{right}") ~^up::LoopControlSend(Windows, "^{up}") ~^down::LoopControlSend(Windows, "^{down}") ; for active windows only. use this to adjust speed when out of sync ~left::ActiveWindowSend(Windows, "+{left}") ~right::ActiveWindowSend(Windows, "+{right}") ~up::ActiveWindowSend(Windows, "^{left}") ~down::ActiveWindowSend(Windows, "^{right}") return LoopControlSend(Windows, x) { WinGet, active_id, ID, A is_valid_window = 0 Loop,Parse,Windows,CSV { if active_id = %A_LoopField% { is_valid_window = 1 break } } if is_valid_window { Loop,Parse,Windows,CSV { if active_id <> %A_LoopField% { ControlSend, , %x%, Ahk_Id %A_LoopField% } } } } ActiveWindowSend(Windows, x) { WinGet, active_id, ID, A is_valid_window = 0 Loop,Parse,Windows,CSV { if active_id = %A_LoopField% { is_valid_window = 1 break } } if is_valid_window { SendInput, %x% } } 

    Ce script envoie vos frappes à toutes les instances en cours d'exécution du lecteur multimédia VLC. Cela ne fonctionne pas si vous utilisez une souris.

    Ces choses devraient fonctionner:

    • En avant: Ctrl + right / Alt + right / Shift + right
    • Vers l'arrière: Ctrl + left / Alt + left / Shift + left
    • Lecture / pause: space
    • Accélérer: ]
    • Accélérer: [

    Vous pouvez facilement ajouter d'autres frappes de touches en dessous de la ligne: ~^down::LoopControlSend(Windows, "^{down}")

    Cela ne synchronise pas parfaitement les vidéos, vous pouvez donc utiliser les 4 touches suivantes: left, right, up, down pour contrôler uniquement la fenêtre active .

    • Laissé un saut arrière très court
    • right très court en avant saut
    • Sauter en arrière moyen vers l'arrière
    • down vers le down avant vers le down

    Si vous préférez choisir les programmes manuellement, utilisez le code suivant à la place

     ;Modified from MultipleSend by jgpaiva ScriptVersion = 1.1 #Singleinstance,force GoSub, MainProgram return Guiescape: GuiClose: gui,destroy exitapp mainprogram: ;start by populating the listview. Gui, 1:default Gui, Add, Text, ,Select the windows to send the text.`nSelect several by pressing ctrl while selecting.`nAfter you've finished the selection`, press Submit. Gui, Add, ListView,w400 h500 vMyListView, Name of the Window | Window Class |Window ID WinGet, id, list,,, Program Manager Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 WinGetClass, this_class, ahk_id %this_id% WinGetTitle, this_title, ahk_id %this_id% If This_Title = continue if % LV_Add("",This_Title,This_Class,This_ID) = 0 msgbox, bug } Gui, Add, Button, default,Submit Gui, Show return ButtonSubmit: NextRow := -1 Windows = Loop,% LV_GetCount("Selected") { NextRow:=LV_GetNext(NextRow) LV_GetText(Text, NextRow,3) Windows := Text . "," . Windows } StringTrimRight, Windows, Windows, 1 Gui,1:Destroy #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. ~]::LoopControlSend(Windows, "]") ~[::LoopControlSend(Windows, "[") ~j::LoopControlSend(Windows, "j") ~k::LoopControlSend(Windows, "k") ~space::LoopControlSend(Windows, "{space}") ~+left::LoopControlSend(Windows, "+{left}") ~!left::LoopControlSend(Windows, "!{left}") ~^left::LoopControlSend(Windows, "^{left}") ~+right::LoopControlSend(Windows, "+{right}") ~!right::LoopControlSend(Windows, "!{right}") ~^right::LoopControlSend(Windows, "^{right}") ~^up::LoopControlSend(Windows, "^{up}") ~^down::LoopControlSend(Windows, "^{down}") ; for active windows only. use this to adjust speed when out of sync ~left::ActiveWindowSend(Windows, "+{left}") ~right::ActiveWindowSend(Windows, "+{right}") ~up::ActiveWindowSend(Windows, "^{left}") ~down::ActiveWindowSend(Windows, "^{right}") return LoopControlSend(Windows, x) { WinGet, active_id, ID, A is_valid_window = 0 Loop,Parse,Windows,CSV { if active_id = %A_LoopField% { is_valid_window = 1 break } } if is_valid_window { Loop,Parse,Windows,CSV { if active_id <> %A_LoopField% { ControlSend, , %x%, Ahk_Id %A_LoopField% } } } } ActiveWindowSend(Windows, x) { WinGet, active_id, ID, A is_valid_window = 0 Loop,Parse,Windows,CSV { if active_id = %A_LoopField% { is_valid_window = 1 break } } if is_valid_window { SendInput, %x% } } 

    J'ai le même problème, mais je n'ai pas encore vu de solutions satisfaisantes en ligne (et croyez-moi, j'ai fait une recherche approfondie). Enfin, je propose une solution qui ne nécessite aucun supplément de $. Bien que ce soit une ancienne question, j'espère que ma solution de rechange sera toujours utile.

    Tout d'abord, dans le lecteur VLC, allez dans Outils-> Préférences. Assurez-vous de désactiver «Autoriser une seule instance en cours d'exécution» et «Pause sur la dernière image d'une vidéo».

    Ensuite, tapez / modifiez les commandes suivantes dans un fichier texte. Ouvrez une invite de commandes Windows et exécutez les commandes en copiant-et-collez (ou enregistrez le texte et exécutez-le en tant que fichier batch):

     set VLCplayer="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" set VLCoptions=--repeat set VIDEOdir="D:\path to your video directory" set Video1="calibration1.mj2" set Video2="calibration2.mj2" set Video3="calibration3.mj2" REM check the commands for misplaced spaces or missing '/' or '"' before running ECHO cd %VIDEOdir% ECHO %VLCplayer% %VLCoptions% %Video1% ECHO %VLCplayer% %VLCoptions% %Video2% ECHO %VLCplayer% %VLCoptions% %Video3% cd %VIDEOdir% %VLCplayer% %VLCoptions% %Video1% %VLCplayer% %VLCoptions% %Video2% %VLCplayer% %VLCoptions% %Video3% 

    Cela ouvrira trois instances VLC, chacune avec l'une des trois vidéos et toutes jouant de manière très synchronisée, du moins à vos yeux. Toutefois, les trois instances se chevauchent d'abord. Vous devrez cliquer sur la barre de titre de chacune des instances pour les déplacer sans interrompre la lecture afin que vous puissiez les voir jouer côte à côte sur votre écran. C'est plutôt ennuyeux, mais je considère qu'il s'agit d'un très petit inconvénient.

    J'ai essayé mais il n'est pas possible de contrôler toutes les instances avec des raccourcis clavier pour arrêter, avancer, reculer, etc. Cependant, l'option '–repeat' mettra les vidéos dans une boucle, afin que vous puissiez simplement les attendre pour recommencer .

    Pour des vidéos très longues, il est préférable de fusionner les vidéos dans une composition côte à côte en une seule vidéo en utilisant par exemple ffmpeg: https://ffmpeg.org/pipermail/ffmpeg-user/2013-June/015662.html et http://ffmpeg.org/pipermail/ffmpeg-user/2013-June/015712.html Cette commande décrit uniquement comment fusionner deux vidéos, mais je crois (c'est-à-dire que je ne l'ai pas testé), vous pouvez exécuter plusieurs fois la commande Incorporer plusieurs fichiers vidéo.

    J'ai l'image que vous pouvez utiliser un script AutoHotKey pour envoyer un raccourci "Play" aux trois joueurs dans un très court laps de temps.

    Qu'ils puissent commencer à jouer exactement au même moment est une question différente. Même s'ils peuvent commencer tout de suite, j'imagine qu'il y aura des combats pour le disque dur. Peut-être souhaitez-vous créer un disque RAM s'il s'agit d'une évaluation importante.

    Si ce n'est pas quelque chose que vous faites très souvent, j'utiliserais un logiciel de montage vidéo comme Vegas pour créer une vidéo avec l'ensemble de ceux-ci.

    Exemple de vidéo YouTube sur la façon de faire cela.

    Bien, la plupart de ces réponses sont inutilement compliquées, sauf le joueur de Bino et semble avoir des points négatifs.

    Ce que vous pouvez faire, c'est de pousser les deux vidéos dans un conteneur, alors le fichier vidéo comporte deux pistes vidéo (il est plus commun d'avoir plus d'une piste audio que les pistes vidéo). Vous pouvez utiliser par exemple MKVMerge . Il ne recode pas les vidéos, donc pas de perte de qualité ou en attendant qu'il soit un. C'est rapide. MKVMerge

    Ensuite, vous pouvez ouvrir le résultat dans le lecteur VLC, puis sélectionnez Video in menu/Video Track/Track 2 (ou autre). Vous voyez maintenant deux fenêtres vidéo et elles sont toujours synchronisées.

    Beaucoup de joueurs pourront publier une image d'un cadre unique dans la vidéo.

    Vous pouvez choisir plusieurs points dans vos vidéos pour comparer différents types d'images (nuages, fumée, arbres, gazon, mouvement sont bons pour les comparaisons d'encodage) et prenez les mêmes images de chacune de vos vidéos.

    Vous pouvez ensuite faire des comparaisons sur une image statique plutôt que d'essayer de repérer les différences de mouvement. Vous pouvez comparer sur un pixel par pixel si vous le souhaitez.

    Assurez-vous de ne pas utiliser JPG comme résultat, car il s'agit d'un format à perte de poids et présentera ses propres artefacts.

    Si vous souhaitez essayer des choses plus avancées pour écouter de la vidéo, vous devriez consulter cette page: http://vvvv.org/documentation/boygrouping-basics

    Vvvv est un environnement de programmation graphique / textuelle hybride pour un prototypage et un développement faciles. Il est conçu pour faciliter la gestion de grands environnements multimédias avec des interfaces physiques, des graphiques animés en temps réel, de l'audio et de la vidéo qui peuvent interagir avec plusieurs utilisateurs simultanément.

    Il a un nœud VLC que vous pouvez programmer pour faire beaucoup de choses avec la vidéo> http://vvvv.org/documentation/filestream-%28ex9.texture-vlc%29