PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich unter Linux HD-Dateien schneiden?



bartslart
14.06.2011, 01:10
Wie im Titel schon gefragt: Wie kann ich unter Linux aus HD-Dateien die Werbung herausschneiden?

Momentan benutze ich das multicut_light.sh Skript, aber das macht leider häßliche Übergänge / Artefakte an manchen der Schnitte.

Avidub wird hier manchmal empfohlen, läuft aber nur unter Windows.

MPW
14.06.2011, 23:09
Was passiert, wenn du qotr als Decoder nimmst und direkt on-the-fly die Werbung rausschneiden lässt? Oder kommt der mit HD Filmen nicht zu recht. Ich selber habe noch keine Erfahrung mit HD Filmen.

Nur so eine Idee.

Der Hintergrund ist dir bewusst? Eigentlich wird in Video-Files nur die Änderung von Bild zu Bild gespeichert, nur an sogenannten Keyframes werden vollständige Bilder gespeichert. Du musst also eine Software finden, die einen neuen Keyframe an der Schnittstelle errechnet.

bartslart
14.06.2011, 23:51
Was passiert, wenn du qotr als Decoder nimmst und direkt on-the-fly die Werbung rausschneiden lässt?
Der funktioniert bei mir nicht. Fehlermeldung:

Error: Could not connect to server to verify account data.

Dafür könnte ich evtl einen extra Thread aufmachen.

Aber das Problem scheint mir zu sein, dass irgendein Programm aufgerufen werden muss, um das Schneiden zu machen. multicut_light.sh macht es nicht selbst, sondern ruft avidemux auf. qotr wird das wohl auch so machen. Die Bildfehler werden vermutlich von avidemux produziert.

Ich dachte also an eine Lösung, die nicht das, sondern z.B. ffmpeg zum schneiden benutzt.




Der Hintergrund ist dir bewusst? Eigentlich wird in Video-Files nur die Änderung von Bild zu Bild gespeichert, nur an sogenannten Keyframes werden vollständige Bilder gespeichert. Du musst also eine Software finden, die einen neuen Keyframe an der Schnittstelle errechnet.
Ja, weiß ich. Ist das bei DivX (also der normalen Auflösung) anders? M.W. ist das da auch so. Übrigens kann Avidemux das mit dem neue Frames berechnen, jedenfalls bei den DivX Dateien.

SGE
15.06.2011, 03:14
Aber das Problem scheint mir zu sein, dass irgendein Programm aufgerufen werden muss, um das Schneiden zu machen. multicut_light.sh macht es nicht selbst, sondern ruft avidemux auf. qotr wird das wohl auch so machen. Die Bildfehler werden vermutlich von avidemux produziert.


Das Problem ist, das man Avidemux auf der Kommandozeile nicht den Parameter übergeben kann, damit es die Schnittstellen bei den h264-Dateien richtig rendert. Per Hand in der Gui geht diese Abfrage mit einem Klick, aber nicht in der Shell. Das bezieht sich jetzt auf HQ, mit HD hab ich mit Avidemux oder multicut noch gar nicht experimentiert, aber das ist ja auch h264. Da wirst du um die Lösung mittels Virtualdub nicht herumkommen, das läuft mit Wine und multicut ist auch dafür ausgelegt. Näheres dazu steht im dortigen Thread.

Usul
15.06.2011, 13:21
Hieß es nicht früher, dass Avidemux (unter Linux) gar kein Smart-Encoding bei h264 kann? Hat sich das jetzt dahingehend verschoben, dass es das kann, nur nicht nicht über die Konsole? Das wäre etwas merkwürdig, und wenn dem so wäre, könnte man den avidemux-Leuten vielleicht mal mit einem Feature-Request auf die Pelle zu rücken. Sollte nicht so aufwendig sein, die Funktion über die Kommandozeile zugänglich zu machen, wenn sie intern sowieso schon existiert.

SGE
16.06.2011, 00:30
HQ schneiden mit Avidemux geht, auch wenn einige weiterhin anderes behaupten weil es halt in alten Versionen nicht ging. Man muß nur die Frage nach der Frame Accuracy mit No beantworten, dann kommen auch ordentlich lauffähige Dateien hinten raus.
Aber um genau zu sein funktioniert --force-alt-h264 auch mit avidemux2_cli in der Shell, aber nicht in einer Projektdatei, bzw. nicht zusammen mit dem Parameter --run $PROJEKTDATEI.js, den man für die Cutlist braucht, sondern nur mit --load $FILM , was wiederum nicht mit Projektdateien geht. Und in die Projektdatei selber kann man diese Option auch nicht setzen.
Angefragt ist das im AD-Forum schon öfter, keine Ahnung ob das in der neuen 2.5.5 nun geht, ich hab es noch nicht ausprobiert.
Ich hatte mich auch mangels Abspielmöglichkeit von HQ nicht so sehr um die Sache gekümmert, aber jetzt wo ich einen Xtreamer hab stoß ich da wieder drauf. Muß die Tage mal die neue Version kompilieren und mich mal schlau machen ob sich da was gebessert hat.

