• Habe das --depth 1 bei git clones eingesetzt, danke für den Hinweis. mingw bzw. GCC sind eigentlich nur in Version *.0 und *.1 kritisch, Version .1 wird bald kommen und dann wird es eh wieder recht lange dauern bis eine *.0 Version raus kommt. Den Leuten von Msys2 ist das Problem ja bekannt und sie tun ihrerseits auch alles um diese Fehler zu vermeiden. Für ihre libs brauchen sie ja auch lauffähige Compiler. Ist mittlerweile ne lange Liste: https://github.com/Alexpux/MINGW-packages

    Das mit den Anhängkeiten stimmt schon, aber bis jetzt haben wir den Fall noch nicht drin, denke ich. Das Bauen von der rtmpdump Binary am Ende ist sicher keine schlechte Idee, ähnliches sollte auch noch bei x264 gemacht werden. Na wie schaut es mit dem Fork aus? ;)
    Ne ehrlich, zugegebenermaßen tut mich das Script etwas blockieren, und ich würde die Arbeit daran daher gerne einstellen. Das war auch der Gedanke warum ich noch auf msys2 umgestiegen bin, das kompilieren ist darunter stabiler, und es wäre erst mal eine längere Zeit lang alles up to date gewesen.

    Den sed Befehl für kvazaar habe ich auch übernommen - danke!

    Hatte am Freitag noch was an den Profilen geändert gehabt, wenn also jemand vor Freitag alles gebaut hat, müssen die mal wieder gelöscht werden. Jetzt stellt der hg download auch Umlaute da :).
    dlfcn und jasper nehme ich jetzt auch aus der mingw Sammlung. ffmpeg hat jetzt auch keine extra Option für x265 mehr zur Auswahl, den ini Eintrag 3 gibt es daher nicht mehr.

    Wenn du, tobwen, dich noch weiter reinhängen willst: mplayer wäre sicher noch ne Baustelle wo es einiges zu tun gäbe. Audio CDs gehen noch nicht richtig, und einige libs, die zwar gebaut werden, werden nicht eingebunden. Möglich auch, dass dvdnav und dvdread besser aus der internen Sammlung genommen werden, als diese selbst zu bauen. Hatte die Bauweise vom rdp-Script genommen.

  • Denen muss bei cmake ein Fehler unterlaufen zu sein… wenn ich minGW selbst baue, klappt es…

    Ich fahre kurz ins Hotel und melde mich danach wieder. Meine Anpassungen sind teilweise nur fixes für GIT, da ich nicht auf dessen Standardports zugreifen kann… keine Ahnung, wieso die nicht 443 genommen haben.

    Wieso hast du eigentlich manchmal so komplexe GIT-Konstruktionen? Clone macht doch nix, wenn es nicht geupdated werden muss - oder doch?

  • Vielleicht baust du cmake auf XP und dort wird dann nicht die Funktion eingebunden die die Inkompatibilität verursacht?!

    Welche git Befehle sind denn komplex? Meistens ist es doch nur clone, bzw. update. Geklont wird nur wenn das Paket nicht existiert und umgekehrt wird auch nur upgedatet wenn es was zum updaten gibt.

  • Vielleicht baust du cmake auf XP und dort wird dann nicht die Funktion eingebunden die die Inkompatibilität verursacht?!

    Ich habe gestern beim falschen Bauen eines anderen Pakets exakt die fehlende DLL angezeigt bekommen, von der du berichtet hast. Ich gehe daher von einem Baufehler aus. Übriges wirft das fehlerhafte cmake bei mir gar nichts aus.

    Zitat

    Welche git Befehle sind denn komplex? Meistens ist es doch nur clone, bzw. update. Geklont wird nur wenn das Paket nicht existiert und umgekehrt wird auch nur upgedatet wenn es was zum updaten gibt.

    Du hast da teilweise REV-Befehle dein, wenn die Verzeichnisse bereits vorhanden sind. Da ich die ganzen GIT:// Sachen auf HTTPS umgestellt habe, sind mir auch viele Doppelungen aufgefallen.

    Ich Forke in den kommenden Tagen mal.

  • Wäre super wenn du das den Entwicklern melden würdest, die sind eigentlich immer recht rasch, sind die gleichen die auch an mingw mitbauen: https://sourceforge.net/p/msys2/mailman/?source=navbar
    cmake zeigt unter xp auch nicht an, wenn man es von der shell aus aufruft. Nur wenn man es doppelklicken würde, oder von der Windows cmd aus startet.


    Ah jetzt weiß ich was du mit den vielen git Befehlen meinst. Die sind alle schon so notwendig. Das einzig unschöne ist, dass momentan zweimal configure und make Zeilen drin sind. Zuerst lass ich die aktuelle Version mit git rev-parse HEAD speichern, dann lass ich ein update machen und mit dem zweiten git rev-parse HEAD Befehl lass ich die neue Version speichern. Anschließend wird verglichen ob sich was an neuer und alter Version geändert hat, wenn nicht passiert nichts, und wenn ja wird das Tool neu gebaut.
    Es wäre nur etwas schöner, nicht zwei mal config und make Zeilen zu haben. Bei ffmpeg muss zusätzlich noch geprüft werden, ob die libs schon im System sind, falls der ffmpeg-git Ordner nicht vorhanden ist. Ansonsten würden beim compilen die libs aus dem System genommen und nicht die neu gebauten. Auch wenn sicher nicht alles sehr schön gelöst ist und manches verbesserungsfähig sein mag ist schon was bei gedacht worden.

    Edit: Ich habe mal angefangen die git clone und update Funktionen auf zu räumen, jetzt kommt das Script mit weniger Zeilen aus. Man müsste mal sehen ob es lohnt noch weiter zu reduzieren. Das File compile_videotools.sh ist durch, bei den audio tools müsste das ganze noch übernommen werden. x264 wird jetzt auch am Ende, bei Bedarf, noch mal neu gebaut mit integrierter libav.

    Edit2: compile_audiotools.sh und compile_videotools.sh sind jetzt zusammen gemischt worden in compile_localtools.sh. Das macht das es ein bisschen einfacher zu handeln.

  • Ich habe es jetzt auf einem sauben Windows 7, 64-bit System probiert. Leider fliegt mir libvpx-git um die Ohren:

    Code
    Klone nach 'libvpx-git'...
    fatal: The remote end hung up unexpectedly
    fatal: protocol error: bad pack header
    B:\ffmpeg\media-autobuild_suite-master\compile_localtools.sh: Zeile 30: cd: libvpx-git: No such file or directory

    Edit 01: Fehler gefunden: http://git.chromium.org/ mag kein --depth 1
    Naja, ist ja schnell behoben :D

    4 Mal editiert, zuletzt von tobwen (20. Mai 2014 um 03:09)

  • Habe es jetzt hin bekommen das externe mercurial mit dem internen zu ersetzten, somit kann nun auf alle externen Tools welche mal unter /opt waren verzichtet werden. Damit eine alte Installation mit dem neuen Script läuft müssen wieder mal die Profile gelöscht werden und in der mintty shell folgende Befehle ausgeführt werden:

    pacman -S mercurial
    pacman -S p7zip

  • Zitat

    somit kann nun auf alle externen Tools welche mal unter /opt waren verzichtet werden.


    Heißt das der opt Ordner kann entfernt werden?
    Sprich man müsste:

    • global32\etc\profile.local löschen
    • global64\etc\profile.local löschen
    • opt löschen
    • mitty starten und dort

      • pacman -S mercurial
      • pacman -S p7zip


      ausführen

    Cu Selur

  • Habe noch eine Auswahlmöglichkeit für ffmpeg shared hinzugefügt (wäre in der ini der Wert 3). Bei der shared Version wird momentan allerdings kein utvideo integriert, macht noch Probleme. Ansonsten wird vpxenc.exe und vpxdec.exe wieder mal nicht gebaut, also sollte vorher gesichert werden, falls benötigt. Bug ist gemeldet, mal sehen wann er gefixt wird.

    Edit: der Fehler in vpxenc/vpxdec ist nur in 32 bit Version.

    Edit2: es gibt eine neue Auswahlmöglichkeit: man kann wählen ob jedes mal ffmpeg neu gebaut werden soll, wenn eine lib ein update erhalten hat. Dazu muss die ini gelöscht und neu angelegt werden.

  • Fände es schon störend wenn die global tools da auch direkt im bin-Ordner landen.
    Eventuell wäre es ja auch schon ne Hilfe für Dich wenn Du die Tools dort in einem Unterordner 'globals' packst anstatt direct in den bin Ordner.
    (eventuell localX/bin mit Unterordnern audio/video/global)

  • Ja sorry, hatte ich im commit erwähnt, aber hier nicht.
    Habe jetzt die global und local Ordner, bzw. Scripte zusammen gelegt. Auch deinen Wunsch habe ich berücksichtigt und du findest jetzt die Tool unter /local* sortiert in bin-audio; bin-global; bin-video.

    Hoffe dass es fehlerfrei ist :). Damit alles richtig läuft ist es am einfachsten das Script von null weg zu starten.

    Ich habe auch mal versucht einen Uninstaller für Libs zu bauen, aber leider geht das nicht vernünftig. Es werden oft keine oder nicht alle uninstall Informationen in den Libs zur Verfügung gestellt und das macht es dann kaum möglich hier was gescheites hinzu bekommen.

  • Ich habe auch mal versucht einen Uninstaller für Libs zu bauen, aber leider geht das nicht vernünftig. Es werden oft keine oder nicht alle uninstall Informationen in den Libs zur Verfügung gestellt und das macht es dann kaum möglich hier was gescheites hinzu bekommen.

    Naja, du könntest das mit Checkinstall oder so tracken - gibt's das bei MinGW?
    Ansonsten mach es intelligent mit STOW, das dürfte auch unter MinGW und Cygwin installiert. So halte ich meine Selbstbau-Systeme sauber.

Jetzt mitmachen!

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