Hallo,
ich habe in meinem Rechner (Q6600 3Ghz, 4GB RAM, Vista64 Premium) eine X800XT mit 256MB Speicher. Mir ist nun schon öfters aufgefallen dass ich beim abspielen von H264 codierten Filmen nach dem Verschieben des Reglers für die Abspielposition immer einige Sekunden warten muss bevor das Bild da (erst schwarzer Bildschirm dann grob gepixelt) ist. Auch bei Virtualdub kommt das Bild beim drücken der links/rechts Taste meist nicht hinterher. Kann es sein dass meine Grafikkarte hiermit schon überfordert ist? Ist ja nicht mehr die neueste. Falls das an der Grafikkarte liegt hätte ich mir eine 4850 geholt.
Danke schonmal für eure Hilfe!
Archiv Sound, Video, MP3 und Co 8.736 Themen, 38.491 Beiträge
Hi,
kannst du uns erklären was mit H264 VLC gemeint ist?
Falls H.264/AVC gemeint ist, dann brauchst du zuerst einen Decoder im System. Bitte klären..
M.
Die Graka dürfte da hoffnungslos überfordert sein..
Gruß
luttyy
Kommt auf die Auflösung an...
Solange es kein HD-Format ist sollte auch eine X800 problemlos mit h264 zurechtkommen.
Die meiste Arbeit beim Dekodieren wird ja immer noch von der CPU erledigt.
Ich nehme über Onlinetvrecorder.de für mich interessante Sendungen auf. Diese sind teilweise mit H.264 codiert. Einen passenden Codec habe ich auf dem System.
Zum VLC: Wenn ich eine solche Datei abspiele, läuft die soweit problemlos. Bewege ich allerdings den Zeitschieber kommt erst ca. 10 Sekunden ein schwarzes Bild / bzw. das Bild friert ein, der Ton läuft normal weiter. Danach ist das Bild komplett grob verpixelt und einige Sekunden später kommt erst das normale Bild so wie es sein soll.
Zu Virtualdub: Wenn ich in Virtualdub mit rechts/links spule kommt läuft das spulen je nachdem wie lange ich gedrückt habe nach, so als ob das Programm nicht so schnell hinterherkommt.
Die CPU Leistung sowie das restliche System sollte vollkommen ausreichen, wiegesagt die Grafikkarte hat schon ein paar Jährchen aufm Buckel.
Danke für eure Antworten!
Hi @All.
Diese verpixelung und die Wartezeit bis das bild vollständig angezeigt wird ist leicht zu erklären.
Es ist hier wohl der H264/AVC Decoder des VLCs gemeint. Wenn du ein Video mit diesem Codec im VLC abspielst, und dann spulst, geht der VLC auf den gewünschten Frame. Aufgrund der Natur des Systems gibt es bei H264 mehrere Arten von bildern:
1. I-Frames
I-Frame(Intra) sind quasi das gesamte Bild. diese werden in Regelmässigen Abständen beim Kodieren erzeugt
2. B- und P- Frames
Diese Frames sind quasi ein Differenzmodell zum vorherigen Bild. Stell dir das so vor: du hast einen Dicken Weissen Block, der sich im Bild von Links nach Rechts bewegt. Anstatt nun jedes Bild voll zu komprimieren, macht der Codec beim Codieren einmal das komplette bild, und darauf folgt dann ein bild, das nur die unterschiede zum vorherigen speichert. Das ist wesentlich effizienter, als nochmal das ganze bild zu codieren.
Woran liegt es nun?
Nuja, wenn du beim VLC spulst, müsste der VLC eigentlich das letzte I-Frame vor der angespulten Position suchen, dann die B und P Frames bis zur gewünschten Stelle dazurechnen und dann abspielen. Das der H264 Codec im VLC noch nicht ausgereift ist, funktioniert das derzeit noch nicht einwandfrei, und der VLC fängt an, die B Frames only zu zeigen. Sobald im Video der nächste I-Frame auftaucht, ist die Bildwiedergabe wieder in ordnung. Je nach Encodereinstellungen treten die I-Frames alle 150-300 Bilder auf, was bei 25 fps etwa 6-15 Sekunden ausmacht.
Vielen Dank für die Erklärung!
Würde der Umstieg auf eine HD4850 oder HD4870 also in diesem Fall nichts bringen?
höchst wahrscheinlich nicht... Abgesehen davon dass der VLC in den .9er versionen nicht mit hardwareunterstützung arbeitet. da wird noch alles von hand erledigt. In der kürzlich erschienenen 1.0RC1 vom VLC ist dieses Feature zwar integriert, da es damit aber noch probleme gibt, wurde es beim Compilieren deaktiviert. Willst du dennoch hardwareunterstützung beim dekodieren, musst du den VLC 1.0RC1 selbst herunterladen, am Quellcode rumpfuschen und selbst kompilieren. Dein Problem wird das aber auch nicht lösen, da dein Problem mit der Software/der implementierung des Codecs Zusammenhängt.
übrigens bin ich in meinem vorpost gar nicht auf dein Virtualdub Problem eingegangen... Das problem ist hier imho das selbe. Schau mal in die schiebeleiste, da gibt es einen button, mit dem man zum nächsten Keyframe springen kann(keyframe = I-Frame) Afaik kann man mit SHIFT + recht/links direkt keyframeweise springen, was die performance erheblich verbessert. wenn du nämlich frameweise springst, rechnet VD je nach codec jedes einzelbild komplett neu aus. das frisst natürlich Leistung(da ja um einen Frame korrekt anzuzeigen mehrere Frames berechnet werden müssen). Ich bin früher immer so vorgegangen: ich bin an den Keyframes entlang bis zur ungefähren schnittposition gesprungen und habe von dort aus dann bildweise geschnitten.
Übrigens, das P/B/I Framing verfahren ist in der Hilfedatei von Virtualdub etwas verständlicher erklärt. gerade bei solchen technischen sachen neige ich oftmals zu kryptischeren erklärungen^^