bartslart
26.06.2011, 00:46
HQ schneiden mit Avidemux geht, auch wenn einige weiterhin anderes behaupten weil es halt in alten Versionen nicht ging. Man muß nur die Frage nach der Frame Accuracy mit No beantworten, dann kommen auch ordentlich lauffähige Dateien hinten raus.
Aber um genau zu sein funktioniert --force-alt-h264 auch mit avidemux2_cli in der Shell, aber nicht in einer Projektdatei, bzw. nicht zusammen mit dem Parameter --run $PROJEKTDATEI.js, den man für die Cutlist braucht, sondern nur mit --load $FILM , was wiederum nicht mit Projektdateien geht. Und in die Projektdatei selber kann man diese Option auch nicht setzen. Prima dass das irgendwie gehen soll.
Allerdings bin ich verwirrt: WAS genau soll ich jetzt als Parameter bei multicut_light.sh einstellen?


Angefragt ist das im AD-Forum schon öfter, keine Ahnung ob das in der neuen 2.5.5 nun geht, ich hab es noch nicht ausprobiert.Geht das mit 2.4.3? Die hab ich nämlich. Neueres Einspielen ist hier gar nicht so einfach.


Ich hatte mich auch mangels Abspielmöglichkeit von HQ nicht so sehr um die Sache gekümmertKann das nicht jeder Computer? Den Bildschirm füllts ja noch nichtmal voll aus.

Usul
26.06.2011, 11:26
Prima dass das irgendwie gehen soll.
Da hast du SGE falsch verstanden: Er meint, es geht prinzipiell mit Avidemux, aber nicht auf die Weise, wie Multicut es voraussetzt.


Kann das nicht jeder Computer? Den Bildschirm füllts ja noch nichtmal voll aus.
Nicht jeder schaut sich Videos am Computer an, manche haben dafür externe Hardware (DVD-Player oder dergleichen), die sowas durchaus mal nicht können.

SGE
27.06.2011, 23:49
Multicut kann da nichts dran ändern, das muss schon von Avidemux richtig implementiert werden. Mit der 2.43 geht das jedenfalls nicht. Den 2.5.5 hab ich mir jetzt hier lokal als backport gebaut, aber noch nicht ausprobiert, werde ich diese Woche mal nachholen.
Und ja, ich bevorzuge Filme doch gemütlich im Bett am Fernseher und nicht am Schreibtisch anzuschauen. Und der Rechner, den ich die ganze Zeit hatte spielte HQ auch nicht so ab das es ein Vergnügen gewesen wäre, das ruckelte doch arg.. Der Vorteil von Linux ist ja das es auch auf älterer Hardware noch gut läuft und für das was ich mache brauche ich nicht zwingend einen x-Core Boliden mit High-End Graka. Der den ich jetzt habe spielt aber schon HQ, aber das kann ja jetzt auch mein Xtreamer. Bevorzuge wegen des einfacheren Schneidens aber trotzdem DivX.

MPW
30.06.2011, 19:55
Funktioniert qotr denn normalerweise bei dir? Ich verstehe ehrlich gesagt die ganze Aufregung um diese Skripte, die mit komplizierten Verfahren die Werbung killen nicht. Ich mache es mit qotr seit einiger Zeit und es könnte nicht besser sein. Die entsprechenden Stellen werden bei decodieren direkt übersprungen und smart encoding wird auch unterstützt.

Für HQ, mp4 und avi klappt's.

Gruß
MPW

/edit: Zugegeben, man muss halt einen click in der Gui machen...aber was soll's. Ich versuche hier:

http://www.otrforum.com/showthread.php?t=64283

ja auch schon seit einziger Zeit herauszufinden, wie man otrdecoder in der Terminal-Version zum Werbung rausschneiden bringt. Im Prinzip
habe ich es dort ja auch gelöst, nur habe ich noch kein Skript geschrieben, was automatisch die cutlist lädt.

Das kann ja nicht so aufwendig sein. Und dann einfach otrdecoder -e xxx@xxx.xx -p xxx -C Cutlist -i xxxx.otrkey. Das funktioniert!

