FlatheadV8 / Film2MP4

Filme in ein HTML5-kompatibles MP4-Format umrechnen, welches von den meisten aktuellen Internet-Browsern inline abgespielt werden können. Wie zum Beispiel mit dem FireFox ab Version 35. Zusätzlich ist es auch möglich im selben "Arbeitsgang" noch Werbung und die schwarzen Balken an den Seiten zu entfernen sowie das Seitenverhältnis zu ändern und die Auflösung auf einen gewünschten Wert zu setzen.
Mozilla Public License 2.0
2 stars 1 forks source link

variable IN_BITRATE und IN_BIT_EINH leer #3

Open emphazer opened 5 years ago

emphazer commented 5 years ago

@FlatheadV8 kann es sein das versehentlich der unset befehl an der falschen stelle gelandet ist?

https://github.com/FlatheadV8/Film2MP4/blob/11179c5e8651265a439d871ee4308c0770f83225/Film2MP4.sh#L537-L556

im log file werden die beiden werte grundsätzlich leer sein. kann es sein das der unset hinter der generierung der logfile kommen sollte?

ich hoffe das ist in ordnung wenn ich hier und da meinen senf dazu gebe. aber wie gesagt ich finde dein projekt für sehr qualitativ und würde gerne etwas helfen so weit es in meiner macht steht. ;-)

FlatheadV8 commented 5 years ago

Ich werde es mir anschauen, hab die Änderungen nicht getestet... :-( Aber bei einem rekursiven GREP habe ich dazu keine "unset" auf diese Variablen gefunden...?

$ fgrep QUALIT test1mp4.txt BILDQUALIT='1' TONQUALIT='1' 1 BILDQUALIT='1' AUDIOQUALITAET=-b:a 80k VIDEOQUALITAET=-profile:v high -preset veryslow -tune film -x264opts ref=4:b-pyramid=strict:bluray-compat=1:weightp=0:vbv-maxrate=12500:vbv-bufsize=12500:level=3:slices=4:b-adapt=2:direct=auto:colorprim=smpte170m:transfer=smpte170m:colormatrix=smpte170m:keyint=50:aud:subme=9:nal-hrd=vbr -movflags faststart -crf 28

$ fgrep QUALIT test.mp4.txt BILDQUALIT='auto' TONQUALIT='auto' 1 BILDQUALIT='auto' 2 BILDQUALIT='7' AUDIOQUALITAET=-b:a 160k VIDEOQUALITAET=-profile:v high -preset veryslow -tune film -x264opts ref=4:b-pyramid=strict:bluray-compat=1:weightp=0:vbv-maxrate=12500:vbv-bufsize=12500:level=3:slices=4:b-adapt=2:direct=auto:colorprim=smpte170m:transfer=smpte170m:colormatrix=smpte170m:keyint=50:aud:subme=9:nal-hrd=vbr -movflags faststart -crf 18

Also bei mir ist die Variable immer gefüllt, mit und ohne q-Parameter... Aber ich habe es auch nur unter FreeBSD 12 ausprobiert, den Ubuntu-Rechner kann ich gerade nicht nutzen. Welche Kommandozeile verwendest Du genau?

Ja, gerne kannst Du Dich dazu Äußern! Endlich interessiert sich mal jemand dafür, mit dem man sich auf Augenhöhe unterhalten kann. Alle anderen Interessenten waren nur reine Nutzer und haben vom skripten keine Ahnung. Mit Dir kann man wenigstens diskutieren und Meinungen austauschen und ggf. auch revidieren bzw. vielleicht auch etwas lernen... :-) Das ist bedeutend spannender und nicht so langweilig. Außerdem schmeichelt es mir, wenn sich jemand auch für das Innenleben meiner Arbeit interessiert. ;-)

emphazer commented 5 years ago
cat stars-guardian.mp4.txt 
# 2019-03-28 17:16:04
Film2MP4.sh -q stars-guardian.of.the.spirit.e01.1080p.sample.mkv -z stars-guardian.of.the.spirit.e01.1080p.sample.mp4

IN_XY='1920x1080'
IN_BREIT='1920'
IN_HOCH='1080'
IN_PAR='1:1'
IN_DAR='16:9'
IN_FPS='23.98'
IN_FPS_RUND='24'
IN_BITRATE=''
IN_BIT_RATE='4877'
IN_BIT_EINH=''
BILDQUALIT='auto'
TONQUALIT='auto'

wenn ich die beiden unsets auskommentiere oder sie hinter das echo packe dann wird alles korrekt dargestellt


