2010-05-10 11:12:24 +0000 2010-05-10 11:12:24 +0000
40
40
Advertisement

複数の動画を横に並べて同期して再生するには?

Advertisement

3つの動画を持っていますが、3つとも同じ時間、同じフレーム数で、エンコードの質の違いだけがあります。

評価のために、3つの動画を同期して並べて実行する必要があります。つまり、私が “play "を押すと、両方のビデオが起動します。停止、前進、後退の場合はアナログ的に。

これができるプレイヤーを知っている人はいますか?これは1つ以上のビデオを横に並べて再生することを意味します。

プラットフォーム。Win7

Advertisement
Advertisement

回答 (10)

32
32
32
2016-01-22 16:10:17 +0000

もし誰かがまだこれに興味を持っているなら、VLCの現在のバージョンでは、スクリプトやアドオンを使用せずに、これを非常にうまく行うことができます。しかし、私の知る限りでは、3.

1ではなく、2つのファイルを同期して再生することしかできません。

1.これを実現するには、VLCを開いて**Media>Open Multiple Filesを選択するだけです。 2. 複数ファイルウィンドウの中で、最初のファイルを追加するために追加を選択します。 3. この後、" *Show more options“チェックボックスをクリックし、次にウィンドウの下部にある” **Play another media synchronously“チェックボックスをクリックします。 4. 2つ目のファイルを追加するには、” Extra media 、"の隣のブラウズを選択します。 5. 再生ボタンを押すと、2つのメディアファイルが1つのコントロールウィンドウで同時に再生されます。

17
17
17
2013-10-02 10:43:52 +0000

