複数の動画を横に並べて同期して再生するには?
3つの動画を持っていますが、3つとも同じ時間、同じフレーム数で、エンコードの質の違いだけがあります。
評価のために、3つの動画を同期して並べて実行する必要があります。つまり、私が “play "を押すと、両方のビデオが起動します。停止、前進、後退の場合はアナログ的に。
これができるプレイヤーを知っている人はいますか?これは1つ以上のビデオを横に並べて再生することを意味します。
プラットフォーム。Win7
3つの動画を持っていますが、3つとも同じ時間、同じフレーム数で、エンコードの質の違いだけがあります。
評価のために、3つの動画を同期して並べて実行する必要があります。つまり、私が “play "を押すと、両方のビデオが起動します。停止、前進、後退の場合はアナログ的に。
これができるプレイヤーを知っている人はいますか?これは1つ以上のビデオを横に並べて再生することを意味します。
プラットフォーム。Win7
もし誰かがまだこれに興味を持っているなら、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つのコントロールウィンドウで同時に再生されます。
Bino ](http://bino3d.org/)は、立体視ファイルの再生に共通して推奨されているクロスプラットフォームのメディアプレイヤーです。他の機能の中でも、複数のストリームの同期再生をサポートしています。
最初は少し原始的で戸惑うかもしれませんが、
1.2つの動画ファイルをBino 2.にドラッグします。2. 入力オプションとして “ストリームを分離、左から先に” を選択し、出力オプションとして “左/右” を選択します
これで同期再生ができました。これにより、@ta.speot.isが提案しているように、“指の重さに投資して、素早くクリックできるように訓練する”をしなくても、全てのストリームで単一の再生コントロールを使用することができます。
ボーナスとして、アナグリフの3Dレンダリングをサポートしています。
コマンドラインでよければ mpv でできます。
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"
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 を参照してください。
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
中程度の前方ジャンプ 手動でプログラムを選択したい場合は、代わりに以下のコードを使用してください。
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)
エンコードをする必要はありません(どちらにしても、それ自体がエンコードのアーチファクトを追加することになります)。
私は同じ問題を抱えていますが、私はこれまでのところオンラインで満足のいく解決策を見たことがありませんでした(そして、私は徹底的な検索を行っていた私を信じてください)。最後に、私は余分な$を必要としない私自身の解決策を思いつきました。これは古い質問ですが、私の回避策が役に立つことを願っています。
まず、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つの動画を結合する方法を説明しているだけですが、複数の動画ファイルを結合するために複数回コマンドを実行することができると思います。
AutoHotKeyスクリプトを使って、非常に短い時間で3人のプレイヤー全員に “Play "のショートカットを送ることができるのではないかとイメージしています。
全く同じ時間にプレイを開始できるかどうかは別問題です。仮にすぐに始められたとしても、ハードドライブの奪い合いになると思います。重要な評価であれば、RAMディスクを作っておいた方がいいかもしれません。
あまり頻繁にやることではないのであれば、vegasのような動画編集ソフトを使って、1本の動画を全部見せて作るといいと思います。 Youtube動画の例