cat stars-guardian.mp4.txt
# 2019-03-28 17:19:59
Film2MP4.sh -q stars-guardian.of.the.spirit.e01.1080p.sample.mkv -z stars-guardian.of.the.spirit.e01.1080p.sample.mp4

IN_XY='1920x1080'
IN_BREIT='1920'
IN_HOCH='1080'
IN_PAR='1:1'
IN_DAR='16:9'
IN_FPS='23.98'
IN_FPS_RUND='24'
IN_BITRATE='4877 kb/s'
IN_BIT_RATE='4877'
IN_BIT_EINH='kb/s'
BILDQUALIT='auto'
TONQUALIT='auto'
emphazer commented 5 years ago

das fasse ich als Kompliment auf. danke :-)

es ist nicht einfach Leute zu finden wo einerseits das fachliche stimmt und andererseits auch der Umgang/Workflow.

gerade bei den bereichen wo es sehr speziell und fachlich wird findet man oft Leute mit denen keine Team arbeit möglich ist. entweder totale Eigenbrötler oder fühlen sich bei jedem Verbesserungsvorschlag direkt angegriffen.

das Zwischenmenschliche muss halt auch stimmen sonst kann man nicht voneinander partizipieren bzw sich gegenseitig ergänzen.

wenn es wirklich drauf an kommt dann steht man laut meiner Erfahrung ziemlich schnell alleine da. entweder fehlt bei den leuten dann der Mut, das knowhow oder sie praktizieren die Einstellung Team="Toll ein anderer machts".

und dann darf ich wieder den Feuerwehrmann spielen. klingt deprimierend, ist es aber nicht. manchmal nervt es zwar aber dafür hat man jeden mal ein Erfolgserlebnis wenn man es mal wieder geschafft hat den karren aus dem dreck zu ziehen.

Man lernt definitiv nie bei Linux aus. ;-)

emphazer commented 5 years ago

diese funktion hier ist evtl auch was fuer dich.

https://github.com/dylanaraps/pure-bash-bible/blob/master/README.md#trim-all-white-space-from-string-and-truncate-spaces

bin heute auf diese bash bible gestossen. voll toll. all meine funktionen sind 10x laenger um solche sachen wie urldecoding etc etc zu machen... und die nutzen nur simple buildin

sorry, ich weiss... das hat nichts mehr mit dem issue zu tun

FlatheadV8 commented 5 years ago

Ja, das stimmt. Die meisten fühlen sich immer gleich angegriffen und tun so als hätten sie die Weißheit mit Löffel gefressen. Ursächlich liegt es aber daran, dass sie nix mehr dazulernen wollen...

Diese Funktionen sind auch ganz cool. Aber alles muss man nicht wissen. Ich arbeite auch sehr gerne mit awk, sed, tr, sort, grep und Co. - hast Du ja am Skript gesehen... :-) Im Jahr 2001 wollte ich Pearl lernen, weil fast alle meiner Kollegen es beherschten - damals hatte ich gerade im RZ in Frankfurt angefangen. Aber im RZ hat man immer auf Kunden-Systemen zu tun, auf denen man nicht mal eben seine benötigten Werkzeuge installieren kann, wie z.B. Pearl- oder Python-Module... Wenn man sich aber auf soeinen Interpreter einschießt, dann ist man darauf angewiesen, dass immer die bentigten Module vorhanden sind - was selten der Fall ist! Also habe ich damals entschieden, dass ich vorerst nur SHELL (/bin/sh + System-Werkzeuge) mache, denn solche Skripte funktionieren oft ohne Anpassungen auf Solaris, BSD, AIX und Linux - frei nach dem Motto "wenig lernen und viel damit anstellen". :-) 5 Jahre lang habe ich mich jeden Tag (teilweise mich 3 Uhr nachts) in die Geschichte reingekniet, seit dem kann ich mit Fug und Recht behaupten, dass ich praktisch alle meine Vorstellungen in SHELL-Kode gießen kann. :-) Seit 2003 bin ich auf der Suche nach einer Compiler-Sprache, um die Lücke zu schließen. Erst 2011 habe ich sie in "Go" (golang von Google) gefunden. Das ist eine Sprache, die von Sysadmins für Sysadmins erfunden wurde - einfach genial! Sie ist sehr C-ähnlich, sehr mächtig und hat einen relativ kleine Wortschatz, auch wurde bei der Entwicklung versucht doppelte Lösungswege zu vermeiden, so dass der Code auch von fremden schnell verstanden werden kann. Aber leider habe ich mir noch nicht die Zeit nehmen können um mich dort richtig reinzuknieen...

emphazer commented 5 years ago

hast schon recht. man muss nicht alles wissen. ich arbeite sehr gerne mit awk und sed. versuche möglichst wenig pipes zu verwenden. manchmal halt knobelsache ;-)

mir liegen Programmiersprachen leider gar nicht. ich bin dafür einfach nicht geschaffen. aber Skripten und Automatismen bauen das liegt mir.

habe von 2007 bis 2011 vmware esx, winsows server mit AD, exchange etc etc gemacht. das komplette Programm. daher weiß ich wie sich abgründe in der IT anfühlen. bei Windows Domänen Administration tun sich da sehr viele von auf. macht wirklich kein spass weil da manchmal dinge passieren die einfach nicht logisch sind.

seit 2012 habe ich mir Hardcore bash und Linux angelernt. seit dem nichts mehr anderes. diese 3uhr nachts Sessions mit der bash kenne ich! da ist man manchmal am kreativsten.

arbeite stetig seit 6 Jahren an einem skript mit ca 30.000 zeilen, welches auf redhat EL6-8 zugeschnitten ist. das skript wird von einem 13 köpfigen team genutzt stolz sei. hier geht es um grund haertung eines servers (SELinux, Firewall, WAF) aber auch um taegliche arbeiten die zu erledigen sind wie Werbeauftritte mit Apache, php-fpm, tomcat, sftp, mariadb usw einzurichten.

das erspart uns sehr viel zeit und außerdem standardisiert es die Struktur und den aufbau.

FlatheadV8 commented 5 years ago

30000 Zeilen? Rspekt! Ich habe bisher mind. 3 ähnliche Sachen gemacht, die aber jeweils unter 1000 Zeilen lagen:

  1. (2007: ca. 500 Zeilen auf Fedora), ein Autostart-Skript, welches per PXE-Boot automatisch die Hardware analysiert und dann die dafür richtige Installation + anschl. Konfiguration vornimmt
  2. (2009 für Fedora), gleiche Sache wie 2007, nur in einem Chluster mit 30 Systemen - hier Identifikation mit MAC; das System war 5 Jahre fehlerfrei und wartungsfrei im täglichen Einsatz
  3. (1015 für Ubuntu), einen Loadbalancer, weil der bis dahin genutzte LdirectorD für einen Schaltvorgang (bei der hohen Verbindungsanzahl) ca. 44-50 Minuten brauchte - jetzt liegt der Schaltvorgang bei weit unter 3 Minuten und muss fast doppelte Verbindungszahl beweltigen - auch hier musste bis heute kein Fehler behoben werden, das ist immer noch im Einsatz und unsere Boni hängen dran -> 99,9% Verfügbarkeit!

Alle Projekte in reinem SHELL :-) Der LB sogar mit einstellbar vielen (orientiert sich in der derzeitigen Einstellung an der vorhandenen CPU-Kern-Anzahl) Parallel-Prozessen :-) Ich muss aber auch sagen, dass meiner Meinung nach mein "Filmwandler" komplizierter ist als der LB...

emphazer commented 5 years ago

wow, ich glaube wir scheinen uns da gar nicht unähnlich zu sein. du bist bestimmt auch ein Allrounder wenn es dich interessiert.

mit PXE und tftp kann man sehr interessante Sachen machen. hatte mal auto Installationen etc für windows/linux oder booten von iso files über ein bootmenu bei system start gemacht.

Loadbalancer sind ein sehr interessantes Thema, handelte es sich um einen reinen TCP LB oder auf Layer 7?

FlatheadV8 commented 5 years ago

Ja, da hast Du Recht. Wenn mich etwas nicht loslässt, dann beiß ich mich da durch :-)

Beim LB habe ich es mir relativ einfach gemacht. Ausgangsbasis war der "ldirectorD" (http://horms.net/projects/ldirectord/), der besteht aus einem haufen Perl-Skripte und den Tool "ipvsadm". Mit ipvsadm werden die IP geladen, entladen, die Routen und so weiter gemanget. Die Perl-Skripte übernehmen die Überwachung und bearbeiten die Kernel-Tabellen mit ipvsadm. Ich habe die Perl-Skripte mit meinem Shell-Skript komplett ersetzt und habe aber trotzdem ipvsadm weiterhin benutzt, auch die Konfig-Datei von ldirectord habe ich weiterverwendet. :-)