play-with-mpv python server problem

0

Sono abituato a usare Play with MPV estensione di Chrome su Arch linux che funziona anche su MacOS. Il problema è che non funziona come servizio per me su MacOS.

Se avvio direttamente play-with-mpv nel terminale, il server è in ascolto sulla porta 7521 e posso eseguire il video di youtube in MPV con il tasto destro del mouse su Chrome.

Se inizio play-with-mpv come servizio LauncherAgents con il plist corretto, si avvia, ascolta ma non fa nulla .. proprio dentro Chrome su Play with MPV non fa nulla.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>play.with.mpv</string>
    <key>RunAtLoad</key>
    <true/>
    <key>Program</key>
    <string>/Users/e/Library/Python/3.7/bin/play-with-mpv</string>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Port listening

Python    2673              e    3u  IPv4 0x51d94fea3b0e559f      0t0    TCP *:7531 (LISTEN)

Contenuto del play-with-mpv avvio del server

#!/usr/local/opt/python/bin/python3.7

# -*- coding: utf-8 -*-
import re
import sys

from server import start

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(start())

Ho anche provato a mettere play-with-mpv all'interno di Users & Groups > Login items con lo stesso risultato di LaunchAgents .

play.with.mpv.plist si trova in ~/Library/LaunchAgents/play.with.mpv.plist

Provato anche a caricarlo tramite launchctl

launchctl load ~/Library/LaunchAgents/play.with.mpv.plist

Mentre chiama direttamente play-with-mpv nel terminale la richiesta sta funzionando e mpv si apre fuori

http://localhost:7531/?play_url=https://www.youtube.com/watch?v=BoY1TNKO-bY

ma come servizio in esecuzione l'indirizzo non è accessibile e non fa nulla. Stranamente, posso eseguire il ping di localhost alla porta 7531 , è attivo, in esecuzione e in ascolto.

Sono molto nuovo in MacOS quindi per favore sii paziente con me :) Grazie

Aggiorna

per ora questo funziona in parte (ha aggiunto PATH e percorso completo python3.7)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/Users/e/Library/Python/3.7/bin:/usr/local/bin</string>
    </dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>play.with.mpv</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/python3.7</string>
        <string>/Users/e/Library/Python/3.7/bin/play-with-mpv</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/play.with.mpv.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/play.with.mpv.stdout</string>
</dict>
</plist>

MA c'è ancora qualcosa di straordinario. Il video sta perdendo frame (circa 3-4 / s). Se eseguo lo stesso video direttamente dal terminale con eg; mpv https://www.youtube.com/watch?v=BoY1TNKO-bY o eseguendo manualmente il play-with-mpv server, il video sta funzionando bene, zero fotogrammi persi.

    
posta 5ulo 23.12.2018 - 12:52
fonte

1 risposta

0

Ho funzionato. Ecco la soluzione completa:

Plist: ~/Library/LaunchAgents/play.with.mpv.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/Users/e/Library/Python/3.7/bin:/usr/local/bin</string>
    </dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>play.with.mpv</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/python3</string>
        <string>/Users/e/Library/Python/3.7/bin/play-with-mpv</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/play.with.mpv.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/play.with.mpv.stdout</string>
</dict>
</plist>

Poni il PATH a python3 - trovalo con which python3 e lo script play-with-mpv python!

Carica plist:

launchctl load ~/Library/LaunchAgents/play.with.mpv.plist

mpv config in ~/.config/mpv/mpv.conf

video-sync=display-resample

se questo non aiuta, prova questo

opengl-early-flush=no

Quel parametro video-sync era la chiave - non un singolo fotogramma caduto più.

    
risposta data 07.01.2019 - 02:58
fonte

Leggi altre domande sui tag