Welche Programmiersprache für Videotools

  • Ich weiß, dass solche Fragen schon öfters gestellt wurden, aber das was mich dabei nun direkt beschäftigt habe ich noch nicht beantwortet gefunden.

    Ich verfüge über das Basiswissen für C und C++ (C++ bis jetzt sehr selten verwendet). Im Moment beschäftige ich mich auch ein bisschen mit Fortran und Assembler (erst beim einlesen).
    Viele empfehlen ja auch Delphi.

    Ganz besonders wichtig ist mir bei der Programmiersprache, dass sie sehr gut optimierbar und nicht allzu umfangreich ist. Ich möchte so gut wie möglich nachvollziehen können, was ich jetzt für einen Code erstellt habe. Das heißt also möglichst wenig Basisfunktionen. Wenn ich eine Funktion aufrufe interressiert mich mehr was die Funktion im einzelnden für Abläufe durchgeht und nicht was rauskommt. Bin also ein recht untypischer Programmierer.

    Nun aber zu meinen Fragen:
    Welche Sprache lässt sich im Videobereich gut anwenden, unter den Kriterien Geschwindigkeit, Optimierbarkeit, verständlicher Code ohne viele externe Funktionen.

    Gibt es irgendwelche empfehlenswerte Literatur (irgendwelche Seiten etc.), die die Videoprogrammierung sehr ausführlich erklären?
    (Im Moment eigne ich mir das Wissen darüber durch OpenSource Codes über Farbkonvertierungen usw. an, das ist aber oftmals nicht so einfach und schnell, ordentliche Erklärungen wären wahrscheinlich deutlich hilfreicher.)

    Ich freue mich über jede Empfehlung.

  • Ich gehe davon aus, dass du von Codecs redest. Da würde ich dir raten bei C + Assembler zu bleiben, da aus Geschwindigkeitsgründen wohl die meisten Codecs in diesen Sprachen geschrieben sind (und du dir wahrscheinlich von bereits bestehenden Codecs Wissen aneignen willst).

    Viele GUIs sind in Delphi geschrieben.

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Hört sich so an, als ob C für dich das richtige wäre.

    Videoprogrammierung ist ein weites Feld. Was denn genau?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Es geht um allgemeine Filter aber auch Codecs usw.
    C gefällt mir ziemlich gut , besser als C++, da ich die Vererbung usw. nicht wirklich als nützlichen Vorteil ansehe.
    Ich wollte einfach nur sicher gehen, dass C auch wirklich die richtige Sprache ist, bevor ich mich noch mehr darauf spezialisiere und später feststellen muss, dass vielleicht doch eine andere Sprache besser gewesen wäre.

    Wäre trotzdem schön, wenn irgendjemand für mich Quellen und Literaturhinweise hätte, die sich genauer auf dieses Thema Codec... beziehen.

  • Es gibt ein Buch von Iain G. Richardson "Video Codec Design", in dem grundlegende Dinge erklärt sind:
    http://eu.wiley.com/WileyCDA/Wiley…0471485535.html

    Ansonsten lohnt es sich Quellcode zu lesen.

    Und Dirac hat eine recht umfangreiche Dokumentation, in der einige Dinge erklärt sind.

    http://dirac.sourceforge.net/

    Für avisynth/VirtualDub Filter sind die entsprechenden SDKs zu empfehlen.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Speziell AviSynth ist in C / C++ programmiert, und da gibt es hinsichtlich einiger Schnittstellen durchaus Schwierigkeiten mit Delphi - nämlich an solchen Stellen, an denen eine beliebige Anzahl von Parametern an eine Funktion übergeben werden soll (so etwas ist derart "typisch C++", dass Delphi es eigentlich nur per Assembler imitieren könnte).

  • LigH
    Gut, dass ich das vorher weiß. Assembler komme ich nämlich nur sehr langsam voran und mit C lässt sich sowas ja problemlos realisieren.

    Wie steht es eigentlich um Fortran. Habe ich schon mal für mathematische Probleme genutzt. Ist zwar schon etwas älter, aber scheint noch sehr brauchbar. Von der Performance her wurde sie mir auch schon mal ans Herz gelegt.

  • Wirklich?? Das würde ja heißen, ja das kann so gar gut sein, dass alle Sprachelemente von Fortran auch in C existieren. Aber wie sieht es mit der Geschwindigkeit aus. Ist C schneller als Fortran oder andersrum (ich habe mich schon für C entschieden, frage aber nochmal rein interessehalber).

  • Aber die Qualität solcher Konverter mag ich mal bezweifeln.

    Ich denke, dass Fortran und C sich nicht viel schenken. Beide sind in ihren Datentypen sehr low-level und die Compiler entsprechend optimiert.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Zitat von MOmonster

    Aber wie sieht es mit der Geschwindigkeit aus. Ist C schneller als Fortran oder andersrum (ich habe mich schon für C entschieden, frage aber nochmal rein interessehalber).

    Selbst innerhalb von C Compilings die dem exakt gleichen Sourcecode entstammen gibts Geschw.unterschiede. Es kommt auf den Compiler an, wie gut er den Code parsed und umsetzt. Sehr gute Compiler gehen den Code zudem insofern durch, dass unnötig komplex geschriebene Abläufe (wie manche Schleifen etc.) in weniger komplexe umgesetzt werden.
    Weiss jetzt nicht, wer nun fixer und besser ist, GCC, M$VC, Borland etc.

    Wenn du nasm zudem nutzen möchtest, meine ich gelesen zu haben, dass VisualStudioStandard und Express dies nicht unterstützen, erst die Versionen darüber, ... just imho.

  • Bin mir ziemlich sicher, dass SansGrip den c++ Filter GripFit mit DevC++ programmiert hat. Wenns mit der Einbindung des avisynth.h Headers klappt, müsste es gehen.

    Ansonsten kannst du auch ohne Probleme mit LCC, GCC (DevC(++)) oder PellesC einen AvisynthC-Filter programmieren. Dazu brauchst du lediglich den avisynth_c.h header und link'st mit der avisynth_c.lib.
    http://kevin.atkinson.dhs.org/avisynth_c/

    Dieses Avisynth_c Interface von Kevin Atkinson ist Compiler-Neutral.

  • Zitat


    Bin mir ziemlich sicher, dass SansGrip den c++ Filter GripFit mit DevC++ programmiert hat. Wenns mit der Einbindung des avisynth.h Headers klappt, müsste es gehen.

    Nein, funktioniert nicht. avisynth nutzt irgendwie die Art und weise aus, mit der der VC++ Compiler die Klassen im Speicher ablegt. Und die unterscheidet sich von der des GCC.

    Man kann aber wie gesagt das avisynth_c Interface nutzen, um mit anderen Compilern C/C++ Filter zu erzeugen. Oder man wartet auf avs3.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

Jetzt mitmachen!

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