roki100
Beiträge: 15002

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von roki100 »

@prime
ich bezog mich auf bash/sh/zsh Teil von cantsin und zwar nur das:
"Ich bin selbst ein Shell-Nerd (zsh rules!), aber komplexere Dinge würde ich darin niemals schreiben....vor allem, wegen der Abhängigkeiten und Inkompatiblitäten zur jeweiligen Shell und Unix-kompatiblen Tools (wo z.B. die Syntax des find-Kommandos zwischen den BSD-Tools in MacOS und den GNU-Tools in Linux und Cygwin signifkant voneinander abweicht und Skripte daher nicht übergreifend kompatibel sind, und sich die Syntax bestehender Skripte zerschiesst, sobald eins der verwendeten Tools seine Kommandosyntax ändert. "
...Zugriff auf eine Riesensammlung an zusätzlichen Bibliotheken (Python-Module)....
Die Riesensammlung z.B. für bash, wäre all das, was auch Du als Unix-Werkzeuge bereits genannt hast...

Aber gut, ich habe ja nichts gegen wenn jemand Python empfiehlt. Es ging nur darum, dass einige Sachen viel einfacher zu lösen sind... deswegen das Beispiel mit Einzeiler.
"Deine Zeit ist begrenzt. Verschwende sie nicht damit, das Leben eines Anderen zu leben"
(Steve Jobs)



mash_gh4
Beiträge: 4716

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von mash_gh4 »

roki100 hat geschrieben: Sa 02 Mai, 2020 14:06 Die Riesensammlung z.B. für bash, wäre all das, was auch Du als Unix-Werkzeuge bereits genannt hast...
die stehen dir ja auch in fast jeder anderen programmiersprache immer noch zur verfügung, wo es sinn macht.

ich hab zum beipiel die letzten paar wochen wieder damit zugebracht ein tool zu basteln, um die DASH/HLS aufbereitung von video files und befriedigenderes ein bisserl praktischer abzuwickeln und ein paar wichtige features (SRT-upstreams, VP9 und AV1 support, r128-loudness korrektur) einzubeziehen, die mir in diesem zusammenhang in den meisten bekannten lösungen fehlen.

letztlich ist das ganze in diesem fall aber tatsächlich nur ein ziemlich aufwendiger wrapper um das ffmpeg command line tool geblieben. das hat damit zu tun, dass einerseits jene libraries auf denen ffmpeg basiert, derart problematisch zu benutzen sind bzw. so unglaublich schlecht dokumentiert sind, dass es wirklich keinen spass macht, sich damit herumzuärgern, und anderseits gstreramer, dass zwar ohnehin den größten teil der ffmpeg funktionalität in deutlich schöner handhabbarer weise bereitstellt, genau in jenen punkten, die in meinem fall besonders wichtig waren (CMAF support und dash-sink), leider augenblicklich noch immer bekannte schwächen aufweist, wo ich sehr viel zeit darauf verwenden hätte müssen, komplizierten low-level code zu debuggen, bevor das tatsächlich brauchbar funktioniert hätte.

stellt sich also die frage, ob ich das nicht tatsächlich auch einfach mit bash-scripts od. python abwickeln hätte können, so wie du das empfiehlst?

in genau dieser weise hab ich das die letzten jahre über ohnehin ständig für denen eigenen hausgebrauch gemacht. zuerst mit ganz einfachen shell-scripts, die halt nur die einfachsten abläufe bzw. kommandoaufrufsequenzen quasi als batch job festgehalten und einfacher wiederholbar machen, und später dann mit immer weiter ausufernden python scripts, die das ganze bereits deutlich schöner und nachvollziehbarer zu lösen versuchten. aber auch diese scripts, von denen sich im laufe der zeit umengen angesammelt haben, waren irgendwann keine lösung mehr. obwohl sie natürlich den vorzug haben, dass man sie sehr schnell abändern und korrigieren kann, ist es ab einer gewissen größe einfach nicht mehr möglich, die enthaltenen anweisungen auf den ersten blick zu erfassen, nachzuvollziehen und ggf. zu korrigieren, statt dessen schleichen sich immer mehr probleme ein, die erst bei der ausführung als runtime-error in erscheinung treten.

so hab ich also eine ganze menge an zeit darauf verschwendet, einiges von den erfahrungen, die sich im laufe der zeit rund um diese aufgabe bei mir angesammelt haben, zu einem neuen werkzeug zu verdichten. das ist zwar momentan wirklich nur ein ganz primitiver wrapper um das ffmpeg CLI-tool [wobei ich insgeheim schon hoffe, dass ich irgendwann zeit finde, das ganze mit gstreamer noch ein bisserl sauberer umzusetzten, was natürlich intern schon jetzt vorgesehen ist], aber in der umsetztung benutzt es doch möglichkeiten, die mit shell-scripts od. auch python kaum befriedigend einzulösen wären.

