yt-clipper und seefahrt

This commit is contained in:
marko
2021-02-28 17:05:03 +01:00
parent f6af0df817
commit 49f9ff75ff
8 changed files with 273 additions and 8 deletions

View File

@@ -1,12 +1,9 @@
mdFiles := $(wildcard trainings.d/*.md)
pdfFiles := $(patsubst trainings.d/%.md, build/trainings.d/pdf/%.pdf, $(mdFiles))
revealjsFiles := $(patsubst trainings.d/%.md, build/trainings.d/revealjs/%.html, $(mdFiles))
.PHONY: all
all: $(pdfFiles)
build/trainings.d/pdf/%.pdf: trainings.d/%.md
mkdir -p build/trainings.d/pdf
pandoc -t beamer -o $@ $<
all: $(pdfFiles) $(revealjsFiles)
.PHONY: installReveal3
installReveal3:
@@ -14,12 +11,19 @@ installReveal3:
tar -xzvf 3.9.2.tar.gz
mv reveal.js-3.9.2 reveal.js
.PHONY: testReveal
testReveal:
pandoc -t revealjs -s -o revealTest.html revealTest.md -V revealjs-url=https://unpkg.com/reveal.js@3.9.2/
.PHONY: revealjs
revealjs: $(revealjsFiles)
.PHONY: echo
echo:
echo $(mdFiles)
echo $(pdfFiles)
echo $(revealjsFiles)
build/trainings.d/pdf/%.pdf: trainings.d/%.md
mkdir -p build/trainings.d/pdf
pandoc -t beamer -o $@ $<
build/trainings.d/revealjs/%.html: trainings.d/%.md
mkdir -p build/trainings.d/revealjs
pandoc -t revealjs -s -o $@ $< --css css/cwsvJudo-revealjs.css -V revealjs-url=https://unpkg.com/reveal.js@3.9.2/

44
onlineTraining/clips.json Normal file
View File

@@ -0,0 +1,44 @@
[
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/hopserlauf.webm",
"from": "01:09.000",
"to": "01:24.833"
},
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/kniehebelauf.webm",
"from": "01:24.833",
"to": "01:39.542"
},
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/anfersen.webm",
"from": "01:39.542",
"to": "01:54.625"
},
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/kniehebelauf.webm",
"from": "01:39.542",
"to": "01:54.625"
},
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/***REMOVED***-kniebeuge.webm",
"from": "03:45.250",
"to": "04:05.875"
},
{
"source": "https://www.youtube.com/embed/6wcWZZw6RGk",
"target": "videos.d/indianer.webm",
"from": "04:36.917",
"to": "05:05.458"
},
{
"source": "https://www.youtube.com/embed/zDj1Yf4d07I",
"target": "videos.d/taiso-sumo.webm",
"from": "03.103",
"to": "20.804"
}
]

View File

@@ -0,0 +1,5 @@
.reveal .slides > section{
background: rgb(60, 60, 60);
background: rgba(60, 60, 60, 0.4);
}

16
onlineTraining/guertel.md Normal file
View File

@@ -0,0 +1,16 @@
- springen über den gürtel
- varianten:
- vor und zurück
- Skifahren
- seitlich hin und her
- seitlich von einem bein aufs andere
- in der Standwaage
- hinweise:
- mit zwischenhopsern ist es ersmmal einfacher
- hockwenden über den Gürtel
- Gürtel zwischen den Händen und mit den Füßen wechselseitig des
Gürtels springen
- superman über den Gürtel
- auf einer Seite des Gürtel den Superman und den Raketen
ausweichen indem man über den Gürtel rollt und so die Seiten
wechselt

View File

@@ -0,0 +1,46 @@
---
title: 2021-02-10 OnlineTraining der Judoka des Chemnitzer WSV
---
# Eidechse im heißen Wüstensand
- um die Gliedmaßen abzukühlen: Rückenstrecker
- immer auf einer Seite den Arm und auf der anderen Seiten das Bein
anheben
- und Wechsel
<video src="videos.d/eidechse-om-heissen-sand.mp4" loop mute autoplay/>
# Serengeti
# Reisevorbereitungen
## Kofferpacken
- Kniebeuge
- mitzählen
## Treppensteigen
- Wendeltreppe
- mitzählen
## Auto einräumen
- Kniebeuge
- mitzählen
## Fahrt zum Flughafen
- Luftsitzen
- 3-mal 20 s
## Koffer einladen
- Kniebeuge
- mitzählen

View File

@@ -0,0 +1,28 @@
# Serengeti
## Reisevorbereitungen
### Kofferpacken
- Kniebeuge
- mitzählen
### Treppensteigen
- Wendeltreppe
- mitzählen
### Auto einräumen
- Kniebeuge
- mitzählen
### Fahrt zum Flughafen
- Luftsitzen
- 3-mal 20 s
### Koffer einladen
- Kniebeuge
- mitzählen

View File

@@ -0,0 +1,54 @@
---
title: Seefahrt
---
# Was zuletzt geschah {data-background="images.d/seefahrt.d/beach-1824855.jpg"}
Wir haben Tiere beobachtet und sind auf einer Insel gelandet. Nun
stellt sich die Frage, wie geht es von hier weiter?
# Suche nach einem Schiff {data-background="images.d/seefahrt.d/beach-5960371.jpg"}
Wir laufen den Strand entlang.
# Hopserlauf {data-background-video="videos.d/hopserlauf.webm" data-background-video-loop="loop"}
- Hopserlauf
- mit den Armen mitschwenken
- 3-mal 30 sek
# Kniehebelauf {data-background-video="videos.d/kniehebelauf.webm" data-background-video-loop="loop"}
- Kniehebelauf
- Knie berühren die Hände
- 3-mal 30 sek
# Rennen
Um das wegfahrende Schiff noch zu erreichen, müssen wir
hinterherrennen.
Wir brauchen den Obi (Gürtel).
Beide Übungen 3-mal 30 s.
# Kniehebelauf{data-background-video="videos.d/kniehebelauf.webm" data-background-video-loop="loop"}
- im Gürtelkreis wird's anspruchsvoller
- je kleiner der Gürtelkreis, desto anspruchsvoller
# Hopserlauf{data-background-video="videos.d/hopserlauf.webm" data-background-video-loop="loop"}
# Gürtellauf{data-background-video="videos.d/gürtellauf.webm" data-background-video-loop="loop"}
- geht auch am Ort statt entlang des Gürtels
# Schwimmen
Leider zu spät!
## Flaschenkreisel{data-background-video="videos.d/flaschenkreisel.webm" data-background-video-loop="loop"}
## Handtuchzug {data-background-video="videos.d/handtuchzug.webm" data-background-video-loop="loop"}

68
onlineTraining/yt-clipper.py Executable file
View File

@@ -0,0 +1,68 @@
#! /usr/bin/env python3
import youtube_dl
import json
import ffmpeg
import subprocess
import glob
jsonFileName = "clips.json"
clipDict = {}
with open(jsonFileName) as jf:
clipDict = json.load(jf)
ydl_opts = {"outtmpl": "%(id)s"}
for clip in clipDict:
infoDict = None
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
infoDict = ydl.extract_info(clip['source'], download=False)
ydl.download([clip['source']])
if infoDict is not None:
stream = ffmpeg.input(
# @todo This is a very bad hack because the outtmpl options doesn't seem to be working if the file gets reencoded
glob.glob(infoDict['id']+"*")[0],
ss=clip['from'],
to=clip['to'],
)
stream = ffmpeg.filter(stream, "scale", height="480", width="-2" )
stream = ffmpeg.output(stream,
clip['target'],
vcodec="vp9",
**{
"an":None, "y":None,
"pass":"1",
"b:v":"512k", "minrate":"375k", "maxrate":"1088k",
"quality":"good",
}
)
try:
ffmpeg.run(stream)
except:
print(infoDict)
stream = ffmpeg.input(
glob.glob(infoDict['id']+"*")[0],
ss=clip['from'],
to=clip['to'],
)
stream = ffmpeg.filter(stream, "scale", height="480", width="-2" )
stream = ffmpeg.output(stream,
clip['target'],
vcodec="vp9",
**{
"an":None, "y":None,
"pass":"2",
"b:v":"512k", "minrate":"375k", "maxrate":"1088k",
"quality":"good",
}
)
try:
ffmpeg.run(stream)
except:
print(infoDict)
#640x480p @ 24,25,30 512 (LQ), 750 (MQ) 256 (LQ) 375 (MQ) 742 (LQ) 1088 (MQ)