ey Sir, wird gemacht, kleinen Moment bitte
26 fps (Un-) Sinn (aus 'Was captured ihr denn so?')
-
-
"Aye, Sir" meinst du sicher...
-
poste nicht, um die Anzahl deiner Posts zu erhöhen
{ Gut, editier ich halt in Zukunft direkt... ;D | LigH }
Edit: Frechheit mir in mein Post zu fuschen -
-
danke fuer das Sample.
aber Du hattest recht, telecide bringt nix und restore24 wird auch nix bringen, da dieser Film ein "gekonntes" (wer verzapft denn nur immer diesen Mist??) beispiel von direktem 24p -> 50i mit blending ist.
restore24 geht nur bei 24p -> 60i -> 50i Wandlungen (also bei NTSC->PAL wandlungen)dann bleibt wohl fielddeinterlace(blend=false)
oder bessernoch kerneldeint(order=0) die beste Wahl, wenn Du progressive encoden moechtest.am besten ist in diesem Falle allerdings interlaced zu encoden.
-
so, erwischt, Sat1!
der Film wurde anscheinend von 25fps (respektive 24fps/Kino) auf 26fps bescheunigt!Ich bin des Ding mal Fieldweise durchgegangen und hab festgestellt, dass es mehr als 24 bzw 25 einzelbilder pro sekunde gibt.
Baron, wende mal folgendes script auf das sample an:
dgbob(x,order=0)
selectevery(50,1,3,5,7,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,42,44,46,48,49)Du wirst Stauen, jegliches Blending ist komplett verschwunden. es gibt auch keine verdoppelten Bilder. das Video ist 26fps.
ich habe mal die stellen fett gemacht, an denen normalerweise ein doppeltes bild sein muesste, wenn es einen 24 -> 50i wandlung waere.
-
Hmm, ich verfolge das Ganze hier mit einigem Interesse.
@scharfi: Aus welchen Gründen macht man sowas?
-
mehrere Gruende, vorranig aber:
damit man Werbung senden kann?
zweitranging:
Faulheit/Dummheit
drittrangig:
der durchschnitts TV-kosument wirds eh niemals merken! -
Zitat
damit man Werbung senden kann?
Macht für mich am meisten Sinn, bei der immer größeren Gier nach Werbeminuten bei den Privaten.
26/25 ergibt einen Faktor von 1.04, macht bei einem 90min-Film rund 3,5 min mehr Zeit für Werbung...
-
Das ist ja strange...
also zuerst mal: Ich hab doch tff (Schlagt mich)
zum Rest: Was heißt das jetzt für mich ? Ich hab nen Film, der 26fps ist ? Länge bleibt gleich, mit dem Ton also kein Problem, aber auf ne DVD ? muß ich dann mit changefps(25) weitermachen ? Muß ich das Skript nochmal für meinen Film ändern ?
Ich blicke gerade gar nix mehr...:( -
ich bastle Dir gleich mal ne funktion, damit Du ueberpruefen kannst, ob das wirklich 26fps sind bzw. ob das blending-muster uebr den gesamten Film hinweg konstant ist. wenn nicht, hammer nen problem.
-
Obergeil !!!
-
Code
Alles anzeigenloadplugin("C:\dvdrip'in\mpeg2dec3.dll") loadplugin("C:\dvdrip'in\dgbob.dll") function unblend26fps(clip clip, int offset) {a=dgbob(clip,order=0) b=blankclip(a) out = (offset == 0) ? selectevery(a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,42,44,46,48,49) : \selectevery(b.trim(0,-offset)+a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,42,44,46,48,49) assumefps(out,25,true) resampleaudio(48000) } mpeg2source("capture2.d2v").crop(0,86,0,-86) unblend26fps(0)
so mit diesem script arbeite ich derzeit an deinem Problem!
anstelle des samples laedtst du nun dein komplettes Video. beachte aber, dass Du denn offset nach jeder werbepause neu einstellen musst!
fuer den Offset bei unblend26fps sind werte von 0 bis 49 gueltig. einfach mal durchprobieren und dann berichten, ob die blends auch ueber die komplette laenge hinweg unsichtbar bleiben.
btw. die 26fps -> 25fps konvertierung (nebst audio) ist auch schon drin!
-
Alles klar.
Mein Skript sieht erstmal so aus:
Code
Alles anzeigenloadplugin("C:\PROGRA~1\GORDIA~1\dgbob.dll") function unblend26fps(clip clip, int offset) {a=dgbob(clip,order=1) b=blankclip(a) out = (offset == 0) ? selectevery(a,50,1,3,5,7,9,11,13,15,17,19,21,23,24 ,26,28,30,32,34,36,38,40,42,44,46,48,49) : \selectevery(b.trim(0,-offset)+a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26, 28,30,32,34,36,38,40,42,44,46,48,49) assumefps(out,25,true) resampleaudio(48000) } avisource("D:\Video\Capture\capture.avi").Trim(570,30996).unblend26fps(0)+avisource("D:\Video\Cap ture\capture.avi").Trim(44465,86298).unblend26fps(0)+avisource("D:\Video\Capture\capture.avi").Tr im(99849,147229).unblend26fps(0)+avisource("D:\Video\Capture\capture.avi").Trim(160366,196219).un blend26fps(0)+avisource("D:\Video\Capture\capture.avi").Trim(209410,236948).unblend26fps(0) crop(2,88,696,404).AddBorders(0,98,0,98) BicubicResize(720,576,0,0.5)
Damit ist der komplette Film eingeladen, er ist jetzt 2:06:54.200 lang statt vorher 2:02:01.400, nach Adam riese also genau 26 -> 25. Paßt also.
Und was mache ich bei den Offsets ? Verschiedene Werte eintragen, und dann schauen, wo die Blendings verschwinden ? Das für jeden Block ?:)
EDIT: Wenn ich den Einstieg hab, kann ich die restlichen Offsets nicht anhand der weggeschnittenen Frames berechnen ???
EDIT2: Order=1 ! -
nein, Du musst jeden block einzeln mit dem offset ausprobieren! also erst das video in einzelteile zer stueckeln
a=input.trim(xxx,xxx).unblend(nummer)
b=input.trim(xxx,xxx).unblend(nummer)
c=input.trim(xxx,xxx).unblend(nummer)
usw.
und dann
a+b+cahso, hab meiner fkt. ne aenderung verpasst:
Codefunction unblend26fps(clip clip, int offset) {a=dgbob(clip,order=0) b=blankclip(a) out = (offset == 0) ? selectevery(a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,42,44,46,48,49) : \selectevery(b.trim(0,-offset)+a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,42,44,46,48,49) assumefps(out,25,true).trim(int(offset/2),0) resampleaudio(48000) }
-
das ich ne andere ordder, als du hab, liegt wahrscheinlich am MPEG, ist aber nicht so wild.
-
Bin noch bei der Arbeit, aber es scheint so ungefähr zu passen, bis auf daß es zum Ende immer ein klein bissel mehr wird, hab ich den Eindruck, also z.B. Größenordnungen von 6 am Anfang und ~9 am Ende
EDIT:
Ja, kann ich nochmal bestätigen, man kriegt zwar dadurch das Blending supi weg, aber zum Ende brauch man höhere Werte, so daß es manchmal am Anfang nicht mehr paßt. Ne Idee ? außer die Dinger nochmal zu teilen ?
EDIT2:
Stand der Dinge ist folgendes Skript:
Code
Alles anzeigenloadplugin("C:\PROGRA~1\GORDIA~1\dgbob.dll") function unblend26fps(clip clip, int offset) {a=dgbob(clip,order=1) b=blankclip(a) out = (offset == 0) ? selectevery(a,50,1,3,5,7,9,11,13,15,17,19,21,23,24 ,26,28,30,32,34,36,38,40,42,44,46,48,49) : \selectevery(b.trim(0,-offset)+a,50,1,3,5,7,9,11,13,15,17,19,21,23,24,26, 28,30,32,34,36,38,40,42,44,46,48,49) assumefps(out,25,true).trim(int(offset/2),0) resampleaudio(48000) } a=avisource("D:\Video\Capture\capture.avi").Trim(570,30996).unblend26fps(13) b=avisource("D:\Video\Capture\capture.avi").Trim(44465,86298).unblend26fps(7) c=avisource("D:\Video\Capture\capture.avi").Trim(99849,147229).unblend26fps(42) d=avisource("D:\Video\Capture\capture.avi").Trim(160366,196219).unblend26fps(23) e=avisource("D:\Video\Capture\capture.avi").Trim(209410,236948).unblend26fps(30) a+b+c+d+e crop(2,88,696,404).AddBorders(0,98,0,98) BicubicResize(720,576,0,0.5)
Ist auch ganz fein, aber wie gesagt, um das ganze ideal zu bekommen, müßte man (je nach Länge) am Anfang ca. 4 weniger als am Ende haben, ist das automatisch zu realisieren, durch irgendeinen Umbau im Skript / der Funktion ?
BTW: Daß Du bff hast, liegt wohl daran, daß ich das dem CCE gesagt habe, weil ich ja selber dachte, es wäre so...
Vielen Dank soweit schonmal
Aber wie kommt man auf solche Ideen ? -
@ Baron, scharfi:
Von der allgemeinen "Meinungumfrage" habt ihr euch inhaltlich reichlich entfernt - so langsam lohnt sich eine Splittung in einen eigenen Beitrag für euer 26-fps-Problem.
-
Solange es inhaltlich hilft. Ich wundere mich eh, daß das hier noch dranhängt und bei Talk im Turm steht, aber wo solls hin ? Videobearbeitung ? Capturen ? Avisynth ?
-
LigH: Du darfst splitten, denn wir sind hier ja mal wieder extrem beim fachsimpeln,
hier traut sich ja garkeiner mehr, was bezueglich zum eigentlichen Thread-Titel
zu sagen.Baron: auf Arbeit hatte ich eine Idee.
warum mache ich es mir so schwer und benutze selectevery zur auslese?!?
changefps reicht dafuer doch vollkommen aus!
ausserdem kannst Du changefps auch float-framerate ruebergeben,
was fuer dein wegrutsch-problem sehr sehr hilfreich sein duerfte:Codefunction unblend26fps(clip clip, int offset, float fps, bool debug) { offset = offset + 39 a = (debug == true) ? clip.ShowFrameNumber() : clip b = changefps(trim(a,0,-1),framerate(a)*100).assumefps(framerate(a)) out = changefps((b.trim(0, -offset) + a), fps) assumefps(out, 25, true).trim(int(offset / 2 + 2), 0) resampleaudio(48000) }
ein aufruf ist dann wie folgt (ich hab den deinterlacer nach draussen verlagert,
da ich grad mit anderen deinterlacern spiele, um das treppchen-problem wegzubekommen)dgbob(clip,order=0)
unblend26fps(0,26,false)
0 ist wie immer der offset
26 die geschaetzte framerate. und hier wird es nun interessant!setze anfangs 26 fps ein, und korrigiere den Offset solange,
bis der ANFANG des Filmes/Blocks blendfrei ist.
Wenn es nun gegen ende des Blockes wieder anfaengt blends zu geben,
korrigierst Du die geschaetzte Framrate leicht nach oben, oder unten
(vllt so mit +/- 0.001 anfangen) so muesstest Du Dich eingentlich per
trail & error recht gut an die eigentliche framrate hinhangeln koennen!und debug ist nix anderes als das einblenden der Fieldnummern.
zum besseren finden des offsets -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!