die nötige konfiguration für die DASH/HLS ausgabe wird bspw. mittels serde aus einer YAML od. Json konfigurationsdatei eingelesen und in eine streng typisierte interne repräsentation des setups übersetzt. das hat unter anderem den vorzug, dass man aus der definition der betreffenden datenstruktur im code auch gleich völlig automatisiert ein json-schema ableiten und exportieren kann, an hand dessen man im editor beim eintippen der konfigurationsangaben dann syntax-highliting, eingabevorschläge und dokumentation der eingabefeolder eingeblendet bekommt. man kann damit aber auch eine automatische validierung von konfigurationsanweisungen beim einsatz des tools auf serverless platformen wie OpenFaaS umsetzen, oder webformulare für benutzerinterface automatisch daraus generieren usw.

letztendlich wird in der gegenwärtiger form daraus dann aber trotzdem nur ein ganz simpler ffmpeg-aufruf generiert, der allerdings in der praxis meist in einem normalen terminal-fenster keinen platz mehr findet und gespickt ist, mit lauter kleinen feinheiten und notwendigen zaubertricks, über die jeder von uns lange rätseln muss, wenn er derartiges selber hinzubekommen versucht (ganz konkret müssen ja die unzähligen konvertierungen in diesem fall alle mit "-map" anweisungen voneinader getrennt werden und jede transcoding- und filter-option mit expliziten stream-angaben versehen werden etc.).

wie gesagt, prinzipiell geht so etwas schon auch mit shell-scripts, aber ich hab im laufe der zeit irgendwann einfach gelernt, warum man es in der praxis doch besser mit anderer mitteln abwickelt, wenn etwas einigermaßen zufriedenstellendes dabei herauskommen soll.



roki100
Beiträge: 15002

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von roki100 »

mash_gh4 hat geschrieben: Sa 02 Mai, 2020 15:11
roki100 hat geschrieben: Sa 02 Mai, 2020 14:06 Die Riesensammlung z.B. für bash, wäre all das, was auch Du als Unix-Werkzeuge bereits genannt hast...
die stehen dir ja auch in fast jeder anderen programmiersprache immer noch zur verfügung, wo es sinn macht.
So ist es.
Ich kann nur aus meiner Erfahrung sprechen: Natürlich macht das nur für Leute Sinn, wenn sie mit Unix (BSD/Linux) Systeme zu tun haben und egal ob Python oder Perl, wird man mit (z.B. bei Python) os-Modul/os.system() öfter gebrauchen... und das bedeutet nicht nur: weniger Aufwand...
Mit der Zeit erkennt man, warum es mehr Sinn macht, das eine mit dem andere kommunizieren zu lassen...
"Deine Zeit ist begrenzt. Verschwende sie nicht damit, das Leben eines Anderen zu leben"
(Steve Jobs)
Zuletzt geändert von roki100 am Sa 02 Mai, 2020 21:28, insgesamt 1-mal geändert.



mash_gh4
Beiträge: 4716

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von mash_gh4 »

roki100 hat geschrieben: Sa 02 Mai, 2020 21:07 ...(egal ob in Python oder Perl) wird man mit (z.B. bei Python) os-Modul/os.system() öfter zu tun haben...
nein! -- das ist eines der ersten dinge, die man man unbedingt lernen bzw. berherzigen sollte, dass man in solchen fällen möglichst nicht 'os.system()' bzw. eine ausführung über eine sub-shell, sondern unbedingt die befehle im 'subprocess' modul an dessen stelle nutzen sollte, weil die verwendung von ersterem ganz ungute seiteneffekte und sicherheitsprobleme nach sich zieht und auch ineffizienter ist!

steht aber ohnehin in der betreffenden dokumentation und jedem besseren tutorial od. python lehrbuch.



roki100
Beiträge: 15002

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von roki100 »

mash_gh4 hat geschrieben: Sa 02 Mai, 2020 21:28
roki100 hat geschrieben: Sa 02 Mai, 2020 21:07 ...(egal ob in Python oder Perl) wird man mit (z.B. bei Python) os-Modul/os.system() öfter zu tun haben...
nein! -- das ist eines der ersten dinge die man man unbedingt lernen sollte, dass man in solchen fällen möglichst nicht 'os.system()', sondern unbedingt die befehle im 'subprocess' modul an dessen stelle nutzen sollte, weil die verwendung von ersterem ganz ungute seiteneffekte und sicherheitsprobleme nach sich zieht!

steht aber ohnehin in der betreffenden dokumentation und jedem besseren tutorial od. python lehrbuch.
Ja das ist klar! Gilt aber für mich nur dann, wenn es z.B. um WebBasierte Programmierung geht... Das os-Modul ist ja nicht Sinnlos / oder als Sicherheitslücke was man vermeiden sollte, auch für Python vorhanden. ;)
"Deine Zeit ist begrenzt. Verschwende sie nicht damit, das Leben eines Anderen zu leben"
(Steve Jobs)



mash_gh4
Beiträge: 4716

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von mash_gh4 »

roki100 hat geschrieben: Sa 02 Mai, 2020 21:32 Ja das ist klar! Gilt aber für mich nur dann, wenn es um WebBasierte Programmierung geht. Das os-Modul ist ja nicht Sinnlos / oder als Sicherheitslücke was man vermeiden sollte, auch für Python vorhanden. ;)
in C gibt's auch einen 'goto' befehl, und trotzdem ist das in 99.9% der fälle nicht unbedingt die empfehleswerteste lösung, wie man sauber in dieser sprache programmieren sollte.