Bino ](http://bino3d.org/)は、立体視ファイルの再生に共通して推奨されているクロスプラットフォームのメディアプレイヤーです。他の機能の中でも、複数のストリームの同期再生をサポートしています。

最初は少し原始的で戸惑うかもしれませんが、

1.2つの動画ファイルをBino 2.にドラッグします。2. 入力オプションとして “ストリームを分離、左から先に” を選択し、出力オプションとして “左/右” を選択します

これで同期再生ができました。これにより、@ta.speot.isが提案しているように、“指の重さに投資して、素早くクリックできるように訓練する”をしなくても、全てのストリームで単一の再生コントロールを使用することができます。

ボーナスとして、アナグリフの3Dレンダリングをサポートしています。

13
Advertisement
13
13
2011-07-21 08:07:09 +0000
Advertisement

Windows (1.1.10 以降) の VLC:

  • _ツール → 環境設定
  • _設定を表示 → すべて
  • _詳細設定をクリック (VLC 2.1.5 の場合は _プレイリストをクリック)
  • 「実行中のインスタンスを 1 つだけ許可する」のチェックを外す
  • 「ファイルマネージャから起動したときに 1 つのインスタンスだけを使用する」のチェックを外す

OS X の VLC には、同じオプションはありません。ただし、ターミナルから open -a VLC で複数のインスタンスを実行することは可能です。

6
6
6
2018-05-24 18:47:55 +0000

コマンドラインでよければ mpv でできます。

3本の動画を横に並べて(水平に積み重ねて)

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本の動画

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

注意事項

  • Windowsでは、各ファイル名を;で区切るために--external-filesを使用してください(3 videosの例で示したように)。Linux と macOS では : を使用します。また、--external-fileのインスタンスを2つ使用しても構いません。--external-file=input2.mkv --external-file=input3.mkv.

  • ファイルはすべて同じ高さでなければなりません。もしそうでない場合は、スケール、パッド、クロップフィルタを追加してください。詳細は mpv documentation FFmpeg Filters を参照してください。

4
Advertisement
4
4
2014-10-18 15:33:24 +0000
Advertisement

Kiran が言っていたことを実行した後、すべての動画を開き、以下の AutoHotKey スクリプト

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

このスクリプトは、実行中のすべての VLC メディアプレイヤーのインスタンスにキーストロークを送信します。マウスを使用している場合は動作しません。

これらは動作するはずです。

  • 前進: Ctrl + right / Alt + right / Shift + right
  • 後進: Ctrl + left / Alt + left / Shift + left
  • 再生/一時停止。space
  • スピードアップ。]
  • スピードダウン。[

行の下に他のキーストロークを簡単に追加できます:~^down::LoopControlSend(Windows, "^{down}")

これでは動画が完全に同期されないので、以下の4つのキーを使用します。left, right, up, downアクティブウィンドウのみを制御します。

  • left 非常に短い後方ジャンプ
  • right 非常に短い前方ジャンプ
  • up 中程度の後方ジャンプ
  • down 中程度の前方ジャンプ

手動でプログラムを選択したい場合は、代わりに以下のコードを使用してください。

3
3
3
2010-05-10 22:03:42 +0000

googleはおそらくすでに教えてくれたと思いますが、それができるプロプライエタリなソフトをいくつか買うことができますが、念のために : videocompare, tmpgenc, vidlord…

これは無料です : http://forum.doom9.org/showthread.php?t=138430

(スレッドの最後にダウンロードリンクがあります)

私のワインの設定が今完全にダメになっているので未検証です。

本当にサイド・バイ・サイドが必要だと思うならば、avisynthを使ってzimmerが言っていたようなことができます。

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

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

エンコードをする必要はありません(どちらにしても、それ自体がエンコードのアーチファクトを追加することになります)。

3
Advertisement
3
3
2015-10-02 23:50:44 +0000
Advertisement

私は同じ問題を抱えていますが、私はこれまでのところオンラインで満足のいく解決策を見たことがありませんでした(そして、私は徹底的な検索を行っていた私を信じてください)。最後に、私は余分な$を必要としない私自身の解決策を思いつきました。これは古い質問ですが、私の回避策が役に立つことを願っています。

まず、VLCプレーヤーで、Tools->Preferencesに進みます。実行中のインスタンスを1つだけ許可する」と「ビデオの最後のフレームで一時停止する」のチェックが外れていることを確認してください。

次に、以下のコマンドをテキストファイルに入力/編集します。

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%

0x1&

これで 3 つの VLC インスタンスが開き、それぞれが 3 つのビデオのうち 1 つを持ち、すべてが非常に同期して再生されます。ただし、最初は 3 つのインスタンスが重なっています。あなたは、あなたの画面上で並んで再生しているそれらを見ることができるように、再生を中断せずにそれらの周りに移動するために、インスタンスのそれぞれのタイトルバーをクリックする必要があります。これはかなり煩わしいですが、私はとても小さな不便だと思っています。

試してみましたが、停止、前進、後退などのホットキーで全てのインスタンスを制御することはできません。しかし、オプションの「–repeat」は動画をループ状態にしてくれるので、やり直すのを待つことができます。

非常に長い動画の場合は、ffmpegなどを使用して、横に並べて合成した動画を1つの動画に結合するのが良いでしょう。 https://ffmpeg.org/pipermail/ffmpeg-user/2013-June/015662.html an http://ffmpeg.org/pipermail/ffmpeg-user/2013-June/015712.html このコマンドは2つの動画を結合する方法を説明しているだけですが、複数の動画ファイルを結合するために複数回コマンドを実行することができると思います。

1
1
1
2010-05-10 11:16:39 +0000

AutoHotKeyスクリプトを使って、非常に短い時間で3人のプレイヤー全員に “Play "のショートカットを送ることができるのではないかとイメージしています。

全く同じ時間にプレイを開始できるかどうかは別問題です。仮にすぐに始められたとしても、ハードドライブの奪い合いになると思います。重要な評価であれば、RAMディスクを作っておいた方がいいかもしれません。

-1
Advertisement
-1
-1
2010-05-10 14:02:32 +0000
Advertisement

あまり頻繁にやることではないのであれば、vegasのような動画編集ソフトを使って、1本の動画を全部見せて作るといいと思います。 Youtube動画の例

-1
-1
-1
2010-05-10 11:22:26 +0000

多くのプレイヤーは、動画内の1フレームの画像を出力することができるようになります。

動画内の複数のポイントを選択して、異なるタイプの画像(雲、煙、木、草、動きはエンコード比較に適しています)を比較することができ、それぞれの動画から同じフレームを取ることができます。

動きの違いを見つけようとするのではなく、静止した画像で比較することができます。必要であれば、ピクセル単位で比較することもできます。

出力にJPGを使用しないことを確認してください。

Advertisement

関連する質問

3
28
13
7
5
Advertisement