mp4 oder flv Container

  • Hallo zusammen,


    ich möchte Video für das Web mit ffmpg exportieren. Dazu verwende ich wahrscheinlich am besten den H264 oder eben das Mpeg4-Part 10 Codec.


    Nun stellt sich mir aber dennoch die Frage - soll ich für das Contaierformat flv, mov oder mp4 ausspielen. Da es sich meist um kurze Filme von unter 60sek handelt ist die Größe relativ irrelevant, da sie für eine so kurze Dauer sowieso ähnlich groß wäre.


    Für flv fällt mir nur ein das es kompatibler ist als die anderen beiden, sonst sehe ich da keinen Vorteil.


    Hat das Containerformat sonst noch irgendeinen Einfluss auf die Qualität des Videos oder hängt das wirklich nur vom Codec ab? Der Videoinhalt an sich kann alles sein, vom Schwarz-weissen Stummfilm bis zur bunten Comicanimation.


    Danke für Input.

  • Zitat

    Für flv fällt mir nur ein das es kompatibler ist als die anderen beiden, sonst sehe ich da keinen Vorteil.


    Das hätte meiner Ansicht nach eher für .mp4 gesprochen,... geht mit Flash und Quicktime. flv geht nur mit flash.


    Zitat

    Hat das Containerformat sonst noch irgendeinen Einfluss auf die Qualität des Videos oder hängt das wirklich nur vom Codec ab?


    Mal von eventuellen AspektRatios abgesehen: Nein.

  • Hmmm, kann man das mal an einem Beispiel verdeutlichen? Ich raff's nämlich immer noch nicht. Wir reden hier aber nicht über irgendwelche Flags wie auch DVD's - oder?


    Ich gehe nämlich eigentlich davon aus, das wenn ich z.B. 640x360 für 16:9 verwendet, dass das dann auch angezeigt wird - egal ob flash oder mp4. Ist das dann falsch?


    Und zweitens - ab welcher Flash-Version kann denn mp4 ohne Probleme angezeigt werden?

  • Doch, um solche Flags geht es. So kann man z.B. auch 720x576 speichern und das Video oder den Kontainer mit einem Flag versehen, dass das Ergebnis auf 16:9 auseinandergezogen werden soll (je nach Format -- SAR-Flags würden einen Streckungsfaktor speichern, DAR-Flags ein Zielseitenverhältnis).


    MPEG4-AVC in FLV oder MP4 sollte spätestens ab Flash-Player 9.0.0.126 möglich sein. Eventuell noch ein wenig früher.

  • ich hätte immer gedacht diese Flag sind nur für DVDs im Mpeg2-Codec relevant. Das so etwas auch online relevant ist hatte ich nicht gewusst.


    Wobei für Web-Anwendungen sich die Größen auch in Grenzen halten sollte, da fände ich 640x360 z.B. schon ausreichend und dann kann ich doch auch ohne Flags arbeiten.
    Außerdem verwende ich auf online-basis doch sowieso immer ein PAR von 1:1, daher fallen doch die Flags eigentlich weg.

  • Ein Format ist ein Standard. Den haben die Player gefälligst zu beachten. Und wenn der Standard es erlaubt, das Seitenverhältnis der Pixel oder der Bildfläche festzulegen, dann gilt das für sämtliche Videodateien, die nach diesem Standard aufgebaut sind - egal mit welchem Player man sie abspielt... theoretisch.


    Dass solche Flags von mancher Player- oder Konvertierungs-Software (oder dem Nutzer der Konvertierungssoftware) nicht beachtet wierden, sieht man leider immer wieder mal.

  • Ok, das hab ich dann auch so einigermaßen verstanden.


    Jetzt bin ich aber immer noch ein wenig unentschlossen welchen Codec man in welchen Containerformat für Webstreaming nehmen sollte, wobei das nicht irgendein Livestreaming sein soll sondern Datei liegt auf einem Server und wird von dort aus angesehen.


    Die meisten solcher Filme sind ja meist schon als mp4 im Netz zu finden (wohl wegen dieser Doppelkompatibilität), meist mit dem H264 bzw. AVC Codec verpackt und schwankenden Bitraten, hängt dann wahrscheinlich auch von der eigenen Geschwindigkeit ab...

  • MPEG-4 AVC im MP4-Kontainer ist "reinrassig" und wird von jeder aktuellen Flash-Plugin-Installation wie auch von jedem gut ausgestatteten Mediaplayer (VLC, Mplayer, MPC-HC, ffdshow+Haali für alle anderen) unterstützt. Was will man mehr?


    Naja und genau das ist das Problem mit dem "gut ausgestatteten", da die Videos meist auf 0815-Standartrechnern wiedergegeben werden sollen. Stellt's Euch einfach so vor: ein Video muss auf 100 Rechnern wieder gegeben werden, die alle ein wenig anders aufgebaut sind. Ändern könnt Ihr das setup an den Rechnern auch nicht und wie die genau ausgestattet sind wisst Ihr auch nicht, außer das meist Windows und kein Mac verwendet wird. Und nun lautet die Aufgabe einen Videocodec zu finden, der die für solche Standartrechner höchste Qualität bietet...


    Abgesehen davon - woher weiß ich denn welchen Mpeg-4 Standart ffmpeg verwendet? Derjenige der das eigentlich programmiert hat leider keine Zeit und daher muss ich mich da ein wenig reinfummeln... In de Commandzeile von ffmpeg stand bislang immer entweder:
    vcodec="libx264"
    vcodec="mpeg4"


    eigentlich ist ja der x264-Codec der richtige - oder?

  • Zitat

    Mpeg-4 Standart ffmpeg verwendet?


    Der MPEG-4 Standard dem der Ausgabevideostream entspricht ist durch den Encoder vorgegeben den ffmpeg verwendet.
    bei "libx264" wird x264 als Encoder verwendet, was nur MPEG-4 AVC Material erstellen kann
    bei "mpeg4" verwendet ffmpeg normalerweise einen eigenen Encoder der MPEG-4 ASP Material erstellt


    ----

    Zitat

    das meist Windows und kein Mac verwendet wird.


    Ab Windows 7 kann Windows selber* MPEG-4 AVC Material wiedergeben, bei älteren Windows Versionen trifft dies auf WMV zu.


    Nachteile an WMV/VC-1:
    1. unter Linux problematisch
    2. komprimiert nicht so gut wie (ordentliche) MPEG-4 AVC Encoder
    3. braucht mehr CPU Power beim Encoden als MPEG-4 AVC


    Vorteil:
    1. braucht weniger CPU beim Playback als MPEG-4 AVC
    2. auch bei kommerzieller Nutzung keine Lizenzkosten
    3. i.d.R. noch etwas schlechter zur Weiterverarbeitung geeignet als MPEG-4 AVC
    4. ist auf Windows nativ dabei oder wird vom Windows Mediaplayer automatisch nach installiert (bei alten Windows Versionen)
    * ohne das man etwas zusätzlich installieren muss


    Zitat

    Und nun lautet die Aufgabe einen Videocodec zu finden, der die für solche Standartrechner höchste Qualität bietet...


    In Hinblick darauf, dass 'Standardrechner' nicht existieren, allein schon weil man nicht sagen kann wie schnell sie sind erscheint dies nicht soo sinnig, d.h. wenn Du da hilfe willst müsstest Du schon Angaben dazu machen, was Du als 'Standardrechner' ansiehst. Gerade mit der steigenden Anzahl an Netbooks und anderen LowEnd-Lösungen ist das nicht so einfach. (wobei diese aber meist sowohl MPEG-4 AVC als auch WMV handeln können, wenn entsprechende Decoder installiert sind oder mit dem Betriebssystem direkt mitkommen) ;)


    Nebenbei: Da es Dir hier ja in erster Linie um die Frage nach dem Container geht und flv oder mp4 zur Auswahl standen fällt WMV eh raus, da man dieses nicht in die genannten Container packen kann (sollte).


    Cu Selur

  • Ein Standard ist keine Stand-Art.
    __


    08/15-Rechner mit Microsoft Windows (zumindest bis Vista) können sowieso von Haus aus weder MP4 noch AVC wiedergeben, es geht also sowieso nicht ohne zusätzliche Software. Ein Flash-Plugin für einen Webbrowser gehört hier noch zu den einfacheren Anforderungen. Ebenso die Installation des VideoLAN Client. Beide gibt es für unterschiedlichste Betriebssysteme, und beide funktionieren normalerweise direkt nach Installation zufriedenstellend.
    __


    ffmpeg kann vieles. Je nach dem, was derjenige hineincompiliert hat, der das Programm veröffentlicht hat. Für manche Standards hat er sogar evtl. mehrere Encoder zur Auswahl -- z.B. für MPEG-4 ASP einen Referenz-Encoder (ohne wesentliche Optimierungen) und die XviD-Encoder-Bibliothek; ebenso für MPEG-4 AVC einen Referenz-Encoder (ohne wesentliche Optimierungen) und die x264-Encoder-Bibliothek; und auch für MP3 (MPEG-Audio Version 1 Layer 3) einen Referenz-Encoder (ohne wesentliche Optimierungen) und die LAME-Encoder-Bibliothek. Beide Alternativen werden standardkonformes Material erzeugen, die Unterschiede liegen nur überwiegend in der Art, wie weniger wichtige Details so reduziert werden, dass keine störenden Artefakte übrigbleiben (psychovisuelle / psychoakustische Optimierungen), und wie intelligent nach Ähnlichkeiten gesucht wird, die der Encoder zum Sparen nutzen kann.