aber ich glaub, wenn wir in dem stil hier weiter diskutieren, haben wir spätestens in zwei tagen wenigstens die allergrößten anfängerfehler alle durch und der thread hier hat wirklich seinen sinn erfüllt.



roki100
Beiträge: 15002

Re: Coden für Filmer - welche Sprachen, welche Anwendungen?

Beitrag von roki100 »

Ein Anfänger wird sowieso jede menge Fehler machen...Alles Menschlich, aus Fehlern zu lernen.
Mit der Zeit wird der Anfänger leider auch erkennen, wie unfreundlich die "Programmier-Kultur" (vor allem hier zu lande) ist, und wie da kommuniziert wird (natürlich nicht alle, aber viele...) ;) Hat er leider jetzt schon teilweise, NUR weil einer etwas empfohlen hat, was dem anderem nicht schmeckt... ;)

Nochmal für Drushba (denn es geht nur um Drushba hier, nicht darum, was der eine bevorzugt und der andere nicht): Egal mit was Du beginnst, wenn Du das eine kannst, dann ist es leicht etwas neues zu erlernen.... Es ist unterschiedlich, was einer als "logischer" für sich selbst kapiert. Der eine mag auch keine Äpfel, dafür aber Bananen... ;)
"Deine Zeit ist begrenzt. Verschwende sie nicht damit, das Leben eines Anderen zu leben"
(Steve Jobs)



 Aktuelle Beiträge [alle Foren]
 
» Warnung vor LED-Leuchten mit internem Akku
von MK - Di 10:09
» Dji Osmo Action 4 Native Iso
von -paleface- - Di 9:24
» Wie Dune Teil 2 entstand - DoP Greig Fraser und Hans Zimmer im Interview
von markusG - Di 9:23
» After Effects CS6 Green Screen Frage
von -paleface- - Di 8:32
» IDEENFINDUNG: Wie man spannende Filme entwickelt! mit Vi-Dan Tran (Actiondesigner DUNE)
von 7River - Di 7:44
» Was schaust Du gerade?
von Frank Glencairn - Di 7:30
» ZRAW - Allgemeines und Umwandlung
von roki100 - Mo 22:49
» Apple setzt auf lokale KIs in iPhone, iPad und Mac
von Jost - Mo 20:48
» Sony Alpha 9 III Sensor Test: Shutter, Debayering und Dynamik
von iasi - Mo 20:35
» Panasonic AG AC 90 Zubehörschuh
von martin2 - Mo 16:53
» Zu verkaufen Viltrox 56mm 1.4 Viltrox 85mm 1.8 MKII Fuji X mount
von Jörg - Mo 14:27
» Musk macht GROK zu Open Scource
von SamSuffy - Mo 13:09
» The Next Big Thing? LED-Riesenkugel Sphere will Massen-Immersion neu definieren
von Alex - Mo 13:08
» Mocha Pro 2024 integriert 3D-Tracking von SynthEyes
von slashCAM - Mo 13:00
» Was hast Du zuletzt gekauft?
von Funless - Mo 12:54
» Software Tools für Productivity
von Frank Glencairn - Mo 12:51
» welches mikro für live-konzerte?
von Skeptiker - Mo 11:11
» Mikrohalterung Sony FS5 und Z150
von nicecam - Mo 11:05
» Apple Vision Pro: Verkaufsstart (USA) ab Februar für 3.499,- Dollar + neuer Werbeclip
von Frank Glencairn - Mo 9:18
» Drohne bauen, die nicht zu orten ist …?
von Jalue - So 22:02
» Werbung - es geht auch gut ;) Sammelthread
von 7River - So 17:07
» Monitor-Leuchte als Alternative zur Tischlampe ? - Quntis ScreenLinear Pro
von Jack43 - So 16:14
» Oppenheimer - inhaltlich und spirituell
von Frank Glencairn - So 15:43
» - Erfahrungsbericht - DJI Pocket 3
von klusterdegenerierung - So 13:20
» LG investiert 1 Milliarde Dollar in OLED-Produktion
von slashCAM - So 11:36
» 30-300mm T4 Cinezoom von Viltrox
von rush - So 8:03
» Revolutionäre Video-KI Sora soll noch dieses Jahr kommen
von Alex - So 7:49
» Wenn nennt man die Musik?
von Alex - So 7:29
» 7Artisans Sprite 24-96mm T2.9 - 4x Cinezoom für S35
von roki100 - Sa 22:57
» Was hörst Du gerade?
von klusterdegenerierung - Sa 20:42
» Biete: Manfrotto MH057M0-Q5 Kugelkopf
von beiti - Sa 18:17
» Suche LUT names Acuity
von jojo1243 - Sa 17:40
» Plant Nikon eine REDCODE RAW-Offensive zur NAB 2024?
von iasi - Sa 14:57
» The Crow — Rupert Sanders
von Gol - Sa 12:09
» Lohnt Kauf Canon HV40
von Bruno Peter - Sa 12:00