Wie Avidemux installieren nach kompilieren

Started by olli14, January 04, 2022, 07:20:12 AM

Previous topic - Next topic

olli14

Ich habe Avidemux 2.8.0 selbst kompiliert. Nun habe ich einen Ordner Avidemux2.
Wenn ich Avidemux OHNE Installation ausführen will, soll ich (laut Internet) die "run_avidemux_template.sh" kopieren, umbenennen z.B. in "avidemux", die Datei "avidemux" ausführbar machen und sie z.B. in "usr/local/sbin" verschieben und sie dann über das Terminal ausführen.
Es macht aber bestimmt mehr Sinn, "avidemux" zu installieren, oder? Aber wie installiere ich das neu kompilierte "avidemux"?
Außerdem möchte ich auf dem Homescreen eine Verknüpfung zu "Avidemux" haben (um bei Doppelklick auf diese Verknüpfung Avidemux zu starten) und auch im Startmenü einen Menüpunkt "Avidemux" haben. Wie geht das?

Mein Betriebssystem ist Linux Mint 20.

eumagga0x2a

Quote from: olli14 on January 04, 2022, 07:20:12 AMsie z.B. in "usr/local/sbin"

Das bloß nicht, "usr/local/sbin" (relativer Pfad!) existiert wahrscheinlich gar nicht, "/usr/local/sbin" dient für unter Umgehung der Paketverwaltung installierte System-Tools (daher "sbin" statt "bin"). Etliche Distributionen fügen /usr/sbin und /usr/local/sbin erst gar nicht der Variablen $PATH für normale Benutzer hinzu.

Um nur für diesen Benutzer zugängliche ausführbare Dateien abzulegen, wird oft der Ordner ~/bin oder ~/.local/bin benutzt zusammen mit einem Eintrag ähnlich

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

in ~/.bash_profile.

Quote from: olli14 on January 04, 2022, 07:20:12 AMEs macht aber bestimmt mehr Sinn, "avidemux" zu installieren, oder?

Wenn es mehrere Benutzer auf dem System gibt, die alle Avidemux ausführen können, dann ja. Sonst würde ich die Frage verneinen.

Quote from: olli14 on January 04, 2022, 07:20:12 AMAber wie installiere ich das neu kompilierte "avidemux"?

Zuallerest dafür sorgen, dass bootStrap.bash mit der Option --prefix=/usr/local ausgeführt wurde, um nichts in die von der Paketverwaltung betreuten Orte in /usr (alles außer "local") zu schreiben. Dann reicht es, den Ordner "local" in avidemux2/install/usr/ als root oder über sudo über den Ordner /usr/local zu schreiben (vorher bitte den Symlink avidemux2/install/usr/local/lib löschen!). Um Fehler im Befehl nicht zu riskieren, würde ich bootStrap.bash die Option --deb mitgeben, damit Debian-Pakete erstellt werden, die dann in einem Rutsch installiert werden sollten.

Quote from: olli14 on January 04, 2022, 07:20:12 AMAußerdem möchte ich auf dem Homescreen eine Verknüpfung zu "Avidemux" haben (um bei Doppelklick auf diese Verknüpfung Avidemux zu starten) und auch im Startmenü einen Menüpunkt "Avidemux" haben. Wie geht das?

Wenn Avidemux über Debian-Pakete installiert wird, sollte ein Anwendungsstarter vorhanden sein, den man mit den für die jeweilige Desktopumgebung spezifischen Mitteln griffbereit auf dem Desktop oder in einem Äquivalent von Dock oder Startmenü verankern könnte.

Ansonsten gibt es in avidemux2/install/usr/local/share/applications einen Starter, den man an einen der typischen Orte kopieren sollte (zum Beispiel nach ~/.local/share/applications/, das Icon ginge dann nach ~/.local/share/icons/hicolor/128x128/apps/). Eventuell sollte dabei auch der Name der ausführbaren Datei geändert werden, falls Avidemux über einen Wrapper ähnlich "run_avidemux_template.sh" gestartet wird.

Wenn der Rechner einen Intel-Prozessor hat und fähig ist Video mittels VA-API-Schnittstelle zu kodieren, empfehle ich dringend, vor dem Kompilieren den Patch aus diesem Thread anzuwenden.

olli14

Ich habe nun bootstrap.bash mit der Option --prefix=usr/local ausgeführt.

Ich verstehe aber nicht, was du mit diesem Satz meinst:
Dann reicht es, den Ordner "local" in avidemux2/install/usr/ als root oder über sudo über den Ordner /usr/local zu schreiben (vorher bitte den Symlink avidemux2/install/usr/local/lib löschen!).

Kannst du dich hier anders ausdrücken? "...über den Ordner ...schreiben" verstehe ich nicht. Soll ich etwas kopieren?

eumagga0x2a

#3
Quote from: olli14 on January 04, 2022, 07:35:34 PMIch habe nun bootstrap.bash mit der Option --prefix=usr/local ausgeführt.

Das würde prompt im Abbruch enden, also war das bestimmt

--prefix=/usr/local

Der Schrägstrich vorne macht den ganzen Unterschied.

Quote from: olli14 on January 04, 2022, 07:35:34 PMSoll ich etwas kopieren?

Ja, genau, wenn Avidemux unbedingt systemweit verfügbar sein soll. Im Unterordner "install" von avidemux2:

cd usr && sudo cp -r local /usr/
Und natürlich vorher den oben genannten Symlink löschen!

olli14

Avidemux muß bei mir nicht systemweit installiert werden.

Ich habe vor 2 oder 3 Tagen die Daten zum Kompilieren von Avidemux aus Github heraus aktualisiert. Also müßte der Patch (der weiter oben erwähnt wurde) durch meine Aktualisierung in meiner Kompilierung enthalten sein, oder?

Ich konnte nun mit der "run_avidemux_template.sh" Avidemux 2.8.1 starten. Die Indexierung eines Videos funktioniert. Nach der Indexierung müßte eigentlich das zu schneidende Video angezeigt werden. Aber das tut es nicht. Das Fenster, in dem das zu schneidende Video angezeigt werden müßte, ist "defekt".

Wenn ich versuche, Avidemux über den Starter in "avidemux2/install/usr/local/share/applications" zu starten, bekomme ich eine Fehlermeldung. Avidemux startet garnicht erst.

Ich habe mir zusätzlich die Version 2.8.0 als appImage geladen. Das funktioniert.

Ich verstehe noch nicht, was mir der oben beschriebene Patch für VA-API bringen würde.

Noch zur Info: Ich habe ein 8 bis 10 Jahre altes Mainboard mit onboard Intel Prozessor mit einer im Prozessor integrierten GPU. Als ich noch Windows laufen hatte, konnte ich mit Handbrake ein MPEG2 Video über die GPU Rechenleistung nach H264 encodieren innerhalb von ca. 20 Minuten (vielleicht ist diese Info noch hilfreich).

Bisher schneide ich mit Avidemux ausschließlich TV Aufnahmen in HD (z.B. von ARD HD, Pro7 HD usw.). Die müßten meines Wissens alle h264 codoert sein. In den Einstellungen von Avidemux gibt es Parameter wie libVA, Qt, VDPAU usw. Was muß ich hier für das Schneiden sinnvollerweise einstellen?

eumagga0x2a

Quote from: olli14 on January 06, 2022, 07:26:18 AMIch habe vor 2 oder 3 Tagen die Daten zum Kompilieren von Avidemux aus Github heraus aktualisiert. Also müßte der Patch (der weiter oben erwähnt wurde) durch meine Aktualisierung in meiner Kompilierung enthalten sein, oder?

Im Prinzip ja. Praktisch beseitigt die Auflisting der letzten 20 (zum Beispiel) Änderungen

git log -n 20
jeden Zweifel, der Patch für den Crash ("[ffVaH264,ffVaHEVC] Fix buffer alignment") wurde am 2. Januar eingepflegt. Auch danach sind einige nützliche Änderungen reingeflossen, es lohnt sich auf dem aktuellen Stand zu bleiben, denke ich.

Quote from: olli14 on January 06, 2022, 07:26:18 AMIch konnte nun mit der "run_avidemux_template.sh" Avidemux 2.8.1 starten. Die Indexierung eines Videos funktioniert. Nach der Indexierung müßte eigentlich das zu schneidende Video angezeigt werden. Aber das tut es nicht. Das Fenster, in dem das zu schneidende Video angezeigt werden müßte, ist "defekt".

Kann es sein, dass Avidemux in einer Wayland-Session gestartet wurde? Was für einen Session-Typ meldet der Befehl

loginctl show-session $(loginctl list-sessions | grep $(whoami) | awk '{print $1}') -p Type?

