Beiträge von pflanzer

    Hallo,

    Ich habe ein Problem beim Encoden von beliebigen Input-Files zu .mp4-Files, genauer gesagt funtkioniert das Decoden von WMV-Audiospuren zu .aac-Files nicht:

    (Debian, Xeon-Prozessoren => amd64)

    Code
    Requested audio codec family [wma9dmo] (afm=dmo) not available.Enable it at compilation.Requested audio codec family [wmadmo] (afm=dmo) not available.Enable it at compilation.Cannot find codec for audio format 0x163.

    Nun habe ich nachgelesen, dass man win32-Binarycodecs von mplayerhq herunterladen soll und dann den MPlayer dementsprechend kompilieren. Gesagt getan:

    dir /usr/local/lib/codecs

    Code
    acelpdec.ax          CtWbJpg.DLL   ivvideo.dll     msh261.drv                   QuickTime.qts  vdowave.drv   vssh264core.dll  wmsdmod.dllalf2cd.acm           DECVW_32.DLL  jp2avi.dll      msms001.vwp                  README         vid_3ivX.xa   vssh264dec.dll   wmspdmod.dllaslcodec_dshow.dll   drvc.so       LCMW2.dll       msscds32.ax                  rt32dcmp.dll   ViVD2.dll     vssh264.dll      wmv9dmod.dllAvidQTAVUICodec.qtx  dspr.so.6.0   LCODCCMW2E.dll  nsrt2432.acm                 sipr.so.6.0    vivog723.acm  vsshdsd.dll      wmvadvd.dllBeHereiVideo.qtx     iac25_32.ax   lhacm.acm       qpeg32.dll                   tokf.so.6.0    voxmsdec.ax   vsslight.dll     wmvdmod.dllCLRVIDDC.DLL         icmw_32.dll   lsvxdec.dll     qtmlClient.dll               tokr.so.6.0    vp4vfw.dll    vsswlt.dll       wnvwinx.dllclrviddd.dll         ir41_32.dll   m3jp2k32.dll    QuickTimeEssentials.qtx      tvqdec.dll     vp6vfw.dll    wma9dmod.dll     wvc1dmod.dllcook.so              ir50_32.dll   mi-sc4.acm      QuickTimeInternetExtras.qtx  VDODEC32.dll   vp7vfw.dll    wmadmod.dll      xanlib.dll

    Wie man sehen kann, befindet sich wma9dmod.dll im Verzeichniss.

    Nun habe ich MPlayer neu kompilliert:

    Code
    ./configure --win32codecsdir=/usr/local/lib/codecs --codecsdir=/usr/local/lib/codecs --xanimcodecsdir=/usr/local/lib/codecs --realcodecsdir=/usr/local/lib/codecs --enable-largefiles

    (Danach natürlich make, make install)

    Effekt: Null, nach wie vor beschwert sich Mplayer über den fehlenden Codec.

    UPDATE: Argh, system scheint amd64-Architektur zu haben: package architecture (i386) does not match system (amd64)
    Was nun? Anscheinend funktionieren diese bins nicht bei amd64 :/ ? Irgend eine Andere software bei der es geht? Irgend ein Tipp? Ich muss ja im prinzip nur die Audiospur extrahieren.

    Eins ist noch aufgetreten :)

    Und zwar war der Ton bei einem Inputvideo nicht synchron, das Video war schon vorbei und der Sound lief noch weiter. Dann habe ich einfach mal bei MP4Box die Optionen "-fps 29.976 -par 1=1:1" entfernt. - Zack, funtkionierte.

    Dann habe ich allerdings bei einem anderen Video ebenfalls die Optionen weggelassen, und dann war dort der ton nicht synchron. Weist du zufällig, wie ich im vorraus erfahren kann, ob ich die option anwenden soll oder ob nicht?

    Thxi! :)

    Leider bricht mencoder auf die erzeugung der raw-videofile mit folgendem Fehler ab (hab bewusst mal -really-quiet weggehauen):

    http://img233.imageshack.us/my.php?image=debianfehler1pe7.jpg

    mp4-multiplexing-probleme durfte ich schon leidvoll erfahren ^^.

    Unter Windows scheint es bis dato zu klappen :)

    UPDATE: Unter Windows funktionierts. Werde mal noch rumprobieren mit Linux, das krieg ich irgendwie hin :)

    Frage zum patchen kurz:
    Da is ja so eine .diff-Datei bei dem Patch . Muss ich jetzt x264 kompillieren und einfach in /etc/bin und dann "patch x264 < patch.diff"?
    Konnte diesbezüglich nichts brauchbares, sicher funktionierendes ergoogeln.

    UPDATE2: Gutes Ergebnis erreicht! (ähnelt deinem), sehr fein, bigthx dafür!
    Gleich mal noch mit weiteren quellvideos probieren :)

    UPDATE3: Der ton ist etwas asynchron (egal), grund ist wohl, dass du oben fürs muxen "-fps 23.976" geschrieben hast und ansonsten "--fps 29.970" ^^ - Wäre vielleicht nicht schlecht, nochmal kurz über die Anleitung zu gucken, wenn später mal jemand nach googelt verwirren ihn die paar kleinen fehlerchen ansonsten noch (raw-file-erzeugung steht zweimal drin, außerdem --stats "G:\Broll-Final.stats")

    :)

    UPDATE4: Wenn ich mit mencoder aus ner .wmv das audio rausextrahieren will, klappt das nicht wirklich, gute lösung spontan parat? Meine temporär-lösung:
    mplayer -vo null -vc null -ao pcm:file=temporary.wav input.wmv
    (nachteil: geht nur in realtime, also etwas langsam, wenn ich :fast einfüge erzählt der mir was von prozessor zu lahm.)

    Damit ich nicht wieder ewig rumsuchen muss (die Tatsache, warum ich nicht mehr versuche alles selbst herrauszufinden, ist, dass ich bereits dutzende Stunden in Fragen mp4-Encoding herumgesucht etc. habe um dann festzustellen, dass es so nicht funktioniert - ohne Witz ^^): Wie kann ich einfach glätten/rauschen entfernen (kommandozeile only, avisynth...)? Link zu (verständlicher) anleitung genügt :)

    Linux: Debian Etch
    Problem dabei: Habe rumversucht zu kompilieren etc. pp. (x264-library um ffmpeg mit x264 kompilieren) und es hat auf den tod nicht funktionieren wollen ^^. Wäre allerdings extrem hilfreich, so wies im moment läuft, isses nämlich etwas kompliziert:

    - Film wird auf Hauptserver geladen (linux)
    - Hauptserver läd Film zu Windows-Vserver
    - Windows encoded lahm
    - Windows-Vserver läd Film zu Linux-Hauptserver
    ^^

    Auflösung: Generelle Frage: Auflösung vom quellmaterial einfach so belassen generell - mache ich so nichts großartig falsch?

    PS: Die Quellmaterial-Sache ist echt schade, muss man die entsprechenden Veröffentlicher-Stellen mal versuchen, dazu zu bewegen, verlustfreies Material herauszugeben.

    Das hat weitergeholfen!

    Man sieht nämlich jetzt, dass durchaus ein signifikanter Unterschied besteht zwischen deinem encoding und meinem (gleiche Bitrate), siehe hier:
    http://img155.imageshack.us/my.php?image=beispielau8.png (meins ist das unten)

    Quellmaterial: Gut zu wissen, dummerweise komme ich nicht an das ursprungsmaterial ran bzw. werde es bei anderen Clips leider auch nicht.

    Was empfiehlst du mir, um mit den leider bestehenden beschränkungen möglichst gute Resultate zu erzielen? (Auflösung doch runter? LanczosResize verwenden oder anderen Avisynth-Verkleinerer...) Kann ich H.264 auch dazu bekommen, bei niedrigen Bitraten mehr zu glätten? Mit welchen Parametern (siehe dein man x264-pdf) soll ich mal rumspielen?

    (zum glück weis ich nun, dass man das encoding nur für die ersten x Frames durchführen kann, was expirimentieren natürlich erleichtert).

    Was besonders gut wäre, wäre vorallem mehr Schärfe im Video.

    @prozessor: Und ich muss mich hier mit einem Virtuellen System und dementsprechend weniger Rechenpower rumschlagen ^^, wenn das ganze mal unter Linux zum Kompilieren funktionieren würde, könnt ich auf 8 Cpu-Cores zurückgreifen ^^ - Aber das ist wieder ein ganz anderes Thema, dass angegriffen wird, sobald das Encoding mal steht...

    Dank dir :)

    Genau das mit den (derzeit) nicht vorhandenen Gebühren war die Motivation, H264 einzusetzen :)

    Was mir noch Auffiel: VP6 hat bei gleicher bitrate mehr hinbekommen imho, ist der bei niedrigen bitraten einfach besser, oder liegts doch an unguten einstellungen?

    Zitat

    Nur wenn Du das Bild später beim Playback größer machst als Du es encodest,..

    Wird bei der Vollbildfunktion halt leider automatisch der Fall sein :/
    Hatte aber den Eindruck, dass selbst bei "kleinem" Playback die Qualität schlechter (verschwommen) ist, wenn ich die Auflösung runter setze.

    Im Prinzip ist mir die Auflösung nicht wichtig. Es geht vorallem um eine möglichst gute Endqualität bei bitrate X (700kbit, 1700kbit, 2700kbit), und darum, dass es mit Flashplayer 9 kompatibel ist (muss H.264 sein, VP6 ist unerschwinglich)

    Komisch war halt, dass nach Verkleinerung durch LanzcosResize per .avs-Script die Qualität noch geringer war (eigentlich hatte ich angenommen, dass bei einer geringeren Auflösung bei einer Bitrate von 1700kbit ein besseres Ergebnis zu erwarten ist).

    Was ich mit dem Beispiel von Adobe darstellen wollte, war lediglich der enorme Qualitätsunterschied.

    Das Quellmaterial gibt's hier: http://dl4.gamersunity.de/get/Broll-Final.rar
    (wenns probleme mit der Dateigröße gibt: Soll ich screenshots draus machen oder einen Teil "ausschneiden"?, müsste halt erstmal rausfinden, wie das möglichst gut geht, aber das soll nicht das problem sein ^^)

    Danke für die Hilfe!

    Die Resultate, die ich mit x264.exe erreiche, sind für meine Begriffe nicht wirklich zufriedenstellend.

    Wenn ich mir diese Videos hier ansehe:
    http://www.adobe.com/products/hdvideo/hdgallery/
    (480p-Version), so stelle ich fest, dass diese mit etwa 4mbit encoded sind.

    Encode ich nun mit 2mbit erhalte ich viel verpixeltere, artefaktreiche Resultate, insbesondere dann, wenn sich viel bewegt (auch in der hdgallery von oben sind beispiele mit viel bewegung). Was mache ich falsch? Klar, die qualität wird schlechter, aber so schlecht?

    Folgendermaßen gehe ich vor:

    Code
    x264 -b 3 --b-pyramid -r 6 -B 2700 -p 1 -A "all" --bime --no-fast-pskip --stats "stat.tmp" -o NUL input.avs
    x264 -b 3 --b-pyramid -r 6 -B 2700 -p 2 -A "all" --bime --no-fast-pskip --stats "stat.tmp" -o temporary.264 input.avs

    Wenn ich im .avs ein Resize auf z.b. 480 mal 320 einstelle, werden die ergebnisse noch schlechter (verschwommen), als wenn ich einfach das 1280*X-quellmaterial nehme.

    Encodingzeit ist mir nicht so wichtig, aber die Qualität hinten sollte halt stimmen. Krieg ich das mit einer bitrate von 1,8-2 mbit überhaupt hin?

    Ich habe schon diverse guides durchgelesen und settings angepasst, aber dies blieb ohne nennenswertem resultat.

    Ein Beispielencode: http://www.gamersunity.de/videosys/output2.mp4

    Mache ich grundlegend etwas falsch oder ist einfach nicht viel mehr drin? Das Quellmaterial hat eine hohe qualität.

    (Ein Problem dabei ist sicher der recht langsame encoding-prozessor, der nicht allzuviel herumprobieren ermöglicht)

    Huhu,

    Nachdem ich nun schon seit längerem eine Lösung suche, die auch funktioniert, nun meine Frage an euch:

    Ich habe mit mencoder eine reine videodatei im h264-format angelegt (encodiert von einer divx-quelle):

    Code
    mencoder zerg.avi -ovc x264 -x264encopts bitrate=800:threads=auto:frameref=5:bframes=3:nob_pyramid:direct_pred=auto:partitions=all:8x8dct:subq=6:mixed_refs:nodct_decimate -nosound -ofps 30 -noskip -of rawvideo -o videoonly.264 ziel.264 -mf fps=30

    Nun habe ich aus derselben Quelldatei einen mp3-stream extrahiert:

    Code
    mencoder zerg.avi -of rawaudio -oac mp3lame -ovc copy -o audioonly.mp3

    Anschliessend habe ich das ganze noch ins .mp4 format gemuxxt:

    Code
    MP4Box -fps 30 -add videoonly.264 -add soundonly.mp3 audiovideo.mp4AVC-H264 import - frame size 1280 x 544 at 30.000 FPSImport results: 4264 samples - Slices: 50 I 2209 P 2005 B - 1 SEI - 34 IDRMP3 import - sample rate 48000 - MPEG-1 audio - 2 channelsSaving to audiovideo.mp4: 0.500 secs Interleaving

    Nun ergibt sicht folgende "symptomatik":
    - Die fertige mp4-Datei lässt sich mit einem Flash-Player abspielen, ist dann aber ohne ton.
    - Die 264-Datei lässt sich mit VLC Player abspielen, wenn im streamingmodus, dann allerdings mit ein paar rucklern (hat das was zu bedeuten?)
    - Die fertige mp4-Datei lässt sich unter VLC Player nur fehlerhaft abspielen (Wiedergabe stoppt bzw. friert eine zeit lang ein etc.) - Sound ist allerdings kurz zu hören.
    - Die gleiche Symptomatik gibts, wenn ich statt der mp3-datei eine .aac-Datei einmuxe.

    Wer selber nachprüfen will, hier die entsprechenden files:
    - Quellvideo: http://dl.gamersunity.de/starcraft-2/vi…german_xvid.zip
    - Video-Only .264: http://www.gamersunity.de/videosys/videoonly.264
    - Audio-Only .mp3: http://www.gamersunity.de/videosys/audioonly.mp3
    - MP4-Gemuxte datei: http://www.gamersunity.de/videosys/audiovideo.mp4

    Wäre für Hilfe echt dankbar. Doktere nun bereits eine halbe ewigkeit herum ^^.
    Für mich kommen nur kommandozeilen-lösungen in Frage.

    UPDATE: Merkwürdig, mit anderer Quelldatei funktioniert es! - http://www.gamersunity.de/videosys/example_art-muxed.mp4
    - Zumindest in Flash (und darauf kommt es mir an)

    UPDATE2: So, jetzt habichs ^^

    Lösung:

    Erst .wav aus quell.avi extrahieren, dann mit faac zu .aac transformieren, dann die so enstandene .aac einmuxen.

    Code
    mplayer -vo null -vc null -ao pcm:file=temporary.wav input.avi
    faac -o temporary.aac temporary.wav