MPVでリアとフロントダッシュカムのビデオプレイリストを再生できますか?

MPVでリアとフロントダッシュカムのビデオプレイリストを再生できますか?

ブラックボックスで前後の映像を同時に再生しようとしています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]'

最初のカバレッジとすべてが正常です。 ここに画像の説明を入力してください。

2番目のオーバーレイ、最初のオーバーレイの再生を見る: ここに画像の説明を入力してください。

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:])

おすすめ記事