Filmchen für den Pocket-PC

  • Wandle gerade einen Fernsehmitschnitt für meinen iPAQ um. Das anamorphe Mpeg-2-Video soll dabei ins Xvid-Format gebracht werden. Vernünftig abspielbar ist das Ganze sowieso nur mit dem kommerziell erhältlichen CorePlayer (ein Abkömmling des nicht mehr weiterentwickelten und frei verfügbaren TCPMP-Players). 50 Frames pro Sekunde schafft er bei einer Auflösung von 640x360 (16:9-Format) gerade so eben - nicht. :lol: Da ich mit der Bitrate eh schon hausieren gehen muss (480 kbps), muss die Framerate dran glauben.

    Das entsprechende AviSynth-Script sieht wie folgt aus:


    Man könnte die Framerate zwar auch mit den MVTools ändern, aber das dauert mir dann doch zu lange.

    Die Xvid-Einstellungen sind im Anhang zu ersehen. Enkodiert wird in 2 Durchgängen. Die Audiobitrate beträgt 32 kbps (Lame MP3).

    Vorschläge, Verbesserungen?

  • Was fürn iPAQ is das überhaubt? Da gibts mehrere:
    http://welcome.hp.com/country/us/en/prodserv/handheld.html


    Es handelt sich um einen iPAQ 214.

    Ich war da wohl etwas übereifrig mit den obigen Einstellungen. So richtig flüssig läuft das nämlich nicht (hin und wieder sind kleine Ruckler zu beobachten). Auf den Benchmark des Core Players kann man sich da auch nicht wirklich verlassen (Video und Audio werden dort jedenfalls schneller als in Echtzeit abgespielt). Gleiches Phänomen übrigens auch mit dem Divx-Format. Interessanterweise sieht das Xvid-Ergebnis bei dieser niedrigen Bitrate wesentlich besser aus. Dabei habe ich unter Divx bereits "Sehr gute Qualität" eingestellt. Vermutlich lässt sich da aber genauso viel rausholen - zu mindestens der Theorie nach.

    Ein Kompromiss muss her. Ein Test mit Yadif(mode=0) ergab, dass der Player ebenfalls Aussetzer hat (unter Eigenschaften kann man zusätzlich nachschauen, wie viele Frames beim bisherigen Abspielen verloren gegangen sind und mit welcher durchschnittlichen Framerate abgespielt wurde).

    Ich habe mich jetzt entschlossen, mit der Auflösung runter zu gehen. Die Rechenleistung reicht für eine vernünftige 640-er Darstellung einfach nicht aus. Ich wähle daher die 512-er Stellung ähm… Darstellung. :lol: Für das 4:3-Format ergibt sich damit eine Auflösung von 512x384 und für das 16:9-Format eine Auflösung von 512x288 (die Teilbarkeit durch 16 ist gewährleistet). Eine Videobitrate von 500 kbps scheint mir ein guter Kompromiss zwischen Qualität und Platzersparnis zu sein. 450 kbps war in einem Fall (die Auflösung betrug 480x368) deutlich zu wenig und 600 kpbs spielte der Player ohne Murren ab (ebenfalls bei einer Auflösung von 480x368). Die Audiobitrate betrug 32 kbps.

    Nach den ersten Tests, scheint das mit 500 kbps Videobitrate auch zu funktionieren.

    Das Script sieht nun wie folgt aus:

    Anbei auch noch mal die gemachten Einstellungen. Als Profil habe ich nun "Advanced Simple @ L5" gewählt.

  • Was man noch testen könnte, wäre die b-Frames abzuschalten. Niedrigere CPU-last aber auch schlechtere kompression.


    Man müsste dann aber kräftig mit der Bitrate raufgehen, das Ergebnis sieht sonst sehr bescheiden aus.

    Es dürfen natürlich keine großartigen Hintergrunddienste laufen. Als Nadelöhr hat sich auch die gewählte Bildschirmdarstellung herausgestellt. Sobald der Player skalieren muss, ist’s auch schon vorbei, mit der fehlerfreien Wiedergabe. Am besten, man stellt ihn auf 100-%-Ansicht.

    P.S.: Auch bei 600 kbps (bei einer Auflösung von 512x384) scheint der Player in der 100-%-Ansicht keine Probleme zu machen. Eine mittlere Videobitrate von etwa 550 kbps scheint mir sinnvoll zu sein.

  • Es hat sich herausgestellt, dass das Nadelöhr nicht der (vermeintlich zu langsame) Prozessor war, sondern die CF-Karte (ScanDisk Ultra II). Ich habe mir mittlerweile eine SD-Karte besorgt, ebenfalls eine ScanDisk Ultra II, diese unterstützt jedoch höhere Datenraten (bis zu 15 MB/s).

    Damit funktionieren jetzt auch die 640-er Auflösungen! Laut Benchmark kann ein 4:3-Video (640x480, 25 fps) bei einer mittleren Videobitrate von 2000 kbps (!) mit einer Geschwindigkeit von mindestens 150 % abgespielt werden. Die Gefahr, dass während dem Abspielen Frames abtrünnig werden, ist somit eher gering. Dabei benötige ich eine solch hohe Bitrate gar nicht (außer bei DV-Aufnahmen).

    P.S.: Eventuell ist das Thema besser in der der Xvid-Abteilung aufgehoben.

  • Falls sich mal eine einsame Wanderin bzw. ein einsamer Wanderer - unterwegs im Weinberg des Herrn - auf diese Seite verirrt, hier noch mal meine Einstellungen (für den iPAQ). :D

    Damit das Ganze auf dem iPAQ möglichst performant läuft, sollte unter den Einstellungen des CorePlayers unter Video als Video-Ausgang "Intel Xscale" ausgewählt sein.

    [Blockierte Grafik: http://img521.imageshack.us/img521/1835/coreplayerts7.jpg]

    In wie weit größere Werte bei den Buffereinstellungen für Video und Audio dienlich bzw. kontraproduktiv sind, vermag ich nicht zu sagen. Ich habe jedenfalls größere Werte eingetragen (Video: 9600 KB, Audio: 256 KB).

    Da der MP4-Kontainer bei den Benchmarktests immer hauchdünn vorne lag, verwende ich nun diesen als Kontainer-Format für XviD. Die Wandlung selbst nehme ich mit Hilfe von MeGUI vor. Video und Audio führe ich dabei getrennt mit folgenden AviSynth-Scripts zu.

    Video:

    Code
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\DGMPGDec\DGDecode.dll")LoadPlugin("C:\Programme\AviSynth 2.5\plugins\NNEDI2\nnedi2.dll")LoadPlugin("C:\Programme\AviSynth 2.5\plugins\TIVTC\TIVTC.dll")LoadCPlugin("C:\Programme\AviSynth 2.5\plugins\Yadif\yadif.dll")LoadPlugin("C:\Programme\AviSynth 2.5\plugins\YadifMod\yadifmod.dll")MPEG2Source("video.d2v")AssumeTFF()# TFM(PP=0)# TFM(mode=1, PP=3, clip2=yadif(mode=0))# yadifmod(mode=0, edeint=nnedi2())Yadif(mode=0)Crop(8, 0, -8, 0)# 4:3-Format# Spline36Resize(640, 480)# 16:9-FormatSpline36Resize(640, 360)Crop(0, 4, 0, -4)

    Audio:

    Code
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\NicAudio\NicAudio.dll")
    
    
    # AC3
    # NicAC3Source("audio.ac3")
    
    
    # MPA
    NicMPG123Source("audio.mp2")

    Die Einstellungen sind im Anhang zu ersehen. Für das 4:3-Format verwende ich nun generell eine durchschnittliche Videobitrate von 1300 kbps, für das 16:9-Format eine Bitrate von 1000 kbps. Das scheint mir ein guter Kompromiss zwischen Dateigröße und Qualität zu sein. Bei DV-Aufnahmen reichen 1300 kbps Videobitrate jedoch bei weitem nicht aus, wie ich feststellen musste. Da ich ansonsten aber mit den Bitraten nicht hausieren gehen muss, verwende ich für den Audioteil nun 128 kbps (Nero AAC, ABR, Stereo) – schließlich gibt es ja noch den Kopfhörer-Anschluss.

    P.S.: Ich weiß gar nicht, was die Leute immer so haben, MeGUI ist das "Ein-Klick-Tool" schlechthin. :lol:

  • Jetzt muss ich diesen alten Thread doch noch mal hervorholen. So wie es aussieht, lässt sich das H.264-Format auch auf einem iPAQ einigermaßen vernünftig einsetzen.

    Code
    program --pass 2 --bitrate 600 --stats ".stats" --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --no-cabac --subme 7 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input"

    Mit obiger Kommandozeile (aus MeGUI heraus) erhalte ich schon mal eine flüssige Wiedergabe (CABAC musste ich allerdings deaktivieren und AVC-Deblocking im CorePlayer ebenfalls). Als Audio-Codec kommt Nero AAC (Adaptive Bitrate @ 128 kbps) zum Einsatz. Das Zielvideo hat eine Auflösung von 640x352.

    Irgendwelche Verbesserungsvorschläge?

  • Wenn ich mit der Videobitrate auf 550 kbps runter gehe, dann klappt's auch mit CABAC! Bei einem einminütigen Testclip zeigt mir der Benchmark ca. 120 % an - das sollte reichen.

    Code
    program --pass 2 --bitrate 550 --stats ".stats" --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --subme 7 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input"
  • [offtopic]
    Lese Deinen Monolog interessiert mit, auch wenn ich nichts dazu beitragen kann^^
    [/ontopic]

    mawi2006

    Intel Q9550@2500 MHz / Motherboard Name Asus P5N-VM WS / Grafikkarte NVIDIA Quattro FX470 / 4x2 GB 800 MHz / DVD-RAM DVR-216DBK / LiteOn IHas 322 / HDD: 500 GB HD502HJ / SSD: Solidata K5 64GB

  • Eintrag in mein Tagebuch: :lol: Fernsehmitschnitte im 16:9-Format sehen bei einer Auflösung von 640x352 und einer mittleren Bitrate von etwa 550 kbps (unter Ausnutzung aller Features von x264) schon mal ganz passabel aus. Mit 600 kbps sähe das noch einen Tick besser aus – aber leider wird's da etwas eng mit der Abspielbarkeit. Jedenfalls lässt sich da einiges an Platz sparen (der aber ohnehin nicht teuer wäre).

    Mal versucht einige andere Optionen wie '--ref', '--bframes' und vbv Beschränkungen zu Nutzen um CABAC auch bei höheren Datanraten nutzen zu können?


    Was die 640x352-er Auflösung betrifft, da bin ich, was die erreichte Qualität anbelangt, durchaus zufrieden. Ja, ich war sogar erstaunt, was man da so alles herausholen kann. :eek: Viel mehr Bitrate würde ich da gar nicht investieren wollen. Was die VBV-Beschränkungen anbelangt, da habe ich schon ein paar Versuche hinter mir. Leider alle ohne Erfolg. Ich denke, das Nadelöhr ist und bleibt der iPAQ (Prozessor, Grafikchip etc.). Am CorePlayer dürfte es jedenfalls nicht scheitern.

    "Probleme" bereitet vor allem die max. Auflösung von 640x480. Mit obigen Einstellungen müsste man die Bitrate fast halbieren (grobgeschätzt etwa 320 kbps), damit eine flüssige Wiedergabe gewährleistet ist. Wenn man CABAC, die B-Frames und adaptives DCT deaktiviert und nur 1 Referenzframe zulässt, dann klappt's auch mit Bitraten bis zu etwa 1500 kbps. Immerhin. DV-Videos sehen damit allerdings immer noch nicht wirklich "atemberaubend" aus – selbst dann nicht, wenn ich AVC-Deblocking im CorePlayer wieder aktiviere und ein ruckelndes Video in Kauf nehme.

    Ich habe daraufhin mal einen kleinen "Stresstest" gemacht: Der iPAQ spielt XviD-Videos mit einer Auflösung von 640x480 und einer Bitrate von 4000 kbps (!) absolut ruckelfrei ab. :eek:

    Als Zwischenfazit bleibt: Für 16:9-Auflösungen (640x352, wegen Teilbarkeit durch 16) lässt sich das H.264-Format auf dem iPAQ in Verbindung mit dem performanten CorePlayer wunderbar einsetzen. Bei größeren Auflösungen (640x480) sollte man alle oben genannten Features von x264 deaktivieren und die Bitrate entsprechend raufsetzen (bis max. 1500 kbps).

    P.S.: Vielleicht sollte man den Thread nun doch verschieben. Mit AviSynth hat das nicht mehr all zu viel zu tun. Fragt sich nur, wohin? :grübeln:

  • Ich seh' schon, ich muss da ein bisschen systematischer an die Sache herangehen. Ausgehend von nachfolgender Konfiguration habe ich mal einige Benchmark-Tests durchlaufen lassen. Als mittlere Bitrate habe ich 600 kbps vorgegeben. Zur Sicherheit habe ich den Benchmark immer zweimal durchlaufen lassen. Als Video kam mein einminütiger Zooclip zum Einsatz.

    Code
    program --pass 2 --bitrate 600 --stats ".stats" --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --subme 7 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input" --fullrange on


    Mit dieser Konfiguration erhalte ich Benchmarkwerte von 111,53 % und 111,13 %.

    Varianten der obigen Konfiguration ergeben folgende Werte:

    Den großen Reibach kann man offensichtlich mit den B-Frames machen.

    2 Mal editiert, zuletzt von Archimedes1 (6. Juni 2009 um 19:06)

  • Bei einer Auflösung von 640x480 ist es wohl vernünftiger, wenn man bei XviD bleibt. Wenn man x264 um fast alle Optionen beraubt, dann sehe ich bei identischer Bitrate (getestet mit 1500 kbps) dann doch leichte Vorteile bei XviD.

  • Hier mal ein Vergleich zwischen x264 (ohne Restriktionen) und XviD anhand des einminütigen Zooclips (DV-Video). Während ich X264 mit einer mittleren Bitrate von 1500 kbps enkodieren ließ, musste ich bei XviD eine Bitrate von 1700 kbps vorgeben, um in etwa auf die gleiche Dateigröße zu kommen. Die Einstellungen sind identisch mit den letzten geposteten Einstellungen für XviD und x264. Schon ganz ordentlich, was das "Kosmetikstudio x264" bei "nur" 1500 kbps leistet. Auf dem iPAQ lässt sich das jedenfalls nicht vernünftig abspielen. :lol:

    X264 >>

    XviD >>

    3 Mal editiert, zuletzt von Archimedes1 (7. Juni 2009 um 03:14)

  • Ich habe noch ein paar weitere Benchmarktests hinzugefügt.

    Die nachfolgende Kommandozeile (aus MeGUI heraus) sei unsere Ausgangskonfiguration. Für diese habe ich dann die Referenzwerte (zur Sicherheit habe ich den Benchmarktest immer zweimal durchlaufen lassen) ermitteln lassen. Ausgehend von dieser Kommandozeile habe ich dann immer nur eine einzige Option geändert und die Benchmarkwerte ermittelt.

    Code
    program --pass 2 --bitrate 600 --stats ".stats" --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb --direct auto --subme 7 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "input" --fullrange onReferenz:          111,53 % und 111,13 %--subme 6:         104,51 % und 103,40 %--subme 8:         111,06 % und 109,68 %--subme 9:         110,96 % und 109,70 %--no-cabac:        127,97 % und 126,29 %--ref 3:           110,60 % und 110,07 %--ref 1:           114,60 % und 114,94 %Ohne --mixed-refs: 113,89 % und 112,48 %--bframes 9:       109,72 % und 110,46 %--bframes 5:       111,56 % und 110,80 %--bframes 2:       110,82 % und 110,46 %--bframes 1:       121,58 % und 120,26 %Ohne --bframes:    133,45 % und 131,83 %Ohne b-pyramid:    109,92 % und 108,93 %Ohne weightb:      116,29 % und 114,53 %Ohne --8x8dct:     117,89 % und 116,91 %Anmerkung: AVC-Deblocking war in allen Fällen im CorePlayer deaktiviert.Mit AVC-Deblocking erhalte ich für die Ausgangskonfiguration Wertevon 84,43 % und 84,53 %.

    Anschließend habe ich dann auch noch die SSIM-Werte (Q in Y) ermittelt. Die Zahlen bitte mit aller gebotenen Vorsicht interpretieren.

    7 Mal editiert, zuletzt von Archimedes1 (10. Juni 2009 um 22:49)

  • Ich habe hier einen etwa dreieinhalbminütigen Fernsehmitschnitt von einer Sportveranstaltung (Laufveranstaltung). Diesen habe ich einmal mit XviD und einmal mit x264 mit den bekannten Einstellungen (siehe oben) enkodiert. Das XviD-Video hat dabei eine Größe von 28,7 MB und das x264-Video eine Größe von 12,9 MB. Das x264-Video habe ich sogar noch mit yadifmod(mode=0, edeint=nnedi()) deinterlaced (ist mir aber eigentlich zu langsam), das XviD-Video mit yadif(mode=0).

    Das XviD-Video ist deutlich besser als das x264-Video! Von einer Halbierung oder gar Drittelung der Dateigröße gegenüber XviD kann hier jedenfalls nicht die Rede sein! Außerdem sieht das XviD-Video viel natürlicher aus. Das x264-Video wirkt in der Vergrößerung wie gemalt. Was ist da los? Es kann ja eigentlich nur die Bitrate sein. Der Vergleich mit dem Kosmetikstudio war doch nicht so verkehrt. :lol:

    Irgendwie erinnert mich das an:

    Zitat

    Das Glück ist wie ein Omnibus,
    auf den man lange warten muss.
    Und kommt er endlich angewetzt,
    so ruft der Fahrer: "Schon besetzt!" :eek: :motz:

  • Jetzt ist doch noch ein Omnibus gekommen. Und ein Platz war auch frei. :lol:

    Um mich nicht misszuverstehen, mit der Qualität des x264-Videos, welches ich im Übrigen mit 600 kbps enkodiert habe, bin ich im Grunde genommen ja zufrieden (sieht auf dem iPAQ ganz gut aus). Im Umkehrschluss heißt das aber, dass ich meine bisherige XviD-Bitrate von 1200 kbps noch weiter nach unten schrauben könnte, um in etwa auf das Niveau des x264-Videos zu kommen.

    Ich habe das x264-Video jetzt mal mit 800 kbps enkodieren lassen. Und siehe da, jetzt sieht die Sache schon ein wenig anders aus. Jetzt scheint das x264-Video einen kleinen Tick besser zu sein. In meiner "Verzweiflung" hatte ich sogar eine kurze SSIM-Analyse gemacht. Mit dem gleichen Ergebnis: Das x264-Video (Q = 0,9504) war einen kleinen Tick besser als das XviD-Video (Q = 0,9477). Auch der Kurvenverlauf war etwas günstiger. Der Unterschied war aber nicht all zu groß. So über den Daumen gepeilt, hat das schon mal ganz gut funktioniert, soll heißen, die SSIM-Analyse entsprach in etwa meinem subjektiven Eindruck.

    19,9 MB, so die Dateigröße des x264-Videos, entsprechen in etwa 69 % der Dateigröße des XviD-Videos (28,7 MB). Wobei ich XviD gar nicht optimal konfiguriert habe, z. B. konnte ich QPel nicht verwenden, da der CorePlayer damit Probleme hatte (der Benchmark änderte sich bei einem Testclip von ca. 140 % auf ca. 65 %).

    So als groben Richtwert würde ich mal sagen, dass x264 im vorliegenden Fall (Quellmaterial und Bitratenbereich beachten) etwa 66 % der Bitrate von XviD benötigt.

    3 Mal editiert, zuletzt von Archimedes1 (11. Juni 2009 um 03:37)

  • Wer lesen kann, ist klar im Vorteil. Ich habe bei der Average Bitrate in MeGUI (AutoEncode) immer die Videobitrate angegeben. Richtig aber wäre gewesen, die Summe aus Audio und Video. :wall:

    Zitat

    Average Bitrate: After the audio has finished encoding (if there is any), the video bitrate is adjusted so that the final bitrate of the file (including audio) reaches an average of what is set.

    Damit ändern sich natürlich die Zahlenwerte. Das "800-er" x264-Video hatte letzthin nur eine mittlere Videobitrate von 665 kbps und das "1200-er" XviD-Video nur 1017 kbps, wie ich durch den Bitrate Viewer festgestellt habe. Der scheint das auch korrekt zu ermitteln. An den Proportionen hat sich aber nicht viel geändert: 665 kbps sind ca. 65% von 1017 kbps. Die "600-er" x264-Videos hatten eine Videobitrate von 426 kbps und das vermeintliche "550-er" x264-Video hatte gar nur eine Videobitrate von 286 kbps.

    http://img34.imageshack.us/i/bitrateviewer.jpg/

    Für die 640x352-er Auflösung komme ich durch Testen nun auf eine mittlere Videobitrate von etwa 384 kbps (Benchmark knapp unterhalb von 120 %).

    Die Einstellungen für XviD habe ich entsprechend angepasst. Hier erscheinen 1300 kbps für 640x480 und 1000 kbps für 640x352 sinnvoll. Bei einer Auflösung von 640x480 sollten Videobitraten bis knapp über 3000 kbps kein Problem darstellen. Maximale Wiedergabequalität erreicht man letzthin nur mit XviD.

    9 Mal editiert, zuletzt von Archimedes1 (1. Juli 2009 um 22:47)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!