Ich habe leider auch kein BD-Authoringprogramm um das zu testen, ich stelle aber nacher mal einen Stream bereit, vielleicht meldet sich ja jemand der eins hat und könnte mal testen.
greets
LTJ
Ich habe leider auch kein BD-Authoringprogramm um das zu testen, ich stelle aber nacher mal einen Stream bereit, vielleicht meldet sich ja jemand der eins hat und könnte mal testen.
greets
LTJ
Hallo,
weiß jemand ob multiple SPS/PPS Sets unterschiedlicher IDs innerhalb eines Videostreams BD-konform ist, sprich solche Streams von Authoringprogrammen akzeptiert werden?
greets
LTJ
Ich meinte eigentlich das Tracefile darunter und die Dekodierung in Binärform. Der Stream Analyzer ist aber auch ganz gut. Die meisten Infos gibts aber auch per h264_parse kostenlos.
greets
LTJ
Ich versuche zu verstehen, wie man einige NALUs richtig decodiert.
Das steht zwar alles in dem ITU Dokument, aber das ist da teilweise nicht immer so einfach zu verstehen, daher möchte ich den Output des Tracefiles von ldecod zusätzlich zum Verständnis heranziehen.
Ein Tracefile-Beispiel davon gibts hier, falls du das noch nicht kennst (was ich mir fast nicht vorstellen kann ;)).
http://forum.doom9.org/showthread.php?p=1079181#post1079181
greets
LTJ
Hat sich erledigt, habs hinbekommen.
Wer es haben will -> siehe Anhang.
greets
LTJ
Es gibt hier einen Thread dazu, aber das Problem ist da nicht gelöst worden.
Selur, du hast doch eine Visual Studio Umgegung installiert, oder?
Magst du evtl. mal versuchen die Projekte für mich zu kompilieren?
lencod_vc8.vcproj
ldecod_vc8.vcproj
Wäre sehr nett.
greets
LTJ
Hallo,
hat schonmal jemand versucht und geschafft den JM H264 Referenzencoder und -decoder zu kompilieren?
http://iphome.hhi.de/suehring/tml/download/
Laut Dokumentation muss, wenn der GCC verwendet wird zuerst "./unixprep.sh" und dann einfach "make" ausgeführt werden, allerdings bekomme ich da immer folgende error:
Zero@ECKE /c/dev/sources/jm/ldecod
$ cd /c/dev/sources/jm/
Zero@ECKE /c/dev/sources/jm
$ ls
CHANGES.TXT bin jm_vc8.sln lencod_vc7.vcproj
Changes_detail.txt copyright.txt ldecod lencod_vc8.vcproj
FREXT_changes.txt disclaimer.txt ldecod_vc7.vcproj rtp_loss
Makefile doc ldecod_vc8.vcproj rtpdump
Readme.txt jm_vc7.sln lencod unixprep.sh
Zero@ECKE /c/dev/sources/jm
$ ./unixprep.sh
/bin/sed
Removing DOS LF chars...
Done.
Zero@ECKE /c/dev/sources/jm
$ cd /c/dev/sources/jm/ldecod
Zero@ECKE /c/dev/sources/jm/ldecod
$ make
Creating obj ...
checking dependencies
compiling object file "obj/annexb.o" ...
In file included from inc/global.h:38,
from src/annexb.c:15:
inc/ifunctions.h:26: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:31: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:36: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'double'
inc/ifunctions.h:41: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'double'
inc/ifunctions.h:46: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int64'
inc/ifunctions.h:51: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int64'
inc/ifunctions.h:56: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:61: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:66: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'double'
inc/ifunctions.h:71: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int64'
inc/ifunctions.h:76: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'double'
inc/ifunctions.h:81: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:86: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int64'
inc/ifunctions.h:91: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:96: error: expected '=', ',', ';', 'asm' or '__attribute__' bef ore 'int'
inc/ifunctions.h:101: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:106: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:111: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'unsigned'
inc/ifunctions.h:116: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:121: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'unsigned'
inc/ifunctions.h:126: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:134: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:142: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'double'
inc/ifunctions.h:150: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:155: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:160: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:165: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'int'
inc/ifunctions.h:176: error: expected '=', ',', ';', 'asm' or '__attribute__' be fore 'float'
src/annexb.c:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
src/annexb.c:56: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'byte'
src/annexb.c:84: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
src/annexb.c: In function 'GetAnnexbNALU':
src/annexb.c:152: warning: implicit declaration of function 'getfbyte'
src/annexb.c:230: warning: implicit declaration of function 'FindStartCode'
src/annexb.c: In function 'OpenAnnexBFile':
src/annexb.c:310: warning: implicit declaration of function 'getChunk'
make: *** [obj/annexb.o] Error 1
Alles anzeigen
Sieht ein bißchen so aus als fehlt irgendein Assembler-Compiler(?).
Mir geht es um die Trace-Funktion des Decoders, die würde ich gerne mal testen. Wenn man in der Datei "defines.h" im Ordner ..\JM\ldecod\inc die Funktion aktiviert (einfach den Wert von 0 auf 1 setzen), wird dieses Feature mit kompiliert. Zumindest theoretisch, wenn es denn überhaupt kompiliert :hm:.
Könnte das mal jemand testen? (Lord_Mulder? Du hast doch auch ein GCC-Setup. :zunge:).
greets
LTJ
Slices sind auch vollständige Frames, das hat ja nichts mit "interlacing" zu tun.
Es geht lediglich darum, dass bestimmte Teile des Frames unabhängig voneinander und somit parallel decodiert werden können.
Und wenn man sagt "ohne" Slices zu arbeiten, dann heißt das, dass man genau 1 Slice verwendet.
Dass das nichts mit Interlacing zu tun hat, ist mir klar. Falls aber mehrere Slices vorhanden sind, was der H264 Standard ja erlaubt, brauche ich trotzdem alle um ein vollständiges Bild dekodieren zu können, egal ob die Slices unabhängig voneinader dekodierbar sind oder nicht. H264-Visa zeigt das x264 und der Mainconcept-Encoder nur Fullframesslices erzeugen. Mich interessiert, ob das die Regel ist und überhaupt, wo man das im Bitstream auslesen kann. Aber das gehört ja eigentlich alles ganicht hier in den Thread. Sorry lieber Threadersteller, ich möchte hier nicht vom Thema ablenken. :redface:.
greets
LTJ
... Denn "Slices" werden bei x264 schon lange nicht mehr benutzt ...
Weißt du zufällig woran man genrerell erkennen kann, ob slices oder full frames enthalten sind?
greets
LTJ
Wie erkennst du es das sie kleiner als 8 pixel sind?
1. Sieht man das, wenn man reinzoomt
Ausschnitt aus dem HD-Screenshot 1000% vergrößert: Klick
(Btw. Es gibt nach der ITU-T Rec H.264 auch 4x8 / 8x4, die beiden als Achterblock markieren Quadrate rechts sehen nach 2mal 4x8 aus. Verwendet x264 intern also auch 4x8 / 8x4 Submacroblockpartitionierung?
2. steht in den settings "analyse=0x3:0x133" und das entspricht der x264-option "-A all", also sind auch 4x4 Macroblocks enthalten.
Wie schon bereits erwähnt, die Quelle ist schon Mist und da kann Deblock_QED auch nicht zaubern.
greets
LTJ
Hallo,
1. Verstehe nicht was du genau damit meinst
2. Den AE Timedisplacement-Effekt kann man mit etwas Zeit ganz bestimmt als eigenes C/C++-Plugin oder als AVISynth-Script realisieren. Vielleicht versuche ich das mal, wenn ich Lust habe.
3. Das ist mir zu hoch :hm:
greets
LTJ
Danke, erstmal OK soweit.
Können lossless encodete Streams denn auch geauthored werden, heißt, entsprechen die den Blu-Ray Spezifikationen? Kann man wahrscheinlich so pauschal nicht sagen oder?
greets
LTJ
Im ersten Link ist die Endung falsch.
Statt .mht sollte das doch sicher .htm heißen ;).
greets
LTJ
Hallo,
x264 ermöglicht mit -qp 0 verlustloses Encoding.
Wie wirken denn dann die ganzen übrigen Einstellungen?
Ich kann mit MeGUI als Frontend immer noch alle anderen Einstellungen tätigen, wie bspw. unterschiedliche Profil- und Levelbeschränkungen, Makroblock-Optionen, B-Frames, eben einfach alles, wie sonst auch.
Warum sind gerade die Optionen zur Bewegungsabschätzung und die Quantisierungsoptionen nicht ausgegraut?
Warum sollte man weitreichend nach Bewegung suchen lassen, wenn doch sowieso nicht quantisiert wird? Verlustlos ist doch verlustlos, ohne wenn und aber oder doch nicht?
Erleuchtet mich doch bitte mal :).
greets
LTJ
Und ein Schnipselchen Testmaterial wäre immer gut. Jetzt überlege ich bloß, wie man AVC schneiden kann...
Quick und nicht dirty sondern ganz sauber aber nicht komfortabel ohne Vorschau von IDR zu IDR für ein AVC-RAW-Stream (x264-encodet), so wie ihn DGAVCDec akzeptiert:
Oder in Matroska muxen, mit mkvtoolnix schneiden und wieder demuxen.
Oder AVIDemux verwenden (MKV geht, kann das auch AVC-RAW?)
greets
LTJ
Vielleicht sowas hier?
...oops...
edit//
Ich hab den Link wieder raus genommen, das Tool entfernt ja einen Kopierschutz.
Sorry, hab ich zu spät gesehen.
greets
LTJ
Diese Art Effekt kann man auch gezielt nutzen, das heißt dann "Time Displacement".
Beispiel:
http://de.youtube.com/watch?v=I2MsDogV4g4
Prinzip:
Das Video wird mit einem Graustufenbild (Displacement-Map) überlagert. Ein Graustufenbild hat 256 Helligkeitswerte. Die Teile des momentanen Bildes, die mit helleren Werten der Map überlagert werden, werden durch Pixel aus später folgenden Frames des Quellvideos ersetzt und die Teile mit dunkleren Werten werden mit Pixeln aus schon vergangenen Frames des Quellvideos ersetzt. Bei einem Grauwert von 128 verbleiben die Pixel des aktuellen Frames unverändert. Mit folgender Formel kann man das Graubild auswerten:
Displacement amount in seconds = maximum_displacement_time * (2 * (luminance_value – 128) / 256)
Nimmt man statt eines statischen Graustufenbild ein Graustufenvideo, kann man damit ziemlich verrückte Verzerrungseffekte erstellen.
So, wer will das Script programmieren? :zunge:
Ich glaube in Adobe´s After Effects ist das doch etwas angenehmer zu händeln.
greets
LTJ
Hallo zusammen,
ich bin auf der Suche nach Trailern und Teasern von Terminator 1 und 2 mit möglichst hochwertiger Qualität und hoher Auflösung. Mindestens PAL oder NTSC, schöner wärs noch in HD.
Vor allem dieser Trailer hier
http://www.movie-list.com/t/terminator2-1.html
Also, wenn ihr da irgendwelche Quellen kennt - immer her damit.
Danke euch.
greets
LTJ
Zitat von LigHÜbrigens - was meinst du mit "DAR=SAR von 1:1"?!
Das ist natürlich Quatsch. SAR von 1:1 muss es heißen. Ich war wohl ein wenig neben der Spur durch
Zitat von BJ1-Post #14Ein HDTV mit 1920x1080 ist exakt 16:9 (1920/16*9=1080). Hier ist PAR = DAR.
Wahscheinlich hat sich BJ1 auch nur vertippt. Für HDTV muss es heißen PAR = 1:1 und DAR=16:9.
------
Zitat von LigHNur werden diese Flags ja vom Authoring-Tool erzeugt, und das wird beim Importieren des Videos wohl zunächst mal das Seitenverhältnis aus dem Video auslesen.
OK.
Allerdings scheint das aber nicht notwendig zu sein. Denn spätestens beim Authoring wird das PAR-Flag automatisch passend zu dem angelegten Projekt-Typ gesetzt.
Hiermit meinte ich, dass mit der Wahl des Projekttyps automatisch für das Authoringprogramm (zumindest scheint das bei Spruce DVD-Maestro so zu sein) schon klar ist, was in der IFO zu stehen hat. Das Auslesen des Flags ist ja dann nicht mehr nötig und es muss nur noch die tatsächliche Höhe und Breite des Quellvideos auf Konformität geprüft werden.
Andererseits:
Zitat von LigHProfessionelle Studio-Authoringtools haben jedenfalls ordnungsgemäße Flags im Videostrom erwartet (z.B. Sonic DVD Creator 2.x), und erst gar kein MPEG2-Video angenommen, das nicht laut DVD-Spezifikationen mit DAR 4:3 oder DAR 16:9, sondern mit SAR 1:1 encodiert wurde.
DVDlab zeigt das im ES gesetzte DAR an (4:3 oder 16:9).
Habt ihr denn tatsächlich überhaupt mal Streams getestet die mit einem SAR-Flag von 1:1 encodet wurden oder sind das Vermutungen?
Ich will aber gar nicht streiten und auch keine Haarspalterei betreiben.
Man könnte das tatsächlich mal einfach ausprobieren, indem man den HC mit SAR 1:1 encoden lässt und schaut ob auch andere Authoringprogramme diese Streams akzeptieren. Zudem könnte man auch mal den 4-Bit-Wert vor und nach Authoring aus dem ES auslesen und schauen ob die Authoringtools selbst patchen (falls der Stream akzeptiert wird) oder den IFO-Eintrag vorab generieren.
Spruce ist tot. DVD Maestro ist zwar ein nach DVD-Spezifikation korrekt arbeitendes Programm; nach der Entwicklung von Windows als Betriebssystem, auf dem es laufen soll, jedoch völlig veraltet - es kann Multimedia-Möglichkeiten von Windows XP oder Vista nicht mehr nutzen.
Das verstehe ich nicht. Es arbeitet korrekt! -> Ist doch Klasse.
Welche Multimedia-Möglichkeiten sollen denn da groß ausgeschöft werden?
Das Programm soll eine DVD produzieren und nichts weiter und das kann es.
Natürlich möchte ich damit nicht abstreiten, dass DVDLab und Sonics Authoringtool und andere im Gegensatz zu DVDMaestro, was die Möglichkeiten und den Komfort angeht zeitlich auf der Höhe sind.
Zitat von LigHMPEG-2 propagiert "Generic AR" (DAR für volle Bildfläche). Das ist die Theorie. Was die Praxis angeht, kann ich leider nicht viel mitreden, aber wenn festgestellt wird, dass viele DVD-Player ihr Video laut IRU-R BT.601 ausgeben (oder sind es die Fernseher, die es so darstellen?), dann ist das eben ein experimentell ermittelter Fakt...
Ich glaube jetzt sind wir wieder hier
http://encodingwissen.de/spezial/itur-bt601.html#generisch
und hier
http://encodingwissen.de/spezial/itur-bt601.html#diskussion
angekommen.
Das weiß ich nämlich jetzt auch nicht genau. Entzerrt der DVD-Player und der TV stellt einfach das 1:1 dar, was er vom Player bekommt oder schickt der Player das Flag weiter zum TV und der resized?
Wenn Ersteres:
Hat der DVD-Player den SAR-Faktor (Welchen Generic oder ITU?) einprogrammiert und bekommt ein DAR-Flag oder umgekehrt.
Wenn Zweiteres:
Hat der TV den SAR-Faktor (Welchen Generic oder ITU?) einprogrammiert und bekommt ein DAR-Flag oder umgekehrt.
Ich vermute der SAR Faktor ist einprogrammiert, denn in IFOs finde ich nur DAR-Angaben. Und das von Gerät zu Gerät völlig durchmischt zwischen Generic und ITU, wobei es deshalb niemals ein generelles Richtig oder Falsch gibt.
Irgendwie dreht sich gerade alles
greets
LTJ
Doch, das ist sinnvoll. Das AR-Flag im MPEG2-Video sollte doch bitteschön gleich von Anfang an stimmen, noch bevor es in das Authoringtool importiert wird. Dann stimmen beide überein (sowohl im Video in den VOBs, als auch in der IFO durch das Authoringtool).
__PAR — P = Pixel oder Picture? Schwer zu unterscheiden. Daher in ISO/IEC 13818 (MPEG-2):
DAR — D = Display: Wiedergabe des Gesamtbildes, Seitenverhältnis des Gesamtbildes (4:3 / 16:9)
SAR — S = Sample: Element des Gesamtbildes, Seitenverhältnis des Bildpunktes (1:1, 11:12, 11:16)
Nicht zwingend vorgeschrieben, aber meiner Meinung nach nützlich, um den Unterschied zu verstehen, was denn hier ins Verhältnis gesetzt wird.
Ich hab jetzt nochmal nachgeschaut. Es gilt nach ITU-T H.262 für MPEG2 für das 4 Bit AR-Flag "aspect_ratio_information" im Sequence Header:
[Blockierte Grafik: http://img2.abload.de/img/ar-mpeg2fn6y.jpg]
Also im Grunde so wie du es auch geschrieben hast und wie das bei unserem Fr_An auf der Homepage auch beschrieben steht.
Was die Entzerrung während der Wiedergabe angeht, so muss laut dieser Recommendation - wenn ich das halbwegs richtig übersetzt habe - ein Zuspielgerät, für den Fall, dass die volle TV-Bildfläche
[Blockierte Grafik: http://www.abload.de/img/sde_not_present6l6r.png]
genutzt wird, nach
[Blockierte Grafik: http://www.abload.de/img/sar-formel7qt5.png]
und resultierender Tabelle (PAL):
| SAR | DAR |
-----------------------------------|
704 x 576 | 1:1 | - |
| 11:12 | 3:4 |
| 11:16 | 9:16 |
| 1100:1989 | 100:221 |
---------------------------------- |
720 x 576 | 1:1 | - |
| 15:16 | 3:4 |
| 45:64 | 9:16 |
| 125:221 | 100:221 |
-----------------------------------|
Alles anzeigen
für sowohl 704x576 und 720x576 für PAL
immer auf 1024 (16:9) bzw. immer auf 768 (4:3) in horizontaler Richtung gestreckt werden.
Nein, das PAR (Pixel Aspect Ratio) bleibt am PC innerhalb der Verarbeitungskette immer gleich (1:1)
Das ist mir klar.
ZitatEin HDTV mit 1920x1080 ist exakt 16:9 (1920/16*9=1080). Hier ist PAR = DAR. Soll das auf DVD, muss "unproportional" auf 720x576 resized werden.
Das ist mir klar.
Zitat von BJ1Das PAR dieses Bildes ist nun 5:4, dem Ausgabegerät muss ich aber mitteilen, ob das Bild denn auf 4:3 (768x576 Bildpunkte) oder 16:9 (1024x576 Bildpunkte) gestreckt werden soll.
Das ist mir klar.
Zitat von BJ1Dafür ist das DAR-Flag im MPEG da.
Ein "richtiges" DVD-Authoring-Programm erwartet korrekt markierten Input. Ein als 16:9 geflaggtes MPEG wird es auch wieder als solches ausgeben.
Eigentlich geht es nur um diesen Punkt. Dieser ist strittig, denn:
Anmerkung:
Bei Transportstreams (*.TS) könnte es tatsächlich sein, dass das Flag nötig ist, bin aber gerade nicht sicher ob da nicht vielleicht auch im PES-Header ein paar Bits für reserviert sind. Und natürlich immer dann, wenn es direkt um Elementary Streams geht, die nicht weiterverarbeitet werden.
Die gaanz einfache Frage am Ende ist also:
Warum genau "sollte doch bitteschön gleich von Anfang an" (Ligh) das Flag für eine DVD gesetzt werden? Es gibt keinen wirklichen Grund.
Genau wie es bei der MPEG4-Geschichte auch keinen wirklichen Grund dafür gibt, wenn am Ende ein vollwertiger Film mit Audio, Subtitles, Chapters etc. gebaut wird, da muss auch immer ein Container her und da gehört dann das Flag rein. Ein vernünftiger Player kann das dann auch wieder auslesen und ist nicht auf das Flag im Bitstream angewiesen. Mosu lässt das Flag beim Muxen mit mkvmerge bei MKV glaube ich sogar auch rausfliegen, wenn man nicht explizit mitteilt, dass es erhalten werden soll. Aber ich schweife ab ...
greets
LTJ