Birden fazla video yan yana senkronize nasıl oynatılır?


37

3 videom var, 3'ünde de aynı süre, aynı miktarda kare var ve bunlar sadece kodlama kalitesi açısından farklı.

Şimdi, değerlendirme amaçları için yan yana senkronize şekilde koşmalarına ihtiyacım var. "Oynamak" tuşuna bastığımda ne demek! videolar başlamalı. Durma, ileri, geri için analog olarak.

Bunu yapabilen herhangi bir oyuncuyu bilen var mı? Bununla yan yana 1'den fazla video oynatmayı kastediyorum ...

Platform: Win7


8
Bazı parmak ağırlıklarına yatırım yapın ve çok hızlı bir şekilde tıklamak için kendinizi eğitin.
ta.speot.is

Sen noktayı kaçırıyorsun: 1'den fazla video gösterebilen bir oyuncuya ihtiyacım var.
Huysuz ol 'Ayı

4
Sanırım şaka yapıyordu ...
Joe Taylor

hepsini bir seferde açmak için bir görev zamanlayabilirsiniz.
Uğur Gümüşhan

1
"3 videoya sahibim" -> "tuşuna basınca" oynat "BOTH! Videolar başlamalı" -> Sanırım 3ünün de başlaması gerektiğini mi düşünüyorsun?
jiggunjer

Yanıtlar:


10

Windows'ta VLC (1.1.10 veya üstü):

  • Araçlar → Tercihler
  • Ayarları Göster → Tümü
  • Gelişmiş'e tıklayın ( VLC 2.1.5 için Oynatma Listesine tıklayın )
  • "Yalnızca bir çalışan örneğe izin ver" seçeneğinin işaretini kaldırın.
  • "Dosyadan başlatıldığında bir örnek" seçeneğinin işaretini kaldırın.

OS X'teki VLC, aynı seçenek kümesini sağlamaz. Bununla birlikte, Terminal'den birden fazla örneği çalıştırabilirsiniz open -a VLC.


Budur open -n -a vlcMac için.
Paul Tomblin

10
Bu soruya cevap vermiyor (Windows 7, OS X değil). Belki bir toplu iş dosyasıyla 3 video başlatabilirdi, ama hepsini vb. Duraklatmanın bir yolu olmazdı
jiggunjer

30

Eğer kimse hala bununla ilgileniyorsa, VLC'nin şu anki sürümü herhangi bir komut dosyası veya eklenti olmadan bunu çok iyi yapabilir. Bildiğim kadarıyla, ancak 3 değil, sadece senkronize iki dosyayı çalabilirsiniz.

  1. Bunu başarmak için VLC'yi açın ve Medya> Birden Çok Dosya Aç'ı seçin .
  2. Birden fazla dosya penceresinden ilk dosyayı eklemek için ekle seçeneğini seçin.
  3. Bu tıklamanın ardından, " Daha fazla seçenek göster " onay kutusunu ve ardından pencerenin altındaki " Eşzamanlı olarak başka bir medya oynat " onay kutusunu işaretleyin.
  4. İkinci dosyayı eklemek için " Ekstra medya " nın yanındaki göz atmayı seçin .
  5. Oyun tuşuna basıldığında, iki medya dosyası aynı anda tek bir kontrol penceresi ile oynatılır.

:) OSX üzerinde mükemmel çalışır
Navin

2
Bu sadece 3 değil 2 video için çalışıyor
Wakan Tanka

2
3 video istiyorsanız, 5. adımdan önce: Medya Aç penceresinde, pencerenin altındaki Düzenleme Seçenekleri alanına gidin. 2. video dosyanızın kutusunda olduğunu unutmayın :input-slave=file:///C:/Users/me/Documents/someVideo.mov:file-caching=300. Dosya adından #sonra bir sonraki dosya adını aynı biçimde yazın, örn :input-slave=file:///C:/Users/me/Documents/someVideo.mov#file:///C:/Users/me/Documents/yetAnother.mov :file-caching=300. Sonra Oynat'ı tıkladığınızda, üç dosyayı da senkronize olarak oynatır. Referansa bakınız: wiki.videolan.org/VLC_command-line_help
Rory

2
Sürüm 3.0.5 için çalışmadı, ancak sürüm 2.2.4 için çalıştı.
badjr

2
3.0.7 için bu şu şekilde çalışıyor gibi görünüyor - Play (Oynat) düğmesine tıkladıktan sonra ana video oynatılmaya başlar, Video -> Video İzleme -> Track 2'ye sağ tıklayın. Bu, ikinci vid ile ayrı bir pencere açar. İkisi de orijinal penceredeki kontroller tarafından kontrol edilir.
Terry Brown,

17

Bino , stereoskopik dosya oynatımı için yaygın olarak önerilen çapraz platformlu bir medya oynatıcısıdır. Diğer özelliklerin yanı sıra, çoklu akışların senkronize oynatılmasını da destekler.

