Video stoppen

Support zu Fansubs
User avatar
DigiFox
Kámi-sama
Kámi-sama
Posts: 468
Joined: 04.05.2008 17:00
Gruppe: 秘密~
Contact:

Re: Video stoppen

Post by DigiFox »

Hm dein Skript:

Code: Select all

Video=DirectShowSource("omgwtfbbq.mp4",fps=23.976,convertfps=true)
Videotonlos=Video.killaudio()
Audiotonlos=Tone(600.0,440,48000,2,"silence")
Audio=Audiodub(Videotonlos,Audiotonlos)

Teil1=Video.trim(0,586)
Teil2=Audio.trim(587,587)
Teil3=Video.trim(588,1485)
Teil4=Audio.trim(1486,1486)
Teil5=Video.trim(1487,2000)
last Teil1 + Teil2 + Teil3 + Teil4 + Teil5

Loop(72,587,587)
Loop(360,1486,1486)

Vielleicht kann wer anderes mal was zu schreiben, mir fällt jetzt auch nix auf, aber ist das Video nur 2000 Frames lang?

-------------------------
1486 + 72 + 360 (die anzahl an frames die das video durch die Loops zusätzlich erhält) = 1918. Das kann ja kein Zufall sein.
Wenn er beim 1. 1486 + 72 vom 1. bei 16xx den Sound erst aus macht, dann würd ich sagen, das es an Loop liegt, aber wenn er es bei 1918 macht, dann müsste er den vom 1. Loop mit einrechnen und seine eigene Länge, das geht eigentlich nicht. Der 1. Bereich bei 587, wäre ja dann beispielsweise bei +72 = 6xx und du meintest der ist inordnung.

Normal muss es stimmen, da Loop nur den Bereich, der keinen Sound hat um die Framanzahl, die du angibst verlängert und dann beim nächsten Frame weitermacht, das einzige wäre noch beim Sound Bitraten-Modus : variabel <- das würde vielleicht noch probs machen.
生きるべきか死すべきか、それが問題だ
babbsagg
Otaku
Otaku
Posts: 15
Joined: 10.04.2009 22:36

Re: Video stoppen

Post by babbsagg »

Es gab einen Vorschlag für mein Script, der garnicht schlecht ausschaut.
Nach dem 1. Loop ist Dein zweiter "Zielframe" #1486 ja gar nicht mehr #1486, sondern #1486+72. Also wird der 2. Loop eine Stelle vor dem 2. Zielframe wiederholen, weil der ja bereits "nach hinten gewandert" ist (wg. dem 1. Loop)

Korrigiert:

Code: Select all

Loop(72,587,587) # 1 Pause für 3 Sekunden
Loop(360,1486+72,1486+72) # 2 Pause für 15 Sekunden
Besserer, und einfacher nachzuvollziehender Stil ist es, solche Manipulationen "von hinten nach vorne" aufzuziehen. (Wenn man hinten etwas wegschneidet oder hinzufügt, ändert das nichts an den Positionen der vorderen Frames) :

Code: Select all

Loop(360,1486,1486) # 2 Pause für 15 Sekunden
Loop(72,587,587) # 1 Pause für 3 Sekunden
Mit dieser von-hinten-nach-vorne - Methode behält man auch bei seeehr vielen Trim's/Loop's/etc. den Überblick.
Das klang erstmal sehr vielversprechend und ich habs mal getestet:

Code: Select all

Video=DirectShowSource("omgwtfbbq.mp4",fps=23.976,convertfps=true)
Videotonlos=Video.killaudio()
Audiotonlos=Tone(600.0,440,48000,2,"silence")
Audio=Audiodub(Videotonlos,Audiotonlos)

Teil1=Video.trim(0,586)
Teil2=Audio.trim(587,587)
Teil3=Video.trim(588,1485)
Teil4=Audio.trim(1486,1486)
Teil5=Video.trim(1487,1917)

last Teil1 + Teil2 + Teil3 + Teil4 + Teil5

Loop(360,1486,1486)
Loop(72,587,587)
Leider hats bei der 2ten Pause auch nicht hingehauen, die fällt jetzt auf frame 1540 (1486+72).
Es klappt aber wenn ich folgendes tue:

Code: Select all

Teil1=Video.trim(0,586)
Teil2=Audio.trim(587,587)
Teil3=Video.trim(588,1412)
Teil4=Audio.trim(1413,1413) # 1486-72
Teil5=Video.trim(1414,1917)

last Teil1 + Teil2 + Teil3 + Teil4 + Teil5

Loop(360,1413,1413)  # 1486-72
Loop(72,587,587)
Ich versteh zwar nicht ganz warum aber so funkionierts. Bloß wird das enorm aufwenig wenn ich da 200 Pausen drin habe und jeweils die ganzen zusätzlichen frames addieren und vorher abziehen muss.
babbsagg
Otaku
Otaku
Posts: 15
Joined: 10.04.2009 22:36

Re: Video stoppen

Post by babbsagg »

Hab jetzt ne perfekte Lösung:

Code: Select all

DirectShowSource("omgwtfbbq.mp4",fps=23.976,convertfps=true)

cut(0,3591,5974,15000) # intro rausschneiden

loop_mod(72,587) # Pause 1 für ~ 3 Sekunden, bei frame 587 
loop_mod(360,1486) # Pause 2 für ~ 15 Sekunden, bei frame 1486
loop_mod(72,1918) # Pause 3 für ~ 3 Sekunden, bei frame 1918
...

function cut(clip c, int start, int ende, int start2, int ende2) {
teil1=c.trim(start,ende)
teil2=c.trim(start2,ende2)
teil1+teil2}

function loop_mod(clip c, int anzahl, int frame) {
a=c.trim(0,frame-1)
b=c.trim(frame,frame).loop(anzahl,0,0).Amplify(0.0)
d=c.trim(frame+1,0)
a++b++d}
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests