H.264 Verständnis oder Bug?

Begonnen von geohei, Dezember 19, 2015, 19:47:33

« vorheriges - nächstes »

geohei

Hallo.

Ich habe bisher immer mittels Pj.X/Cuttermaran framegenau MPEG-2 .ts Streams schneiden können (mit smart rendering).

Ich möchte dies jetzt auch auf H264 Streams übertragen. Ich habe mir jetzt einmal ein Test Stream aufgenommen (ZDF HD). MPEG2 GOP Strukturen usw. sind mir bekannt, aber mit H264 kenne ich mich nicht gut aus.

Erste Tests mit TS Doctor 2.0.9 (LAV installiert) liefen ganz gut, obwohl mir das framegenau Schneiden natürlich fehlt (ich weiss ... das schüttelt man NICHT aus dem Arm :) ).

1. Beim Test Stream fiel mir auf, dass das Abspielen einer Sequenz im "Prepare Cutting" Fenster den Film korrekt zeigt, jedoch beim manuellen Springen +1F einige Frames gezeigt werden die nie im abgespeilten Film vorkommen, und das von Timestamp 00:01:54.840 - 00:01:54:980 (also 7 Frames).

Wie ist das möglich?

2. Wenn ich mittels +1F von Frame zu Frame springe, dann ändert sich das Bild nicht bei jedem Frame (ZDF HD = 720p50). Es sollte sich aber alle 20ms ändern (Schrittweite von +1F).

Wie kommt das?

Gruß,

Derrick

..die Genauigkeit hängt in 1. Instanz von den verwendeten Filtern ab. Damit musst du rumprobieren, um das beste Ergebnis zu erzielen. Die Streames, die gesendet werden, sind zum Gucken gedacht und nicht zum Nachbearbeiten. Um framegenau zu arbeiten, musst du neu enkodieren. Wenn das ein muss ist, schau dich nach professionellen Tools um. Fall aber nicht vom Hocker, wenn du den Preis siehst ;)

Mam

Na ja, das "Problem" liegt in H264 begründet, und wie die Anführungszeichen vermuten lasssen, ist es nicht wirklich ein Problem.

Bei H264 gibt es kein festgelegtes Timing an dem immer "schneidbare" Vollbilder vorliegen, die richten sich rein nach dem Bildinhalt.

Du kannst also nicht darauf hoffen, dass in genau 20ms ein neues Bild zur Verfügung steht.

Deshalb kannst Du die Tasten +/-1F eigentlich getrost vergessen, sie haben keine wirkliche Aussagekraft mehr bei H264.

Nimm stattdessen +/-IF (also ein großes Iiiieh statt der Eins), das sollte immer zum nächsten Vollbild springen.

Leider gibt es in der PC Praxis manchmal das Problem, dass bei "+" nicht immer der nächste I-Frame erkannt wird, der Film läuft dann einige Millisekunden zu weit. Wenn Du aber dann von der Position aus "-" verwendest, solltest Du immer an den Zwischenpositionen richtig landen. Also einmal "+" und ggf dann ein paarmal "-", dann passts.


ErichV

Zitat von: geohei am Dezember 19, 2015, 19:47:33
2. Wenn ich mittels +1F von Frame zu Frame springe, dann ändert sich das Bild nicht bei jedem Frame (ZDF HD = 720p50). Es sollte sich aber alle 20ms ändern (Schrittweite von +1F).

Wie kommt das?

Die öffentlichen Sender (u. a. ZDF HD mit 720p50) senden jedes Bild doppelt (unabhängig davon, ob es sich um ein I-, P- oder B-Frame handelt).
1 x Humax ESD-160S, 1x TechniSat TechniBox S4, 2x TechniSat Skystar USB 2 HD CI, Nvidia Shield TV Media Streaming Player, TS Doctor 4.0.39, DVBViewer Pro 7.2.5.0 mit DVBViewer Media Server 3.2.5.0

Derrick

ZitatLeider gibt es in der PC Praxis manchmal das Problem, dass bei "+" nicht immer der nächste I-Frame erkannt wird..
Professionelle Lösungen sind auch PC-basiert. Da klappt es ;)

geohei

#5
Zitat von: ErichV am Dezember 19, 2015, 22:59:11Die öffentlichen Sender (u. a. ZDF HD mit 720p50) senden jedes Bild doppelt (unabhängig davon, ob es sich um ein I-, P- oder B-Frame handelt).
Bist du dir da ganz sicher?
Wie kommt es denn, dass sich das Bild eines ZDF HD Streams in VirtualDub (1.10.4) alle 20ms ändert?
In 1080i Streams zeigt VirtualDub alle 40ms ein neues Bild.
Passt!

Wenn ich den ZDF HD Stream im Prepare Cutting Fenster von TS Doctor um 20ms scrolle, sieht man bei den meisten Frames eine Änderung des Bildes, aber nicht bei jedem. Ein Schema, wann ja, wann nein, ist leider nicht ersichtlich. IMHO stimmt da was nicht, oder ... ?!

Derrick

