ブラックボックスで前後の映像を同時に再生しようとしていますmpv
。
前後のビデオファイルはF
およびR
ディレクトリにあります。F
たとえば、ディレクトリ内のすべてのファイルをプレイリストに簡単に追加できます。
mpv F/*
一対の前面/背面ショットに対してPIPオーバーレイを実行することもできます。
mpv $front_video --external-file=$rear_video --lavfi-complex='[vid2] scale=640x360 [small]; [vid1] [small] overlay [vo]'
2つの組み合わせに問題があります。つまり、PIPオーバーレイのあるプレイリストが必要です。問題は、常に最初のビデオで後ろ姿を取得することです。
mpv \
REC_200607-175943F.MOV --external-file=../R/REC_200607-175943R.MOV --lavfi-complex='[vid2] scale=640x360 [small]; [vid1] [small] overlay [vo]' \
GSR_200607-180444F.MOV --external-file=../R/GSR_200607-180444R.MOV --lavfi-complex='[vid2] scale=640x360 [small]; [vid1] [small] overlay [vo]' \
GSR_200607-180943F.MOV --external-file=../R/GSR_200607-180943R.MOV --lavfi-complex='[vid2] scale=640x360 [small]; [vid1] [small] overlay [vo]'
mpv
現在、最初の動画が終了するとすぐに、次の動画のペアを実行して最初から最後まですべてを表示できるようにするスクリプトを使用していますが、前/次の動画にスキップ、位置確認、その他の機能内プレイリスト、再生速度、音量、コントラストなどの設定また、あるmpv
インスタンスを終了すると次のインスタンスが実行されるため、再生中に停止するのは面倒です。
#!/bin/sh
for front in $(ls -tr); do
rear=../R/${front/F./R.}
mpv $front --external-file=$rear --lavfi-complex='[vid2] scale=640x360 [small]; [vid1] [small] overlay [vo]'
done
どんな提案がありますか?
ベストアンサー1
本当にありがとうございます。私はビデオ比較ツールを作成し、Pythonを使って作業しています。必要な人のために同じbashコードをPythonで実装したものは次のとおりです。
使ったWindows 10とPython 2.7しかし、Linuxでは似ている必要があります。
# python 2.7, windows 10, test mpv
import os
import sys
import subprocess
RUNTIME_CWD = os.path.dirname(__file__)
MPV_EXE_PATH = [os.path.join(RUNTIME_CWD,"mpv","mpv.exe")] # the python script is located one dir above the mpv directory
FRONT_playlist = ['C:\\Users\\PC\\Videos\\test\\test_front1.mp4', 'C:\\Users\\PC\\Videos\\test\\test_front2.mp4']
REAR_playlist = ['C:\\Users\\PC\\Videos\\test\\test_rear1.mp4', 'C:\\Users\\PC\\Videos\\test\\test_rear2.mp4']
videos=""
# supressed the terminal output using, --no-terminal
for REAR_playlist, FRONT_playlist in zip(REAR_playlist,FRONT_playlist):
# picture in picture
videos += " --{{ {0} --no-terminal --external-file={1} --lavfi-complex=[vid2]scale=640x360[small];[vid1][small]overlay[vo] --}}".format(REAR_playlist, FRONT_playlist)
# top bottom
# videos += " --{{ {0} --no-terminal --external-file={1} --lavfi-complex=[vid2]scale=1920x1080[big];[big][vid1]vstack[vo] --}}".format(REAR_playlist,FRONT_playlist)
# side to side
# videos += " --{{ {0} --no-terminal --external-file={1} --lavfi-complex=[vid2]scale=1920x1080[big];[big][vid1]hstack[vo] --}}".format(REAR_playlist,FRONT_playlist)
subprocess.call([MPV_EXE_PATH[0]] + videos.split() + sys.argv[1:])