Speichert Avidemux manchmal Unsinn?

ludwig4

Cadet 4th Year
Registriert
Juni 2010
Beiträge
96
Mein Receiver VU+ liefert die gewünschten Fernsehaufnahmen im TS-Format. Unter Windows 7/32 Bit wandle ich sie mit dem Freeware-Programm XMedia Recode nach MKV (AVC/H.264 und AAC) um: Speicherplatzbedarf danach nur noch 15 bis 40 Prozent, allerdings Zeitaufwand mehr als Filme-Laufzeit, deswegen meist nachts. Zuletzt schneide ich mit Avidemux Version 2.6.8 die Vor- und Nachlaufzeiten ab sowie falls vorhanden die Werbung heraus, speichere die Datei und prüfe sie mit dem Pot-Player.

Dies funktionierte bis vor kurzem stets klaglos. Jetzt tritt aber gelegentlich ein Fehler auf beispielsweise wie hier geschildert:

Die MKV-Datei von XMedia Recode ist in Ordnung. Die geschnittene von Avidemux läuft bis 20 Sekunden vor dem Ende einwandfrei. Dann bleibt der Ablaufzeitzähler stehen, der Ton der letzten neun Sekunden wird ununterbrochen wiederholt und das Bild zeigt nur noch kleine ruckartige Veränderungen, bis ich die Wiedergabe abbreche.

Bei der Suche nach der Ursache stellte ich fest:

Der Fehler tritt gleichartig auf, wenn ich die Datei von XMedia Recode in Avidemux nur lade und unverändert wieder speichere. Anscheinend liegt der Fehler also in der Speicherung.

Der VLC Media-Player spielt die Datei von XMedia Recode richtig ab. Bei der von Avidemux fehlt in den ersten neun Sekunden der Ton, von da an ist er synchron mit dem Bild zu hören. Der Ablaufszeitzähler zeigt herausgegriffen z.B. in schneller Folge 18:45 18:55 18:46 18:56 18:47 18:57 usw. an - das sind wohl getrennt die Zeiten von Ton und Bild. Wenn ich irgendeinen Punkt in der Ablaufsleiste anklicke, damit der Film von hier aus fortgesetzt wird, so kommt als Ton zuerst ein alter Rest und dann erst der zum Bild gehörende. Am Ende läuft es wie oben für die letzten 20 Sekunden geschildert.

Bei Google habe ich nichts Derartiges finden können. Wer hat eine Idee, wie die Sache in Ordnung gebracht werden kann? Was kann ich noch dafür tun?

ludwig4
 
Wenn du einmal aus dem .ts nen h264/aac gemacht hast wird schneiden/re-encoden meistens Probleme mit sich bringen.

Bereits komprimiertes Video sollte man eigentlich möglichst wenig weiter bearbeiten. Dabei gibts gerne Probleme mit der a/v Syncronität oder z.b. knacksen bei Schnitten oder Neu-encoden /resizen bringt enormen Bildqualitätsverlust.
Am besten du besorgst dir ein Programm / tutorial, was alles in einem Schritt macht, also demuxen, schneiden, croppen, resizen, encoden, remuxen.

ich fand das Prog ganz gut: http://sourceforge.net/projects/staxmedia/
Staxrip, hab es aber jahrelang nicht gebraucht.
ist halt so eine Gui, die andere Programme startet/benutzt, fast alles öffnen kann, erledigt viel automatisiert, bzw nach einem festgelegten Profil und man kann eine Warteschlange erstellen, die dann abgearbeitet wird..

Edit: glaube man konnte bestimmte Formate nur an bestimmten Frames (I / P frames) schneiden (ohne das video neu zu encoden), da die darauffolgenden Bilder auf den z.b. I-Frames beruhten, bzw daraus berechnet wurden.
Fehlt nun das frühere Frame mit Teilen des aktuellen Frame, bekommst du diese gräßlichen Artefakte.^^
Also am besten erst (oder nur an I-oder evt. P-Frames?) schneiden und dann zu mkv/mp4 wandeln, ansonsten bekommste schnell Fehler ins Material.
 
Zuletzt bearbeitet:
Zu Avidemux und unsinnige Speicherung kann ich auch was sagen:
Family Guy 20 Minuten rein > 4 Minuten raus. Ohne schnitt, nur Codierung von FLV zu MP4. Und dummerweise wegen Vertrauen in das Programm erst zu spät gemerkt.
 
Speichere einfach nach AVI h264 ab und schneide mit VIRTUALDUB (Audio/Video -> Direct Stream Copy)
geht am schnellsten
ist dann zwar AVI Container aber es funktioniert.

schneller geht es bei mpeg2 kodiertem Material (SD)
da sagst du einfach video+audio kopieren in xmediarecode
ausgabeformat mpeg2 (audio/video synchronisieren anhaken)

