
Zitat von
ColdStorm
So ColdCut schreibt ab jetzt auch die Frames in die Cutlists.
Sehr schön, jetzt muß sich das nur noch schnell verbreiten, dann steht demfröhlichen Schneiden der US-Sender nix mehr im Weg.
Gut das der CA anscheinend von haus aus damit klarkommt, das wäre wahrscheinlich schwieriger geworden das zu fixen.
Also ich hab _mein_ Multicut jetzt patchen können damit es mit den Frameraten zurecht kommt. Allerdings ist das noch die letzte Version vom 2.10, bei der anderen hab ich es nicht geschafft, weil bowmore da die Schnittanzeige mit mplayer umgebaut hat und ich einfach nicht durchsteige. (Dieses ganze Zeug mit den subs ist _für mich_ auch ehrlich gesagt unnötig und verkompliziert das Ganze.) Vielleicht bin ich auch jetzt nur zu müde.
Auf jeden Fall hab ich die app.video.setFps in den projects.js Zeilen rausgeschmissen, dann hab ich
Code:
fps=$( grep FramesPerSecond $tempdir/cutlist | tr -d "\r" | sed 's/FramesPerSecond=//'
nach
Code:
fps=$(mplayer -frames 0 -identify "$1" |grep ID_VIDEO_FPS |cut -d'=' -f2)
geändert, die gleiche Variable in showEDL auch rausgeworfen, weil die sonst nur stört und dort sowieso keine Anwendung findet. So klappt das Schneiden, auch in der neueren Version.
Schnittüberprüfung:
In showCuts () hab ich
Code:
checktime[$index]=$(echo "((${checktime[$helpindex]} * 25) + ${durationFrame[$index]} / 25" | bc)
nach
Code:
checktime[$index]=$(echo "((${checktime[$helpindex]} * $fps) + ${durationFrame[$index} ) / $fps" | bc -l)
geändert, damit der mplayer beim Schnitte prüfen auch diese richtig abspielt.
Das ist auch der Knackpunkt mit der neueren Version, dort wird statt durationFrame durationTime verwendet und das will irgendwie nicht so recht.
Scneiden
Das war es eigentlich schon.
Andere Sache:
Beim Testen hab ich rausgefunden warum ich in letzter Zeit öfters halbtote mplayer-Prozesse gefunden habe, die kein File mehr hatten aber noch fröhlich Memory konsumierten.
In getAspect () wird der mplayer aufgerufen und der Output in eine Pipe mit while-Schleife geschickt. Die wird mit 'break' auch schön abgebrochen, aber der mplayer nicht und rödelt weiter im Hintergrund, wenn das Skript länsgst fertig ist.
Da hab ich unten mal ein 'pkill -n mplayer' reingesetzt, damit er Feierabend machen kann.
'-n' killt den letzten aufgerufenen Prozess dieses Namens, ohne würde er jeden laufenden beenden, aber das will man sicher nicht, wenn man gerade am Film schauen ist.
while read line; do # Warten bis mplayer aspect-infos liefert oder anfaengt zu spielen
[.......]
if [[ $line == "VO: [null]"* ]] ; then
echo 1
break
fi
done
pkill -n mplayer
Vielleicht hilfts ja dem einen oder anderen, oder bowmore bekommt ne Idee (und Zeit) sich mit dem Schnittüberprüfung zu beschäftigen.
Lesezeichen