M3U-Playlist für TV-Serie mit Start/Stop-Markern erstellen

  • Ich hab vor einiger Zeit mal ein Programm benutzt, mit dem ich für eine TV-Serie eine M3U-Playlist mit #EXTVLCOPT:start-time= und #EXTVLCOPT:stop-time= erstellt habe, um den Vor- und Abspann zu überspringen. Ich weiß nicht mehr, wie das Programm hieß und finde es auch ums verrecken nicht mehr auf meinem PC. Es war, glaube ich, portable.

    Hat jemand eine Idee, was für ein Programm man für sowas benutzen könnte?

  • Hab mal eine Batch-Fingerübung mit mediainfo geschrieben. Das Skript schreibt die Playliste in in den aktuellen Ordner und trägt alle Dateien in diesem und allen Unterordnern mit relativen Pfaden ein, hier im Beispiel MP3. Gearbeitet wird mit der ANSI-Codepage 1252, Anpassungen an Unicode/UTF-8 fehlen. Zwei Parameter werden verarbeitet, die Start- und Stopzeit in Sekunden. Getestet hab ich mit dem VLC und einer Fritzbox, bei großen Sammlungen ist viel Geduld erforderlich. Status- oder Fehlermeldungen und sonstiges Lametta ad libitum.

    Have fun.

  • Danke dafür, aber ich suche etwas anderes. Das Programm hatte eine Liste der Dateien, die zur Playlist hinzugefügt werden sollen, eine Anzeige der Videodatei, die "üblichen" (Schnell-)Vor-, Rücklauf, Einzelbild-Buttons, und die Anzeige der Laufzeit, und man konnte die Start-/Stop-Werte für die einzelnen Dateien jeweils in die *.m3u übernehmen.
    Es geht dabei nicht nur um die Vor- und Abspann, sondern auch um die Einleitung "was in der letzten Folge geschah". Ich hab mir damit sozusagen einen durchgehenden Film zusammen"schneiden" können, ohne die Einzelvideos zu bearbeiten, die man sich also auch einzeln weiterhin ansehen kann.

  • Du meinst sicher eine Fensteranwendung mit GUI, damit kann ich nicht dienen. Du kannst aber die m3u-Playliste im Editor öffnen und parallel die Datei im VLC abspielen und den Start-Wert per Hand korrigieren.


    Ich hab das Skript noch geändert, es akzeptiert jetzt positive und negative Sekunden. Die positiven werden zum Start addiert, die negativen zur Gesamtdauer. Ich habe festgestellt, dass ich es selbst nutze. :)


    Ich werde noch eine Shuffle-Funktion einbauen.

  • Habe eben nach der gleichen Funktion gesucht und habe dabei diesen Beitrag entdeckt und auch noch eine Lösung gefunden wie ich den Anfang und das Ende einer Videodatei mit Hilfe der Playlist abschneiden kann.

    Es geht mit XSPF-Playlist-Dateien für VLC und trägt folgendes ein:

    <vlc:option>start-time=42</vlc:option>
    <vlc:option>stop-time=45</vlc:option>


    Wenn es Thema nicht schon abgehakt ist.

    Gruß Tron0070

  • Diese Xiph-Playlist kannte ich noch nicht, ich weiss auch nicht, ob irgendein Gerät damit umgehen kann. Mein Receiver liest das oben von mir benutzte Format. Eine Shuffle-Funktion habe ich als Batch auch geschrieben, das Programm rechnet bei 3000 Titeln aber über 24h, was einerseits an meinen spärlichen Programmierkenntnissen und andererseits an der furchtbar lahmen Speicherverwaltung von cmd liegt. Ich habe es dann als awk-Skript realisiert, das läuft blitzschnell. Es ist auf einem anderen PC, bei Interesse kann ich es aber hier reinstellen.

  • Ich kannte das Playlistformat auch noch nicht aber ich finde es wirklich gut. Es erspart mir Video oder auch Audiodateien zu schneiden. Die Datei bleibt unverändert aber ich kann den Anfang, das Ende und auch in der Mitte die Werbung o.ä. ausschneiden.

    fryk, ich kann dir nicht ganz folgen. Du schreibst von einem Receiver: was für ein Receiver hast du? Und dein oben geschrieben Skript ist für Windows aber das neuere ist wie du schreibst AWK, aber das ist doch Linux oder? Ich würde gerne sehen was du für ein Skript geschrieben hast. Und wofür du es verwendest.

  • Ich habe einfach eine Playliste mit dem Skript oben erstellt und die dann mit dem neuen Skript "verwürfeln" lassen. Batch eignet sich für komplexere Programmieraufgaben garnicht, weil vernünftige Datenstrukturen fehlen und es keine Entwicklungsumgebung, Debugger usw. gibt. Ausserdem tut Batch nicht immer das, was man denkt, dass es tun sollte. Es gibt endlos Stolpersteine, die unter bestimmten Bedingungen nur auftreten, all das muss auswendig gelernt werden.

    Das folgende Skript liest die Playliste in den Speicher ein um eine Zufallsliste zu erzeugen. Vermutlich wäre die Verwendung von Temporärdateien der bessere Ansatz gewesen, ich habe das nicht weiter verfolgt.

    Code
    @echo off &setlocal disabledelayedexpansionset "PList="for /f "delims==" %%a in ('set . 2^>nul') do set "%%~a="for /f "tokens=2delims=:" %%a in ('chcp') do set /a codepage=%%~a >nul 2>&1chcp 1252 >nulfor %%a in (*.m3u) do set "PList=%%~a" &call:process-m3uchcp %codepage% >nul 2>&1goto:eof:process-m3usetlocal disabledelayedexpansionfor /f "delims=" %%b in ("%PList%") do set "SList=%%~nb.shuffle%%~xb"Echo Create "%SList%".set /a random2=%random%set ".ItemPos=%random%%random2%"set /a .LineCount=0, .ItemCount=0, .PropCount=0for /f "usebackqdelims=" %%b in ("%PList%") do (	set /a .LineCount+=1	set "PLine=%%~b"	setlocal enabledelayedexpansion	if "!PLine:~0,1!"=="#" (		set /a .PropCount+=1		set "..!.ItemPos!.!.PropCount!=!PLine!"	) else (		set ".#!.ItemPos!=!PLine!"		set /a .!.ItemPos!.PropCount=!.PropCount!		set /a .ItemCount+=1, .PropCount=0		set ".ItemPos=!random!!random!"	)	for /f "tokens=1*delims==" %%c in ('set .') do (if ""=="!" endlocal) &set "%%~c=%%~d")(for /f "tokens=1*delims==" %%b in ('set .#') do (	for /f "delims==#." %%d in ("%%~b") do (		for /f "tokens=1*delims==" %%e in ('set ..%%~d. 2^>nul') do echo(%%f	)	echo(%%~c))>"%SList%"exit /b


    awk ist eine Skriptsprache, die für viele Systeme verfügbar ist, die Skripte können unverändert aud Windows-, Linux- und OS X-Systemen eingesetzt werden. Aktuelle GNU-awk (gawk.exe) Binaries für Windows erhält man beispielsweise hier. Eine Einführung gibt es hier (PDF, deutsch), das exzellente Lehrbuch von Bruce Barnett hier. Wenn das Skript "Shuffle.awk" heißt, geht die Syntax so: awk -f Shuffle.awk PlayList.m3u > ShufflePlayList.m3u

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!