Gruß

Leseesel
30.06.2011, 21:03
qotr produziert leider fehlerhafte Dateien, was zumindest zu Bildstörungen, insbesondere beim Springen innerhalb des Films, führen kann. Außerdem ist es sehr absturzfreudig, was Nerven und Decodierpunkte kosten kann. Zumindest unter echtem Windows. Vielleicht ist es ja unter wine besser?

MPW
01.07.2011, 15:26
Wieso wine? Es gibt doch eine Linux-Version!

Meinst du das mit dem Bildstörungen bezogen auf HD oder allgemein? Wie gesagt, für avi, mp4 und hq klappt's bestens.

Gruß
MPW

Leseesel
01.07.2011, 16:12
Wieso wine? Es gibt doch eine Linux-Version!


Ach so! Vielleicht ist die ja fehlerfreier als die Windows-Version. Unter WinXP finde ich das Teil nahezu unbenutzbar, weil es ständig abstürzt und dann Decodierungen mehrfach gezählt werden.



Meinst du das mit dem Bildstörungen bezogen auf HD oder allgemein? Wie gesagt, für avi, mp4 und hq klappt's bestens.


Ich habe es mehrfach mit HQ probiert und auch von anderen im Forum gelesen, dass da wohl etwas mit dem Index nicht stimmen soll. Ob ich den Effekt auch bei Hd hatte, kann ich nicht mehr sagen.

Wenn ich im Player (z.B. VLC, egal welche Version) im Video mit dem Rollbalken ein Stück weiter springe, gibt es anschließend beim Abspielen absolutes Bildchaos, bis dann irgendwann das nächste Keyframe kommt und das Chaos beseitigt. Der Effekt tritt auf, sobald man qotr anhand der Schnittliste schneiden lässt. Schneidet man nicht, bzw. später mit einem anderen Programm, ist alles ok.

MPW
02.07.2011, 11:50
Wenn ich im Player (z.B. VLC, egal welche Version) im Video mit dem Rollbalken ein Stück weiter springe, gibt es anschließend beim Abspielen absolutes Bildchaos, bis dann irgendwann das nächste Keyframe kommt und das Chaos beseitigt. Der Effekt tritt auf, sobald man qotr anhand der Schnittliste schneiden lässt. Schneidet man nicht, bzw. später mit einem anderen Programm, ist alles ok.

Das kann ich bestätigen. Ich verstehe allerdings nicht, wie das beim schneiden entsteht. Ich dachte, das wäre ein allgemeines Problem...

Ehrlich geagt spule ich aber auch in Videos, die schon Werbefrei sind nicht mehr. Von daher stört mich das nicht so. Alles klar, wenn dich das stört, dann kommt qotr leider nicht in Frage für dich.

/edit: Kann mir jemand den technischen Hintergrund erklären? Warum passiert das beim scheiden mit qotr, was macht qotr falsch?

Usul
03.07.2011, 13:46
Die Kompressionsalgorithmen, die bei OTR verwendet werden, sind in einem Punkt vergleichbar (wie eigentlich alle Verfahren, die primär auf geringen Platzbedarf ausgelegt sind): Es wird nicht jedes Bild komplett abgelegt, sondern es werden nur alle paar darzustellenden Bilder das Bild komplett gespeichert (das nennt man dann Keyframe), bei allen nachfolgenden Bildern werden dann nur die Unterschiede zum vorherigen Bild gespeichert. Das spart deutlich Platz.

Allerdings ist es auch problematisch beim Schneiden: Man kann nicht einfach mehr beliebig Bilder (Frames) rausschneiden und es funktioniert alles noch. Wenn man so eine Ansammlung von Keyframe + geänderte Nachfolgebilder hat, und man schneidet die ersten Frames weg (also Keyframe + die unmittelbar nachfolgenden), dann fehlt es für die darauf folgenden Bildern an Informationen, diese sauber darzustellen. Die Nachfolgebilder bestehen nur aus Informationen, die sich auf die vorangegangenen Bilder beziehen, die haben wir aber gerade weggeschnitten -> man sieht nur Müll.

Das fällt normalerweise nur beim Spulen massiv auf, obwohl das Problem beim normalen anschauen auch besteht, aber in der Regel nicht so massiv oder gar nicht auftaucht. Wenn man dem Player sagt, bitte spulen, springt er zur Stelle, wo man hin will, aber nicht exakt, sondern zum letzten Keyframe davor, berechnet die nachfolgenden (Änderungs-)Frames nach und ist am gewünschten Punkt. Ist das Keyframe weg, was er braucht, sieht man Müll. Wenn man den Film aber normal schaut, und der ist framegenau geschnitten, kommt es auch irgendwann zu diesem Problem, das Keyframes fehlen, allerdings ist das, was vor dem Schnitt kam, in der Regel exakt das, was nach dem Schnitt weitergeht. Die notwendigen Informationen, die rausgeschnitten wurden, sind quasi zufällig passen da, von vor dem Schnitt.