Arayüz ilk başta biraz ilkel veya kafa karıştırıcı görünebilir, ancak yapmanız gereken tek şey

  1. İki video dosyanızı Bino'ya sürükleyin
  2. Seç "Ayrı ilk sol akımları," giriş seçeneğini ve "Sol / Sağ" çıkış seçeneği

Voilà, senkronize çalma işlemini başlattın. Tüm akışlar için tek bir kayıttan yürütme kontrol grubunun kullanıldığı türden, " ta.speot.is " in önerdiği gibi , "Bazı parmak ağırlıklarına yatırım yapın ve çok hızlı bir şekilde tıklamak için kendinizi eğitin " .

Bonus olarak, anaglif 3D oluşturmayı destekler.


2
OP , iki değil yan yana üç video olmasını istedi . Görebildiğim kadarıyla, Bino sadece iki videoyu destekliyor. (Ayrıca, benim için "Ayrı akışlar ilk önce bırakılsın" seçeneği gridir)
Simon Forsberg

2
Dosyaların aynı boyutta ve kodda olması gerekir, aksi takdirde seçenek gri olur.
Ash

4

Kiran'ın söylediklerini yaptıktan sonra, tüm videolarınızı açın ve aşağıdaki AutoHotKey komut dosyasını çalıştırın.

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%
    }
}

Bu komut, tuş vuruşlarınızı çalışan tüm VLC media player örneklerine gönderir. Fare kullanıyorsanız işe yaramaz.

Bu şeyler işe yaramalı:

  • ileri: Ctrl + right / Alt + right / Shift + right
  • geriye: Ctrl + left / Alt + left / Shift + left
  • Oynat durdur: space
  • hızlandırmak: ]
  • yavaşla: [

Çizginin altındaki diğer tuş vuruşlarını kolayca ekleyebilirsiniz: ~^down::LoopControlSend(Windows, "^{down}")

Bu, videoları mükemmel şekilde senkronize etmez, bu nedenle aşağıdaki 4 tuşu kullanabilirsiniz: sadece etkin pencereyileft, right, up, down kontrol etmek için .

  • left çok kısa geri atlama
  • right çok kısa ileri atlama
  • up orta geri atlama
  • down orta ileri atlama

Programları manuel olarak seçmeyi tercih ediyorsanız, aşağıdaki kodu kullanın.

;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%
    }
}

