Beiträge von Cha Mi Long

    mkv wäre wohl die einzige Alternative wenn man mp4&avi(&mov) nicht nutzen will.

    Code
    -of lavf -lavfopts format=mkv -o "Pfad zum output mit .mkv Endung"


    a. -vcodec h264 nutzt nicht x264 sondern den libav H.264 Encoder, welcher qualitativ nicht an x264 heran
    b. -f matroska kann man sich sparen, wenn der Output eine .mkv Endung hat


    Ah .. ich hatte die libavformat nicht gesehen bzw überlesen.

    Nebenbei: Warum nutzt Du nicht einfach eine GUI wie Hybrid, HandBrake, AviDemux? Oder ein ShellSkript wie h264enc?


    Ich hatte anfangs eine GUI namens AcidDVD o.ä. genutzt. Diese arbeitete mit mencoder, mplayer und ffmpeg usw, war aber nicht sehr handlich und ohne Hintergrundwissen nur schwierig zu konfigurieren. Man trug die Encodieroptionen einfach in ein Feld ein, ohne dass die Optionen vorgestellt oder erläutert wurde. Daher habe ich mich mit den verschiedenen Dingen näher auseinandergesetzt und bin schließlich dazu übergegangen, mencoder ohne GUI direkt zu nutzen.
    Mittlerweile wäre ein ShellSkript sicherlich praktisch, nur bin ich dann jetzt auch auf dem Stand, dieses im Grunde selbst schreiben zu können.

    MPEG4-AVC/H.264-Video gehört nicht in einen AVI-Kontainer, weil dieser technisch veraltet ist und die modernen, komplexen Features dieses Videoformates (B-Frames, multiple Referenzen, Unterschied zwischen I- und IDR-Frame) überhaupt nicht korrekt verarbeiten kann. Außerdem schreiben Tools wie mencoder oder ffmpeg, die die Ausgabedatei nur einmal von vorn bis hinten erzeugen, bestimmte Kontainer wahrscheinlich nicht vollständig, gerade MP4 sollte mit MP4Box noch einkal komplettiert werden, für AVI gäbe es möglicherweise kein ähnlich geeignetes Programm unter Linux.


    Das heißt, eigentlich ist es Quatsch, den mencoder mit -of avi -ovc x264 aufzurufen, weil der AVI-Kontainer mit dem H.264-Video eh nicht so richtig gut klar kommt?
    Welches Ausgabeformat würdest du denn dann bevorzugen? Also -of ***
    Um es richtig zu machen, sollte man ffmpeg mit -vcodec h264 -f matroska nutzen?

    Zu dem Interlacing hab ich auch noch ein paar Fragen:
    Das steht in der mplayer Doc

    Zitat


    If the movie you want to encode is interlaced (NTSC video or PAL video), you will need to choose whether you want to deinterlace or not. While deinterlacing will make your movie usable on progressive scan displays such a computer monitors and projectors, it comes at a cost: The fieldrate of 50 or 60000/1001 fields per second is halved to 25 or 30000/1001 frames per second, and roughly half of the information in your movie will be lost during scenes with significant motion.

    Therefore, if you are encoding for high quality archival purposes, it is recommended not to deinterlace. You can always deinterlace the movie at playback time when displaying it on progressive scan devices. The power of currently available computers forces players to use a deinterlacing filter, which results in a slight degradation in image quality. But future players will be able to mimic the interlaced display of a TV, deinterlacing to full fieldrate and interpolating 50 or 60000/1001 entire frames per second from the interlaced video.

    Wann ist es denn jetzt überhaupt nötig, dass ich einen Deinterlacer benutze?
    Würde ich vorhaben, das Video auf eine DVD zu brennen, so bräuchte ich den Deinterlacer eh nicht (laut Text).
    Will ich das Video auf einem PC Monitor abspielen, kann ich das Video auch noch beim Playback selbst direkt deinterlacen (laut Text).
    Welche Situation gibt es denn dann noch, dass ich mich beim Encoden mit diesem Thema beschäftigen sollte?
    Zur Info: Mein Ziel ist es nicht, einen Film auf eine DVD oder gar Blu Ray zu brennen.


    Weitere Frage zu den verschiedenen Container-Formaten (avi, mkv usw):
    Was für einen Unterschied macht es, wenn ich beim mencoder die Option -of avi setze, welche Dateiendung mein Output hat, vor allem auch im Zusammenhang ob ich nun -ovc copy/x264 setze?
    Ich habe ausserdem ein Problem mit der Option -dumpvideo beim mplayer. Benutze ich diese Option bei einer 720x576 DVD, kann ich den resultierenden Output ohne Probleme per mplayer abspielen. Mache ich aber das gleiche bei einer .mkv Datei kann ich das nicht, obwohl die .mkv Datei selbst ohne Probleme abspielbar ist.
    Wofür gibt es zigtausend Ergebnisse bei Google, wie man eine avi in eine mkv umwandeln kann, wenn das Video selbst dabei einfach nur per -ovc copy kopiert wird!? Also als Beispiel:
    mencoder text.mkv -ovc copy -oac copy output.avi
    Registriert mencoder überhaupt, dass da zwischen den beiden Formaten gewechselt werden soll?! Ist der Befehl nicht gleichzusetzen mit "mv test.mkv output.avi"?

    glaube nicht, dass da intern Frametypen unterschieden werden,... sprich es wird genau so auf I wie auf P frames arbeiten, genaueres wird aber wohl nur im SourceCode zu finden sein,... (den Teil des mencoder SourceCodes hab ich mir nie angeguckt und plane ich eigentlich auch nicht anzugucken)


    Mir ist schon klar, dass der Filter die Frametypen vermutlich nicht unterscheiden wird .. aber anhand eines I-Frames wäre die Arbeitsweise wohl am einfachsten zu erklären gewesen, da hier ja das reine Image einfach nur komprimiert abgespeichert wird, soweit ich das verstanden habe.

    Die psychovisuellen Features von x264 können je nach Material sicher noch was bringen. :)


    Schon klar ;D

    1. Warum verwendest Du softtskip?


    Hm .. gute Frage .. ich meine mich erinnern zu können, dass softskip eine A-V Desynchronisation verhindert hat.

    2. Würde mich bzgl. der Qualität nicht auf PSNR/SSIM/... verlassen und eher den eigenen Augen vertrauen.
    Beim Vergleich mit dem Original sei auch angemerkt, dass Du allein schon durch "pp=de/dr" einen Unterschied zum Original pro Frame sehen solltest,...


    Wie genau arbeitet der dr Filter überhaupt?! Z.B. bei einem I Frame?

    Verwundert mich etwas, normalerweise sollte preset veryfast schneller sein.


    Ist auch Quatsch .. C+P Error .. veryfast sollte eigentlich veryslow sein.

    Sich auf die 3te Stelle von SSIM werden zu verlassen um Aussagen über die Qualität zu machen halte ich für abenteuerlich. :)
    -> einziges brauchbares Werkzeug um kleine Unterschiede zu sehen sind und bleiben wohl erst mal die eigenen Augen.


    Dritte Nachkommastelle ist vermutlich auch sehr vage .. true.
    Frage wäre allerdings, ob man einen sichtbaren Qualitätsgewinn jetzt echt nur noch durch Erhöhung der Bitrate bekommen würde.

    Hallo,

    ich bin neu hier und beschäftige mich seit Kurzem mit dem Mencoder und dem x264 Codec, um einige alte DVDs ohne Kopierschutz auf Festplatte zu kopieren.
    Dazu nutze ich zunächst die -dumpvideo Option des mplayers, um das Video 1:1 auf die Festplatte zu kopieren. Der Input ist hier übrigens ein nicht-animierter Spielfilm.
    Danach soll der Mencoder seine Arbeit erledigen mit Hilfe des x264 Codecs, um die Videodateien zu komprimieren, ohne große Verluste hinnehmen zu müssen.
    Dafür habe ich nach etlichem Lesen 4 Einstellungen für die x264 Optionen getestet, die hier aufgelistet sind:

    1)
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts tune=film:bitrate=1300:preset=veryslow:threads=0:nr=500:psnr:ssim:pass=1 -ofps 25 -oac copy -channels 6 -mc 0 -o /dev/null
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts tune=film:bitrate=1300:preset=veryslow:threads=0:nr=500:psnr:ssim:pass=2 -ofps 25 -oac copy -channels 6 -mc 0 -o output1.avi

    2)
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts bitrate=1300:preset=veryfast:threads=0:nr=500:psnr:ssim:pass=1 -ofps 25 -oac copy -mc 0 -o /dev/null
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts bitrate=1300:preset=veryfast:threads=0:nr=500:psnr:ssim:pass=2 -ofps 25 -oac copy -mc 0 -o output2.avi

    3)
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts bitrate=1300:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=0:nr=500:psnr:ssim:pass=1 -ofps 25 -oac copy -mc 0 -o /dev/null
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts bitrate=1300:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=0:nr=500:psnr:ssim:pass=2 -ofps 25 -oac copy -mc 0 -o output3.avi

    4)
    mencoder input.avi -of avi -vf softskip,crop=704:560:8:8,pp=de/dr -ovc x264 -x264encopts bitrate=1300:preset=veryslow:threads=0:nr=500:psnr:ssim -ofps 25 -oac copy -mc 0 -o output4.avi

    Die resultierenden avis haben innerhalb gewisser Fehlergrenzen die gleiche Bitrate und somit auch Größe. Danach habe ich mit dem qpsnr Tool sowohl den PSNR als auch den SSIM Wert für jeden einzelnen Frame errechnen lassen.
    1 = 40.37535, 0.97691
    2 = 40.41871, 0.97743
    3 = 40.56046, 0.97878
    4 = 40.40549, 0.97650

    "Sieger" wäre somit die 3. Variante, die spannenderweise auch noch die schnellste von den Vieren war. Meine Frage ist nun, wie aussagekräftig das alles ist. Kann ich damit zufrieden sein? Ein Verlust von guten 2% hört sich für mich als Perfektionist immer noch viel an. Eine höhere Bitrate möchte ich aber nicht zulassen. Gäbe es sonst noch irgendwelche Möglichkeiten, an den Optionen zu schrauben, um die Qualität bei gleicher Bitrate zu verbessern?
    Schaut man sich einzelne Frames an und vergleicht diese mit dem Original, so sieht man durchaus einen kleinen Unterschied, doch ob mir das beim schlussendlichen Sehen des Filmes überhaupt auffällt?
    Feedback, Kommentare sind sehr sehr willkommen.