ZitatWie kommt es denn, dass sich das Bild eines ZDF HD Streams in VirtualDub (1.10.4) alle 20ms ändert?
Wahrscheinlich weil VirtualDub das ist, was der TSD nicht ist ;) Soll heissen, VirtualDub basiert nicht auf den 3rd-party DirectShow Filtern.

geohei

Zitat von: Derrick am Dezember 20, 2015, 09:45:30
Wahrscheinlich weil VirtualDub das ist, was der TSD nicht ist ;) Soll heissen, VirtualDub basiert nicht auf den 3rd-party DirectShow Filtern.
Das ändert aber doch nichts an der Tatsache, dass ZDF HD egal wie doch 50 fps sendet und auch keine doppelt gesendet werden. Oder willst du sagen, daß VD mit seinen Filtern 2 Bilder interpoliert (aus #1 und #3 rechne #2, ...)?

Nur zum Verständnis ... die Filter sorgen ja nur dafür wie das Bild in TSD angezeigt wird. Wenn geschitten wird haben die Filter keinen Einfluss. Ist das korrekt?

Derrick

Auf die verdoppelte Aussendung von Bildern bin ich nicht eingegangen, weil abwegig.. ;)

geohei

Sorry ... ich sitze jetzt auf dem Schlauch. Was meinst du?
Werden die Bilder doppelt ausgegeben und du willst deshalb nicht darauf eingehen?
Oder reden wir jetzt ganz an einander vorbei?

Meine Test Aufnahme war eine Sendung (Mona Lisa, kein Film). Mit VD waren da 50 fps ohne Doppelbilder sichtbar. Mit TSD (LAV) wurden nicht alle angezeigt (nicht nachvollziehbare "Sprünge" bei +1F).

Sendet ZDF HD jetzt doppelte Bilder oder nicht?
Wieso zeigt TSD sie nicht durchgängig alle mit +1F an?

Derrick

50p heisst 50 Vollbilder/s und warum der TSD Schwierigkeiten hat, definierte Punkte zu finden, habe ich versucht zu erklären. Du musst probieren, welche Filter das beste Resultat liefern. Leider hängt das auch wieder vom Streamtyp an.

Mam

Zitat von: geohei am Dezember 20, 2015, 11:18:39
Werden die Bilder doppelt ausgegeben und du willst deshalb nicht darauf eingehen?
Oder reden wir jetzt ganz an einander vorbei?
Die "doppelten Bilder" entstehen, wenn man nicht-native (geiles Wort!  ;D) Filmquellen in 720p50 umwandelt und dann ausstrahlt.

Spielfilme z.B. werden mit 24 Bildern pro Sekunde gedreht (Hobbit mit 48), wenn Du dann 50 Bilder pro Sekunde ausstrahlen willst, bleibt Dir gar nichts anderes übrig, als sie zu "verdoppeln", da die Zwischenbilder nicht da sind.

Genauso ergeht es Videos im HD-"world-format" 1920x1080 (i oder p ist egal, da es auch nur 24,25 oder 30 Bilder pro Sekunde sind). Das sind z.B. alle Blurays, Sportberichte die weltweit vermarktet werden usw.

Wenn Du Dir das Programm von ARD und ZDF anguckst, wirst Du feststellen, dass über 95-99% des Tages NICHT 50 Bilder pro Sekunde ausgestrahlt werden, denn es bleiben nur selbstproduzierte Sendungen im Studio bzw. regionale Sportberichte / Konzerte übrig. Also die Tagesschau hat 50 Bilder, der Tatort danach meistens  nicht und der amerikanische Spielfilm im Nachtprogramm auf keinen Fall.
Und bei den Sportübertragungen sieht es sehr mau aus, zumal einer der beiden 50Hz Übertragungswagen vom ZDF ja schon vor der ersten produzierten Sendung 2011 abgebrannt ist.

Aber mit Musikantenstadel und (ehemals) Wetten Das? da bist Du auf der sicheren Seite  ;D

Djfe

Zitat von: Mam am Dezember 20, 2015, 12:36:04
Und bei den Sportübertragungen sieht es sehr mau aus, zumal einer der beiden 50Hz Übertragungswagen vom ZDF ja schon vor der ersten produzierten Sendung 2011 abgebrannt ist.
War das sarkastisch gemeint, oder sind die tatsächlich so teuer, dass das ZDF nicht mehr hat?

Mam

Zitat von: Djfe am Dezember 20, 2015, 14:27:38
War das sarkastisch gemeint, oder sind die tatsächlich so teuer, dass das ZDF nicht mehr hat?
der eine hat 20 Millionen gekostet, ohne Zubehör.
Ich weis nicht mehr, ob er MIT oder OHNE Zubehör (30 Kameras, Kabel, Objektive, Sensormodule usw) abgefackelt ist, wenn MIT, dann rechne nochmal so 10 Mios drauf.
Das geht dann doch nicht so eben aus der Portokasse und ausserdem gibts die Dinger nicht beim Autohändler um die Ecke fertig zum Mitnehmen, sondern die werden extra angefertigt und das dauert dann auch so ein paar Monate...


Djfe

hab da noch ein Video zu gefunden:
https://www.youtube.com/watch?v=7Mn5Lju772Y

Das Teil ist der Hammer (vor allem für die Zeit)


www.cypheros.de