Wenn es nicht x11 sondern wayland ist, dann bitte ausloggen und eine X11-Session wählen. Avidemux ist mit Wayland noch nicht kompatibel.

Ansonsten bitte Avidemux im Terminal starten und in eine Textdate umgeleiteten Meldungen vom Öffnen des problematischen Videos an die Antwort anhängen.

Quote from: olli14 on January 06, 2022, 07:26:18 AMWenn ich versuche, Avidemux über den Starter in "avidemux2/install/usr/local/share/applications" zu starten, bekomme ich eine Fehlermeldung.

Der Name der ausführbaren Datei in der Zeile "Exec=" im Starter (.desktop) muss natürlich in den Namen des Wrapper-Skripts geändert werden, damit es funktionieren kann.

Quote from: olli14 on January 06, 2022, 07:26:18 AMIch verstehe noch nicht, was mir der oben beschriebene Patch für VA-API bringen würde.

Wenn die Hardware einen über die VA-API-Schnittstelle ansprechbaren Hardware-Encoder für H.264 oder HEVC besitzt wie bei vielen Intel-Prozessoren, beseitigt der Patch einen harten Absturz beim Versuch, ein Video zu komprimieren, dessen Breite nicht ohne Rest durch 64 teilbar ist.

Quote from: olli14 on January 06, 2022, 07:26:18 AMAls ich noch Windows laufen hatte, konnte ich mit Handbrake ein MPEG2 Video über die GPU Rechenleistung nach H264 encodieren innerhalb von ca. 20 Minuten

Genau dafür ist der ffVaH264-Encoder ("Intel H264") da.

Quote from: olli14 on January 06, 2022, 07:26:18 AMBisher schneide ich mit Avidemux ausschließlich TV Aufnahmen in HD (z.B. von ARD HD, Pro7 HD usw.). Die müßten meines Wissens alle h264 codoert sein. In den Einstellungen von Avidemux gibt es Parameter wie libVA, Qt, VDPAU usw. Was muß ich hier für das Schneiden sinnvollerweise einstellen?

Das sind die verfügbaren Schnittstellen, um das Video im Avidemux-Fenster anzuzeigen. Bei Intel-Grafik sollte libVA gewählt werden. "Qt" ist eine Schnittstelle ohne Hardware-Beschleunigung (die CPU übernimmt die ganze Arbeit beim Skalieren), die gewählt werden sollte wenn keine andere, bessere Video-Ausgabe funktioniert.

Wenn libVA als Video-Ausgabe ausgewählt wurde und das Video nur im Kopiermodus geschnitten wird, ist die Aktivierung der Dekodierung in Hardware über libVA (VA-API) sinnvoll. Beim Neukodieren kann die CPU je nach Auflösung und Anzahl der Threads schneller sein, weil das Kopieren der Dekodierten Bilder aus dem der Grafik zugewiesenen Speicher in den normalen Arbeitsspeicher leider sehr langsam ist.

Auf den Schnitt hat dies keinen Einfluss, nur auf die Flüssigkeit der Wiedergabe und auf den Stromverbrauch.

olli14

Danke für die ausführliche Antwort eumagga0x2a.
Ich schneide nur im Kopiermodus, encodiere danach nicht. Schnittpunkte wähle ich mit der Pfeilaufwärts- und Pfeilabwärtstaste. Da reicht für mich doch die Version 2.8.0 aus, die ich über appImage laufen habe!? Keine Notwendigkeit,Version 2.8.1 zum Laufen zu bringen,oder?

Übrigens:bei mir läuft eine X11 Umgebung.


eumagga0x2a

Quote from: olli14 on January 09, 2022, 05:34:24 PMDa reicht für mich doch die Version 2.8.0 aus, die ich über appImage laufen habe!? Keine Notwendigkeit,Version 2.8.1 zum Laufen zu bringen,oder?

Das kann ich nicht beurteilen, denn die Empfehlung hängt gänzlich davon ab, ob Avidemux zum Beispiel MKV-Dateien, die den Absturz auslösen, der mit diesem Commit behoben wurde, vorgesetzt bekommt oder nicht. Oder ob Multi-Threading in libavcodec mit mehr als 4 Threads benutzt wird, womit in seltenen Fällen fälschlicherweise die Abfrage zur Wiederherstellung der Zeitstempel präsentiert wird, behoven durch diesen Patch.

Quote from: olli14 on January 09, 2022, 05:34:24 PMÜbrigens:bei mir läuft eine X11 Umgebung.