İnek ahk ahk şaşırtıcı. Bunun hakkında .... diyelim ki iki borsada çalışan 14 VLC örneğim var .... tüm videoları her iki tarayıcıya da döşeyebilen bir komut dosyası var (temelde, ekran başına # videolara, ekran çözünürlüğüne ve onları akıllı bir şekilde döşemek)?
Tbon

4

Komut satırını kullanmak sakıncası yoksa mpv ile bunu yapabilirsiniz:

Yan yana 3 video (yatay olarak dizilmiş)

görüntü tanımını buraya girin

mpv --lavfi-complex="[vid1][vid2][vid3]hstack=inputs=3[vo];[aid1][aid2][aid3]amix=inputs=3[ao]" input1.mkv --external-files="input2.mkv;input3.mkv"

2 video

mpv --lavfi-complex="[vid1][vid2]hstack[vo];[aid1][aid2]amix[ao]" input1.mkv --external-file=input2.mkv

notlar

  • Windows'ta ;her bir dosya adını ayırmak için kullanın --external-files( 3 video örneğinde gösterildiği gibi). Linux ve macOS'ta kullanın :. Seçenek olarak ise, iki örneğini kullanmak --external-fileyerine örneğin, --external-file=input2.mkv --external-file=input3.mkv.

  • Dosyaların hepsi aynı yükseklikte olmalıdır. Değilse, ölçek, altlık ve / veya kırpma filtrelerini ekleyin. Daha fazla bilgi için mpv belgelerine ve FFmpeg Filtrelerine bakın.


3

google muhtemelen size zaten söylemişti, bunu yapabilen birkaç özel yazılım satın alabileceğinizi söyledi, ancak bu durumda: videocompare, tmpgenc, vidlord ...

Bu ücretsiz: http://forum.doom9.org/showthread.php?t=138430

(iş parçacığının sonunda çalışan indirme bağlantıları)

Test edilmedi çünkü şarap kurulumum şu an tamamen vidalanmış durumda. Yan yana yapmıyor, ancak üst üste oynatıyor (çok iyi bir lcd'iniz olmadığı sürece, yine de ekranın iki karşıt köşesinde aynı vid ile aynı şeyi görmeyeceksiniz)

Gerçekten yan yana ihtiyacınız olduğunu düşünüyorsanız, zimmer’in söylediklerini yapmak için avisynth kullanabilirsiniz.

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

(referans forum.doom9.org/showthread.php?t=139769)

Bir kodlama yapmanız gerekmez (yine de kendi kodlama eserlerini ekler), sadece birlikte oynayan iki vidinin kodunu üreten bir proje yapın ve dosyayı atlayın.


3

Aynı sorunu yaşıyorum ancak şu ana kadar çevrimiçi olarak tatmin edici bir çözüm görmedim (ve kapsamlı bir arama yaptığıma inanıyorum). Sonunda hiçbir ekstra $ gerektirmeyen kendi çözümümle geldim. Bu eski bir soru olmasına rağmen, umarım geçici çözümüm yine de faydalı olacaktır.

İlk önce, VLC oynatıcıda, Araçlar-> Tercihler'e gidin. 'Yalnızca çalışan bir örneğe izin ver' ve 'Bir videonun son karesinde durakla' seçeneğinin işaretini kaldırdığınızdan emin olun.

Ardından, aşağıdaki komutları bir metin dosyasına yazın / düzenleyin. Bir windows komut istemi açın ve komutları kopyala ve yapıştır ile çalıştırın (veya metni kaydedin ve toplu iş dosyası olarak çalıştırın):

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%

Bu, her biri üç videodan birine sahip ve hepsi en azından gözünüzde çok senkronize bir şekilde çalan üç VLC örneği açacaktır. Ancak, üç örnek başlangıçta birbiriyle örtüşecek. Çalma işlemini kesmeden hareket ettirmek için, örneklerin her birinin başlık çubuğuna tıklamanız gerekir; böylece ekranda yan yana oynadıklarını görebilirsiniz. Bu oldukça can sıkıcı ama çok küçük bir rahatsızlık olduğunu düşünüyorum.

Denedim ama durdurma, ileri, geri vb. İçin tüm örnekleri kısayol tuşları ile kontrol etmek mümkün değil. .

Çok uzun videolar için, yan yana bir kompozisyondaki videoları tek bir videoda örneğin ffmpeg kullanarak birleştirmek en iyisi olabilir: https://ffmpeg.org/pipermail/ffmpeg-user/2013-Haziran/015662.html ve http://ffmpeg.org/pipermail/ffmpeg-user/2013-Haziran/015712.html Bu komut yalnızca iki videonun nasıl birleştirileceğini açıklar, ancak komutu (birkaç kez test etmedim) komutunu birden çok kez çalıştırabileceğinizi düşünüyorum birden fazla video dosyası içerir.


1

Ben çok kısa bir sürede her üç oyuncuya bir "Oynat" kısayolu göndermek için bir AutoHotKey komut dosyası kullanabilirsiniz.

Aynı anda oynamaya başlayıp başlayamadıkları farklı bir konudur. Hemen başlayabilseler bile, sabit sürücü için bir mücadele olacağını tahmin ediyorum. Bu önemli bir değerlendirme ise RAM disk yapmak isteyebilirsiniz.


Sen noktayı kaçırıyorsun: 1'den fazla video gösterebilen bir oyuncuya ihtiyacım var.
Huysuz ol 'Bear,

Birden fazla örnek açabileceğiniz herhangi bir medya oynatıcı, örneğin VLC
ta.speot.is

3
Gerçekten taspeotis değil. Çünkü sırayla NOT senkronizeine dönüşen her uygulamayı manuel olarak başlatmam gerekiyor.
Huysuz ol 'Bear,

-1

Birçok oyuncu, videodaki tek bir karenin resmini çıkarabilecektir.

Farklı görüntü türlerini (bulutlar, duman, ağaçlar, çimenler, hareketler kodlamayı karşılaştırmak için iyidir) karşılaştırmak için videolarınızda birden fazla nokta seçebilir ve videolarınızın her birinden aynı kareleri alabilirsiniz.

Ardından hareketteki farkları tespit etmeye çalışmak yerine statik bir görüntü üzerinde karşılaştırmalar yapabilirsiniz. İsterseniz piksel bazında piksel bazında karşılaştırma yapabilirsiniz.

JPG'yi çıktı olarak kullanmadığınızdan emin olun, çünkü bu kayıp bir formattır ve kendi eserlerini tanıtacaktır.


2
Sen noktayı kaçırıyorsun: 1'den fazla video gösterebilen bir oyuncuya ihtiyacım var.
Huysuz ol 'Ayı

1
@ NoCanDo: Anladığım kadarıyla, bu sadece video kodlama sonuçlarını karşılaştırmanız için uygun bir cevap bulmamanız durumunda alternatif bir seçenek.
Shevek,

-1

Bu çok sık yaptığınız bir şey değilse, hepsinin gösterdiği bir video oluşturmak için vegas gibi bir video düzenleme yazılımı kullanırdım.

Bunun nasıl yapıldığını Youtube video örneği.


2
Bunu yapmanın çok uygunsuz bir yolu. Hala hiç olmadığı kadar iyi.
Huysuz ol 'Ayı

Bağlantılı sayfalar değişirse cevap geçersiz hale gelebileceğinden, lütfen cevabın temel kısımlarını referans bağlantılardan alıntılayın.
DavidPostill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.