falls dein Abspielgerät kein AVI kennt einfach probieren die .AVI nach .MPG (bei Mpeg2) oder .MP4 / .MKV (bei AVC) umbenennen
wenn es nicht geht mit dem Umbenennen-Trick bleibt nur nochmaliges encodieren mittels xmediarecode.
Dann sollte aber das Ausgangsmaterial eine sehr gute Qualität haben.
bei h264 FuillHD nehme ich da zuerst immer Konstante Qualität 10 (sind ungefähr 20mbit oder mehr)
nachher je nach Film Konstante Bitrate 3000-6000 oder Konstante Qualität 20

zusätzlich gibt es noch einen h264-Ausgabecodec der auch im VirtualDub funktioniert
http://sourceforge.net/projects/x264vfw/files/

p.s. ich hoffe xmediarecode bekommt einmal ne Schnittfunktion, damit wäre vielen geholfen
 
Zuletzt bearbeitet:
cbtestarossa schrieb:
Speichere einfach nach AVI h264 ab und schneide mit VIRTUALDUB (Audio/Video -> Direct Stream Copy)
geht am schnellsten
ist dann zwar AVI Container aber es funktioniert.
Warum diese Umwege??? Erstmal hat H.264-Video im AVI-Container nichts zu suchen - der ist nämlich für die Verwaltung eines so komplexen Kompressionsformates (Stichworte: B-Frames mit multiplen Referenzen; keine Unterscheidung von I- und IDR-Frames) gar nicht ausgelegt... was unter Umständen für Probleme sorgen kann.

Doch selbst wenn unbedingt VirtualDub benutzt werden soll - warum nur mit 10% seiner Funktionen? VirtualDub bietet seit Version 1.10 (also seit ca. 4 bis 5 Jahren) eine Input-Plugin-Schnittstelle und Unterstützung für die Ansteuerung von externen Encodern. Von fccHandler gibt es z.B. ein FFmpeg-basiertes Input-Plugin, über das VirtualDub alle Formate öffnen und decodieren kann, die FFmpeg beherrscht (auch *.ts Dateien). Und hier findet man eine (engl.) Anleitung mit Presets für die Verwendung von diversen Kommandozeilen-Encodern & -Muxern mit VirtualDub. Somit kann man theoretisch in einem Rutsch die *.ts Datei öffnen, beliebig(!) zurecht schneiden und als neu encodiertes H.264-Video im Matroska-Container ausgeben.
 
Zuletzt bearbeitet:
Tom Keller schrieb:
Warum diese Umwege??? Erstmal hat H.264-Video im AVI-Container nichts zu suchen - der ist nämlich für die Verwaltung eines so komplexen Kompressionsformates (Stichworte: B-Frames mit multiplen Referenzen; keine Unterscheidung von I- und IDR-Frames) gar nicht ausgelegt... was unter Umständen für Probleme sorgen kann.

Also bei AVI-Demux ist der AVI-Container der einzige der bei mir noch nie Ärger bei Aufnahmen mit H264 gemacht hat, sowohl beim schneiden als auch beim Zusammenfügen ohne neues encodieren.
 
Das sind dann aber Glücksfälle. 'Schalk666' hat ja oben schon darauf hingewiesen, dass manche Frame-Arten existieren, die auf umliegende Frames referenzieren und ohne diese umliegenden Frames nicht fehlerfrei decodiert werden können. Da liegt z.B. eine Ursache für Probleme. Der AVI-Container kennt nämlich nur eine Form von I-Frames. I-Frames sind Videoframes, die den kompletten Bildinhalt gespeichert haben und selbst nicht auf andere Frames angewiesen sind. Vor H.264 waren I-Frames auch quasi "Grenzen", über die hinaus anderen Frames keine Referenzen erlaubt waren - dadurch war Schneiden per "Direct stream copy" an I-Frames unproblematisch. Mit H.264 sind aber auch Referenzen ÜBER I-Frames hinaus erlaubt - sprich: nach einem I-Frame kann ein P-Frame kommen, dass Inhalte aus dem P-Frame vor dem I-Frame übernommen hat und daher auf seine Existenz angewiesen ist. Würdest du dieses vorherige P-Frame weg schneiden, gäbe es beim P-Frame danach Decodierungsfehler.

Im Gegensatz zu XviD/DivX, MPEG-2 & Co. darf also bei H.264 (beim verlustlosen Schnitt) nicht einfach an jedem beliebigen I-Frame geschnitten werden. Erlaubt ist beim Cutten von H.264 per "Direct stream copy" nur der Schnitt an ganz speziellen I-Frames - nämlich: den IDR-Frames. IDR-Frames sind I-Frames, über deren Grenzen hinaus keine Referenzen erlaubt sind (sprich: IDR-Frames haben die selbe Funktion wie jegliche I-Frames bei XviD/DivX, MPEG-2 & Co.). Wenn du jetzt eine H.264-AVI in VirtualDub per "Direct stream copy" schneidest, werden dir aber sowohl I-Frames als auch IDR-Frames grundsätzlich nur als "I-Frames" angezeigt. Wenn du Glück hast, sind alle I-Frames in dem H.264-Video IDR-Frames - dann ist das Schnittergebnis fehlerfrei. Wenn du aber Pech hast, ist vielleicht keins der I-Frames ein IDR-Frame - dann würde JEDER Schnitt per "Direct stream copy" einen Fehler an der Schnittstelle nach sich ziehen. Wenn I-Frames und IDR-Frames vorhanden sind, wird das ganze dann zu einem Glücksspiel...
 