Dann wäre es schon interessant herauszufinden, warum kein Bild im selbstkompilierten Avidemux angezeigt wurde.

olli14

#8
Wenn ich kompilierte Avidemux über die "run_avidemux_template.sh" starte, öffnet sich Avidemux. Wenn ich versuche, Avidemux über den Starter in "avidemux2/install/usr/local/share/applications" zu starten, bekomme ich eine Fehlermeldung. Avidemux startet garnicht erst. Unten schreibst du etwas von Wrapper-Script. Wrapper-Script sagt mir nichts. Was genau muß ich ändern damit sich Avidemux über den Starter öffnet?

Ich habe beim Kompilieren mal "--deb" angehängt. Das "--deb" erzeugt einige DEB Dateien. Ich verstehe das so, daß ich mit den DEB Dateien Avidemux in Linux Mint installieren kann. Da es so viele DEB Dateien sind, weiß ich jedoch nicht, welche der DEB Dateien ich verwenden muß (ich habe einen Intel Prozessor mit internen Intel Grafikkarte).

Einmal ist es mir passiert, daß nach einem Indexierungslauf Avidemux sich einfach beendet hat. Die anderen Male hat sich Avidemux zwar nicht beendet. Aber Avidemux hat im Video-Bearbeitungsfenster auch nicht da Video angezeigt. Das Bearbeitungsfenster wurde nicht richtig dargestellt.
Du schreibst unten: "...Dann wäre es schon interessant herauszufinden, warum kein Bild im selbstkompilierten Avidemux angezeigt wurde..." Was soll ich hier testen? Was soll ich machen?

Update:
Eben nochmal kompiliert und einen Indexierungslauf eines Videos gemacht und es funktioniert nun scheinbar.
 

eumagga0x2a

Quote from: olli14 on January 12, 2022, 11:01:16 AMUnten schreibst du etwas von Wrapper-Script. Wrapper-Script sagt mir nichts.

Als Wrapper wird ein Skript bezeichnet, das eine andere ausführbare Datei ausführt und dabei eventuell Sachen erledigt wie Umgebungsvariablen für die zu startende ausführbare Datei setzt und/oder Optionen an sie übergibt. In unserem Fall ist die Vorlage für ein Skript zum Starten von Avidemux "run_avidemux_template.sh" so ein Wrapper, da es die Umgebung vor dem Aufruf der ausführbaren Datei avidemux3_qt5 vorbereitet und die Option "--portable" an sie übergibt.

Quote from: olli14 on January 12, 2022, 11:01:16 AMWas genau muß ich ändern damit sich Avidemux über den Starter öffnet?

Wenn "run_avidemux_template.sh" (ggf. mit inhaltlichen Änderungen wie in der Datei selbt beschrieben) und unter einem anderen Namen in einen der Ordner, die in der Umgebungsvariablen $PATH aufgelistet sind, kopiert und ausführbar gemacht worden ist, so dass darüber im Terminal Avidemux gestartet werden kann, musst Du "avidemux3_qt5" in der .desktop-Datei (Nicht in der Original-Datei in Avidemux-Quellcode! Bitte die Änderung in einer zum Beispiel in ~/.local/share/applications abgelegten Kopie durchführen.) durch den Namen dieses Skripts ersetzen.

Quote from: olli14 on January 12, 2022, 11:01:16 AMUpdate:
Eben nochmal kompiliert und einen Indexierungslauf eines Videos gemacht und es funktioniert nun scheinbar.

Mit der Datei, die vorhin nicht ging? Oder mit einer anderen?

Quote from: olli14 on January 12, 2022, 11:01:16 AMDu schreibst unten: "...Dann wäre es schon interessant herauszufinden, warum kein Bild im selbstkompilierten Avidemux angezeigt wurde..." Was soll ich hier testen? Was soll ich machen?

Avidemux im Terminal starten, dabei die Standardausgabe (stdout) und Standard-Fehlerausgabe (stderr) in eine Textdatei umleiten, den Fehler reproduzieren, Avidemux beenden und die Datei, in die stdout und stderr von Avidemux umgeleitet wurden, an Deine Anwort anhängen bzw. über einen Hoster (Dropbox usw.) bereitstellen. Zum Beispiel:

avidemuxWrapper > /tmp/admlog.txt 2>&1
führt avidemuxWrapper aus und schreibt seine Meldungen sowohl auf stdout als auch stderr in die Textdatei "admlog.txt" im Ordner /tmp.