Zusätzliche Info zum I-Frame ob IDR oder NIDR Frame present ist

Started by Gloster, June 12, 2022, 02:48:14 PM

Previous topic - Next topic

Gloster

Ubuntu 20.04, Avidemux 2.8.1

Ich schneide öfter HD Filme (h.264 oder h.265). Leider ist der I-Frame, an dem ich schneiden möchte, oft "nur" ein NIDR-Frame.
Ist es über Optionen möglich die zusätzliche Information zu erhalten ob die "Endmarkierung" ein IDR oder NIDR-Frame ist (s. Statusleiste "Key-Frame I-FRM") ?

Diese Info in der Statusleiste wäre sehr hilfreich.

Gloster

Ich bekomme folgende Info beim senden einer Nachricht : "CleanTalk: *** 1 Antispam service cleantalk.org *** Die Antwort enthält zwei Attachements (txt-files und ein Link, der auf eine größere Datei verweist : "..//we.tl/..". Ist ein link auf diese Seite nicht erlaubt ?

eumagga0x2a

Nein, alles erlaubt, einfach CleanTalk ist bekanntlich kaputt. Bitte den Link, wenn nötig zur Schilderung des Problems, per PN senden, danke.

Quote from: Gloster on June 12, 2022, 02:48:14 PMIst es über Optionen möglich die zusätzliche Information zu erhalten ob die "Endmarkierung" ein IDR oder NIDR-Frame ist (s. Statusleiste "Key-Frame I-FRM") ?

Wenn es um die Streams geht, die über DVB gesendet werden, dann enthalten solche Streams so gut wie keine IDR Frames. Bei Keyframes, die keine IDR sind, entscheidet immer die Kombination aus dem Beginn und dem Ende der Auswahl über die Tauglichkeit für den Schnitt.

Gloster


Gloster

Ich versuche es mal so, Frage in ein txt-file kopiert : MeineFrage.txt
Ein einfacher Doppelklick führt zu einem "Fehlschlag", Datei konnte nicht gelesen werden, na ja, dann morgen eben mit PN.

Gloster

Selbst ein attachement funktioniert nicht, deshalb noch einmal ein Versuch ohne dem :

Ich habe einen Workaround probiert : Mit ffprobe die IDR frames ermitteln um dann eben einfacher eine Stelle zu finden an der ich die Endmarkierung mit Avidemux setzen kann.
Mit : https://superuser.com/questions/1345616/get-the-list-of-i-frames-in-a-video-in-ffmpeg-python und dort
ffprobe -v error -skip_frame nokey -show_entries frame=pkt_pts_time -select_streams v -of csv=p=0 input
erhalte ich "alle" IDR-frames, s.https://trac.ffmpeg.org/ticket/8820, "skip_frame nokey skips everything but IDR frames (H.264)"

Ich habe das an einem Film ausprobiert, Testfilm_PartIDRCheck.ts,s. "https://we.tl/t-yhsU9K2cX3" (link ist 1 Woche gültig)
Mit ffprobe erhalte ich nicht alle IDR-Frames, s. Anhang output.txt (jetzte eben ohne Anhang, aber das Command ist angegeben, Sprünge von 180sec zwischen aufeinanderfolgenden IDR-Frames). Mit Avidemux habe ich die Gegenprobe gemacht und konnte innerhalb der "Sprünge" problemlos schneiden.

Jetzt aber der Fall, dass ffprobe ein IDR-frame anzeigt und Avidemux an der Stelle die Fehlermeldung beim entfernen "NIDR frame ..." ausgibt. Ich habe den Film trotzdem an der Stelle geschnitten, und es war kein fehlerhaftes Bild zu erkennen. Auch mit einer ffmpeg Analyse wurde kein Fehler des geschnittenen Films entdeckt
Error Analyse mit  ffmpeg : ffmpeg -y -i "Film.ts" -vcodec libx264 -crf 51 -preset ultrafast -tune fastdecode -acodec Film.mp4" 2>Film.txt (bei mpeg2 Filmen komme ich damit auf speedx >= 20)

Bsp. s. link zu Testfilm_PartIDRCheck.ts :
Startmarkierung : 4:39.200
EndMarkierung : 10:54.400 (entspricht Zeitstempel ffprobe : 654.524000, der ein IDR-frame anzeigt).


Der Workaround ist allerdings sehr Zeitaufwendig (insbesondere mit ts-files, die einen zufälligen StartTimeStamp haben). Vielleicht eine Bitte an die Entwickler, sofern der Aufwand für die Ausgabe der IDR Information nicht zu aufwendig ist, das zu ergänzen.

Gegenwärtig verwende ich Ubuntu 20.04 + Avidemux Appimage (uxLinux_GLIBC_2.28_amd64_220720_0552).
Danke für die Unterstützung.