Hallo Mitmacher,

leider bin ich erst heute wieder dazu gekommen, mich mit dieser Sache zu befassen. Zuerst will ich mich für alle Hinweise und Ratschläge bedanken.

Mein erster (und bisher einziger) neuer Versuch lief mit Virtual Dub. Zu diesem Programm habe ich noch das von Tom Keller empfohlene Plugin kopiert, das die Verarbeitung von .ts-Dateien ermöglicht.

Dann öffnete ich eine solche mit zwei aufeinander folgenden Filmen: insgesamt 13 GByte groß, Laufzeit 2:11 Stunden. Ich schnitt den Vorlauf und alles nach dem Ende des ersten Films ab. Der Rest war etwas weniger als die Hälfte des Ganzen. Dann startete ich Save as AVI. Als voraussichtliche Arbeitsdauer wurde etwas mehr als 2 Stunden angezeigt.

Nach mehr als einer Stunde brach die Arbeit ab mit der Meldung, dass nicht genügend Speicherplatz zur Verfügung stünde. Gespeichert war eine Datei mit 325 GByte (GByte ist richtig! Deswegen war der Speicherplatz voll). Abgespielt werden kann sie nur mit VLC vielfach ruckelnd.

(Die mit XMedia Recode erzeugte ungeschnittene .mkv-Datei war 1598 MByte groß, die daraus von Avidemux gleichartig geschnittene und nicht ordnungsgemäß laufende 721 MByte und 59 Minuten.)

Mit Virtual Dub kann ich so leider nichts anfangen. Vielleicht kommt noch Hilfe dafür. Aber nachdem ich das jetzt los habe, will ich mich noch mit den anderen Ratschlägen befassen und dann wieder melden.
ludwig4
 
ludwig4 schrieb:
Gespeichert war eine Datei mit 325 GByte (GByte ist richtig! Deswegen war der Speicherplatz voll).
Wenn du das Ergebnis als unkomprimierte AVI-Datei abspeicherst, ist diese Größe absolut korrekt und alles andere als verwunderlich.

Willst du ein kleineres Ergebnis, musst du entweder unter "Video" -> "Compression" einen VfW-Codec einstellen und konfigurieren (falls die Ausgabe als *.avi erfolgen soll), ODER über "File" -> "Export" -> "Using external encoder" einen externen Kommandozeilen-Encoder/-Muxer benutzen... bzw. ihn vorher per "Options" -> "External encoders" konfigurieren (falls die Ausgabe als *.mkv, *.mp4 o.ä. erfolgen soll).
 
Zuletzt bearbeitet:
"..... will ich mich noch mit den anderen Ratschlägen befassen und dann wieder melden."

Das ist jetzt schon bald zwei Monate her. Inzwischen habe ich mich mit dem TS-Doctor befasst, den ich früher mal verworfen hatte, der mir nun aber doch prüfenswert schien. Und jetzt hatte ich ein Erfolgserlebnis damit:

Mit dem Receiver VU+ nehme ich einzelne Filme oder mehrere nacheinander gesendete in einer .TS-Datei auf. Mit dem TS-Doctor kann ich Vor- und Nachspann der Aufnahmen leicht entfernen sowie Werbung fürs Entfernen markieren und ebenso das, was zwischen zwei Filmen gesendet wurde. Danach kann ich veranlassen, dass entweder der einzelne Film ohne Werbung oder jeder der nacheinander gesendeten Filme in einer .TS-Datei gespeichert wird - alles ohne Vor- und Nachspann.

Alle diese Filme wandelt anschließend XMedia Recode ins .MKV-Format um.
Zeitaufwand dafür: 720-Filme etwa 60%, 1280-Filme etwa 150% der Filmlaufzeit.
Speicherplatzreduzierung: 720-Filme etwa 50%, 1280-Filme etwa 80%.

In seltenen Fällen habe ich schon erlebt, dass - meist bei Filmen von Privatsendern - bei einem "fertigen" .MKV-Film irgendwo (immer an gleicher Stelle) das Bild stehen bleibt, der Ton aber weiterläuft. Es war mir aber immer möglich, einen solchen Film mit dem Programm Super und mehr Zeitaufwand als sonst vom .TS-Film aus lauffähig umzuwandeln. - Damit kann ich leben.

Vielleicht helfen meine Erfahrungen auch anderen.
Und nochmals vielen Dank allen Helfern.
ludwig4
 
Zurück
Oben