Starten Sie XBMC über die Befehlszeile und spielen Sie den Film ab dem Zeitpunkt ab

5

Was ist der einfachste Weg, um XBMC zu starten und einen Film ab einem bestimmten Zeitpunkt abzuspielen?

Anscheinend gibt es nicht viele Befehlszeilenoptionen ( ref ), und die XBMC-Python-Skripts scheinen so konzipiert zu sein, dass sie nach dem Start von XBMC aus ausgeführt werden ( ref ). Außerdem möchte ich in der Lage sein, Dateien abzuspielen, die nicht unbedingt in der XBMC-Medienbibliothek enthalten sind.

Kugelfisch
quelle
Möchten Sie den Film zu einem bekannten Zeitpunkt starten? Oder wollen Sie wollen wieder den Film zu spielen , von wo aus Sie das letzte Mal aufgehört haben ? Ich bin mir sicher, dass XBMC das Abspielen einer Datei ab der letzten bekannten Zeitmarke fortsetzen kann.
Root
Dies sieht nach einer möglichen Lösung aus, wenn Sie eine bekannte Zeit haben: "Um ein Video an einem bestimmten Punkt zu suchen, fügen Sie die Zeile - xbmc.Player.seekTime (int sec)" hinzu. Quelle: assembla.com/wiki/show/oniontv-plugin/ …
root
@root Schreibe keine Antworten in die Kommentare.
DanteTheEgregore
@DanteTheEgregore root sagte, "es sieht aus wie ...", also ist er sich nicht sicher und er hat seinen Kommentar nicht zu einer funktionierenden Lösung ausgeweitet, also denke ich nicht, dass es eine Antwort sein sollte. (Zumindest wäre es keine würdige Antwort, wenn es meiner Meinung nach nicht funktioniert, und ich denke, wäre es eine Antwort, er hätte Kommentare erhalten, dass es nicht vollständig ist / funktioniert ... bitte erweitern ... etc ...)
Rik
Da die Antwort mehr Fragen enthielt, auf die ich die Antwort nicht kenne, ziehe ich die Antwort zurück. Allerdings denke ich, dass @root etwas hatte, das eine Antwort hätte sein sollen.
Killermist

Antworten:

2

Ich denke, ich werde dieses Problem angehen. Sie haben nach dem einfachsten Weg gefragt , XBMC zu starten. Nun, hier ist der einfachste Weg. Ich sage nicht , es ist ein einfacher Weg , aber es ist der einzige Weg , um einen Film zu laufen (die nicht in Ihrer Bibliothek ist) und arbeiten mit dem Sprung zu Minuten (oder Sekunden).

Zuerst müssen Sie XBMC einrichten, um ein Skript beim Start automatisch auszuführen. Dazu müssen wir eine Datei mit dem Namen autoexec.pyin erstellen %appdata%\XBMC\userdata.
Normalerweise ist das so C:\Users\<username>\AppData\Roaming\XBMC\userdata.
Mach dir keine Sorgen. Sie müssen dafür Python nicht "lernen". Kopieren Sie einfach den Code in diese Datei.

Dort erstellen autoexec.py:

import xbmc
import xbmcgui
import os

class Main:
  def __init__(self):
    playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
    playlist.clear()

    try:
      file = os.getenv('XBMC_PLAY','')
      jump = os.getenv('XBMC_JUMP','0')
    except:pass
    if os.path.isfile(file):

      xbmc.executebuiltin('Notification(Playing '+file+',Jump to '+jump+',5000)')
      playlist.add(file)

      try:
        xbmc.Player().play( playlist)
      except:pass

      try:
        xbmc.Player().seekTime(int(jump))
      except:pass

m = Main()

Ich habe das Skript von hier aus angepasst (thnx @root) und es so gemacht, dass es Ihre Umgebungsvariablen auf XBMC_PLAYund überprüft XBMC_JUMP. Auf diese Weise können wir XBMC aus einer Batchdatei aufrufen und die Datei wird abgespielt.

Wieder keine Sorge. Wenn diese Umgebungsvariablen nicht vorhanden sind, funktioniert XBMC wie gewohnt.

Als Nächstes müssen wir die Batchdatei erstellen, um die richtigen Werte festzulegen und XBMC auszuführen.
XBMC_PLAYist deine Filmdatei und XBMC_JUMPgibt die Sekunden an, in denen du springen musst (es kann sein 0).

Am einfachsten wäre:

set XBMC_PLAY=<YOUR_MOVIE>
set XBMC_JUMP=<SECONDS_TO_JUMP>
"C:\Program Files(x86)\XBMC\XBMC.exe"
set XBMC_PLAY=
set XBMC_JUMP=

Aber da ich ein Perfektionist bin;) habe ich einen aufwendigeren Stapel erstellt, auf dem Sie eine Datei ablegen können und der nach den "Sprungminuten" fragt. Es ist auch möglich, diese Batchdatei
xbmc_run moviefile.avi 15direkt aufzurufen .

Sie können sogar eine Dateizuordnung für .avietc ... erstellen , um diese Batchdatei anstelle eines anderen Players auszuführen :)

Erstellen xbmc_run.bat

@echo off
if "%1"=="" goto usage
if not exist %1 goto filenotfound

::-----------------------------------------------
:: set-up temp-variable for Program Files
::-----------------------------------------------
set ProgFiles86=%ProgramFiles(x86)%
if not "%ProgFiles86%"=="" goto win64
set ProgFiles86=%ProgramFiles%
:win64

::-----------------------------------------------
:: get %2 parameter. if not given ask for seconds
::-----------------------------------------------
set jump=%2
if "%jump%"=="" set /p jump="Jump to minute: "
set /a jump*=60

::-----------------------------------------------
:: set user-environment variables and start xbmc
::-----------------------------------------------
:play
set XBMC_PLAY=%1
set XBMC_JUMP=%jump%
echo Starting %XBMC_PLAY% and jump to %XBMC_JUMP% seconds
"%progFiles86%\XBMC\XBMC.exe"
set XBMC_PLAY=
set XBMC_JUMP=
goto :eof

:usage
echo Usage: %0 movie [jump]
exit/b 1

:filenotfound
echo File %1 not found
exit/b 1

Hier funktioniert es perfekt. Ich habe XBMC v12.2 "FRODO" verwendet. Wenn Sie Hilfe benötigen, lassen Sie es mich wissen.

Bearbeiten : Es ist mir gerade eingefallen, dass das Auffordern, in Minuten zu springen , intuitiver sein kann als Sekunden (wie ich es ursprünglich getan habe). Also habe ich den obigen Code geändert , um die Sprungminute abzufragen und für XBMC in Sekunden umzurechnen.

Wenn Sie den Sprung in Sekunden zurück wollen, können Sie diese 2 Zeilen ändern:

if "%jump%"=="" set /p jump="Jump to second: "
set /a jump*=1

Legen Sie einfach eine Filmdatei auf diese Batchdatei, geben Sie die Sprungminute ein (oder nur, enterwenn keine vorhanden ist) und los geht's :)

Rik
quelle
Ich benutze kein Windoze, daher kann ich die Funktionalität Ihrer Antwort nicht überprüfen, aber es ist umfassender als das, was ich aus dem Kommentar von root erhalten habe.
Killermist