Will man diese Probleme beim Schneiden vermeiden, muss das Schnittprogramm beim Rausschneiden eines Keyframes ein passendes neu errechnen. Unter Linux ist es nun so, dass bei den üblichen Bibliotheken das bei DivX kein Problem ist und schon lange funktioniert. Nur für H264 gibt es das bisher praktisch noch nicht oder erst seit kurzem, und da noch nicht perfekt umgesetzt (die Avidemux-Diskussion hier im Thread).

Leseesel
03.07.2011, 23:36
Das kann so nicht ganz stimmen: Beim Framegenauen Schneiden wird neu berechnet, wenn es nötig ist und entsprechend auch ein neues Keyframe erstellt. Außerdem könnte das nicht annähernd erklären, warum Springen im gesamten Video Probleme bereitet und nicht nur an den Schnitten. Es steht auch im Widerspruch dazu, dass mit den Schnittprogrammen an jeder beliebigen Stelle problemlos geschnitten werden kann, ohne dass es zu diesen Müll-Effekten kommt.

Die einzige Erklärung, die mir im Moment nachvollziehbar erscheint: Keyframes (zumindest die aller meisten) sind vorhanden, jedoch findet das Abspielprogramm aus irgend einem Grund diese nicht mehr, wenn der Film mit dem Easy-Decoder geschnitten wurde, z.B. weil ein Index falsch ist oder fehlt. Würden Keyframes fehlen, so wäre das Bild auch beim normalen Abspielen Müll.

monarc99
04.07.2011, 00:55
Die einzige Erklärung, die mir im Moment nachvollziehbar erscheint: Keyframes (zumindest die aller meisten) sind vorhanden, jedoch findet das Abspielprogramm aus irgend einem Grund diese nicht mehr, wenn der Film mit dem Easy-Decoder geschnitten wurde, z.B. weil ein Index falsch ist oder fehlt.

Dann versuche ich mich mal in einer Erklärung: :)

Beim Springen innerhalb eines Films, springt der Player zu einem Frame, welcher dem gewünschten Zeitpunkt am nächsten ist und welcher als Keyframe markiert ist.

qotr verwendet die ffmpeg libs, welche einen Bug aufweisen (-wiesen?), der beim Kopieren von H264 Streams jeden Frame (ob Keyframe oder nicht) als Keyframe markiert hat.

Sprich nach dem Kopieren ist jedes Bild als Keyframe markiert und die Player springen einfach mitten rein. Theoretisch müsste man qotr nur ne gefixte ffmpeg lib unterschieben und der Bug sollte weg sein. Theoretisch - weil ich nicht weiss, ob dieser Bug jemals behoben wurde ;)

mit freundlichen Grüssen
monarc

monarc99
04.07.2011, 15:53
Wenn ja, dann ist der Bug schon längere Zeit gefixt, denn mit CA und ffmpeg kann man ohne diesen Fehler schneiden.


Das ist leider kein geeigneter Test, da der Bug nicht im Codec (sprich libavcodec) steckt, sondern in einen der anderen ffmpeg Libs. Der Fehler tritt bei CA deshalb nicht auf, weil Virtualdub die AVIs schreibt.
Zum Testen musst dir ne aktuelle ffmpeg.exe holen und damit eine AVI(H264,MP3) -> AVI kopieren.

mit freundlichen Grüssen
monarc

pasde
05.07.2011, 08:17
Erstmal interessiert mich aber wie das Schneiden überhaupt *irgendwie* geht, ohne dass die geschnittenen HD-Filme schlecht aussehen.

Nach Anleitung installieren (VirtualDub & FFDshow!)
http://elbersb.de/otrverwaltung/?q=main

codec.py durch neue ersetzen
http://www.otrforum.com/showthread.php?t=53400&p=324062&viewfull=1#post324062

Eventuell in AviDemux -> Bearbeiten -> Einstellungen ->Audio/Video einstellen. Bei mir (Ubuntu 10.04 Natty) stottert sonst der Ton.

Einstellungen:
http://s1.directupload.net/images/110705/rnke8ai2.png (http://www.directupload.net)

MP4 schneiden funktioniert nicht, ist aber ja ein anderes Thema. :)

V.G. Pasde