Film abspielen und an Kapitelmarkierungen anhalten

sia

gesperrt
Registriert
26 März 2015
Beiträge
5.926
Ort
FFM (NSFW)
Hallo Leute,

Ich würde gerne einen von youtube heruntergeladenen Film so mit Kapitelmarkierungen versehen, dass man ihn am Stück abspielen kann, er aber automatisch bei jedem Kapitel pausiert. Ist das irgendwie möglich? Wenn ja, wie?

Ich nutze GNU/Linux, ich bitte also um Vorschläge die unter diesem Betriebssystem funktionieren.
 
Das einzige was mir gerade einfällt ist das Video je kapitel in einzelne Videos zu splitten und eine DVD draus zu machen.
Dann mit einem DVD-Authoring Tool das Menü so strukturieren das du z.B. beim klick zum nächsten Video kommst.
Am ende eines Videos springt er dann wieder zum Menü usw.
 
HTML5 Video - dann ein Array mit "Haltemarken" in Sekunden" angeben und das Video pausieren lassen:

[src=javascript]let stopMarks = [10, 20, 30] // Zeitmarken in Sekunden

function timeHandle (evt) {
for (let x in stopMarks) {
let timeMark = stopMarks[x]
if (timeMark <= Math.ceil(evt.target.currentTime)) {
evt.target.pause() // Video pausieren
stopMarks.splice(x, 1) // Array Zeit entfneren
return
}
}
}

document.querySelector('video').addEventListener('timeupdate', timeHandle) // erstes "video" element mit Listener für timeUpdate [/src]
 
  • Thread Starter Thread Starter
  • #4
Nice, funktioniert sehr gut. An den Ansatz hatte ich gar nicht gedacht.

Leider funktioniert das nur, wenn ich klicke oder auf die Leertaste drücke, dass es weiter geht. Wie mache ich es, dass das auch mit der "Next"-Taste geht (also Bild↓ aka PgDn)? Dann könnte ich das mit meinem Presenter steuern…

Kann man das mit genauerer Zeitangabe machen?

Bonuspunkte wenn du nen Player findest der Kapitelmarkierungen hat :D
 
Hier in einem Guss:

[src=javascript]let videoClip = document.querySelector('video')
let stopMarks = [10.125, 20.32, 30.45]

function timeHandle (evt) {
for (let x in stopMarks) {
let timeMark = stopMarks[x]
if (timeMark <= evt.target.currentTime) {
evt.target.pause() // Video pausieren
stopMarks.splice(x, 1) // Array Zeit entfernen
return
}
}
}

function handleKeyUp (evt) {
switch (evt.keyCode) {
case 33:
// Page up
videoClip.play()
break
case 34:
// Page down
break
default:
break
}
}

videoClip.addEventListener('timeupdate', timeHandle)
document.addEventListener('keyup', handleKeyUp)[/src]

Du kannst auch Millisekunden angeben. :)
Und du kannst auch die Controllen ausblenden, siehe hier:

Attribut "Controls".

Frage: Sollen die Kapitelmarkierungen eingeblendet werden, oder willst du dazwischen springen können? :)

Mit:
[src=javascript]videoClip.currentTime = 10.125[/src]

kannst du das Video auf eine Position setzen.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #6
Cool, danke! Das ist soweit super :)

Wenn ich noch was brauche mach ich das selbst; dieser HTML5 Player scheint ja recht flexibel zu sein.
 
Zurück
Oben