Audio & Video

Avidemux im Terminal nutzen – mit (fast) allen Features

Avidemux ist eigentlich toll, aber der "offizielle" CLI-Workflow ein wenig wirr

Mit Avidemux lässt sich wirklich gut arbeiten – in der GUI. Und auch simple Drag&Drop-Konvertierer für die Kommandozeile sind kein Problem. Aber nicht alle Funktionen lassen sich ganz normal im Terminal aufrufen, auch wenn die Dokumentation etwas anderes behauptet – sie ist wohl einfach gnadenlos veraltet. Aber es geht über einen irrwitzigen Umweg.

Avidemux per Umweg

Der oben kürzlich vorgestellte Konverter sollte hier ein wenig erweitert werden: Statt nur Video-/Audio-Codec und das Containerformat zu bestimmen, sollte auch noch auf eine bestimmte Größe reduziert werden, hier 90 Megabyte, um Videos per Signal teilen zu können (max. 100 MB).

Avidemux bietet auch eine Option dafür: –video-conf 2pass=90 sollte eigentlich über zwei Durchläufe eine Endgröße von 90 Megabyte garantieren. Tat es beim Test aber nicht. Und auch die Option –auto-split 30 wollte das Video beim Gegentest partout nicht in hübsche 30-Megabyte-Dateien aufteilen.

Nach viel Herumtesterei stellte sich dann heraus: Die Dokumentation ist veraltet, die Optionen sind als CLI-Argumente scheinbar nicht mehr vorhanden und der arme Moderator im Forum muss ständig dieselben Fragen beantworten.

Und die Lösung ist leider nicht ganz intuitiv:

  1. Avidemux-GUI öffnen
  2. Einstellungen nach Wunsch setzen
  3. Projekt als Python-Skript speichern
  4. Die unten stehenden Zeilen aus dem Python-Skript entfernen
  5. Das Python-Skript statt der Optionen im Terminal aufrufen

Folgende Zeilen müssen aus dem Skript verschwinden:

adm.loadVideo
adm.clearSegments
adm.addSegment
adm.markerA
adm.markerB

Im Terminal lässt sich Avidemux dann zum Beispiel wie folgt aufrufen:

"C:\Program Files\Avidemux 2.7 VC++ 64bits\avidemux.exe" --load meinvideo.mp4 --run meinprojekt.py --save meinvideo_90.mkv --quit

Der Aufruf ist also Load – Run – Save – Quit und damit eigentlich ganz logisch. Und natürlich könnt Ihr die Projektdateien auch im Texteditor bearbeiten oder gleich neu erstellen. Allerdings sieht mein Skript mit wenigen Optionen (h264, MP3, MKV, 90 Megabyte) so aus:

#PY  <- Needed to identify #
#--automatically built--
adm.videoCodec("h264", "useAdvancedConfiguration=True", "general.params=2PASS=90", "general.threads=0", "general.preset=ultrafast", "general.tuning=none", "general.profile=high", "general.fast_decode=False", "general.zero_latency=False"
, "general.fast_first_pass=True", "general.blueray_compatibility=False", "general.fake_interlaced=False", "level=-1", "vui.sar_height=1", "vui.sar_width=1", "MaxRefFrames=3", "MinIdr=25", "MaxIdr=250"
, "i_scenecut_threshold=40", "intra_refresh=False", "MaxBFrame=3", "i_bframe_adaptive=1", "i_bframe_bias=0", "i_bframe_pyramid=2", "b_deblocking_filter=True", "i_deblocking_filter_alphac0=0", "i_deblocking_filter_beta=0"
, "cabac=True", "interlaced=False", "constrained_intra=False", "tff=True", "fake_interlaced=False", "analyze.b_8x8=True", "analyze.b_i4x4=True", "analyze.b_i8x8=True", "analyze.b_p8x8=True", "analyze.b_p16x16=False"
, "analyze.b_b16x16=False", "analyze.weighted_pred=2", "analyze.weighted_bipred=True", "analyze.direct_mv_pred=1", "analyze.chroma_offset=0", "analyze.me_method=1", "analyze.me_range=16", "analyze.mv_range=-1"
, "analyze.mv_range_thread=-1", "analyze.subpel_refine=7", "analyze.chroma_me=True", "analyze.mixed_references=True", "analyze.trellis=1", "analyze.psy_rd=1.000000", "analyze.psy_trellis=0.000000", "analyze.fast_pskip=True"
, "analyze.dct_decimate=True", "analyze.noise_reduction=0", "analyze.psy=True", "analyze.intra_luma=11", "analyze.inter_luma=21", "ratecontrol.rc_method=0", "ratecontrol.qp_constant=0", "ratecontrol.qp_min=10"
, "ratecontrol.qp_max=51", "ratecontrol.qp_step=4", "ratecontrol.bitrate=0", "ratecontrol.rate_tolerance=1.000000", "ratecontrol.vbv_max_bitrate=0", "ratecontrol.vbv_buffer_size=0", "ratecontrol.vbv_buffer_init=1"
, "ratecontrol.ip_factor=1.400000", "ratecontrol.pb_factor=1.300000", "ratecontrol.aq_mode=1", "ratecontrol.aq_strength=1.000000", "ratecontrol.mb_tree=True", "ratecontrol.lookahead=40")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"und")
if adm.audioTotalTracksCount() <= 0:
    raise("Cannot add audio track 0, total tracks: " + str(adm.audioTotalTracksCount()))
adm.audioAddTrack(0)
adm.audioCodec(0, "copy")
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0, 0)
adm.setContainer("MKV", "forceAspectRatio=False", "displayWidth=1280", "displayAspectRatio=2", "addColourInfo=False", "colMatrixCoeff=2", "colRange=0", "colTransfer=2", "colPrimaries=2")

Käme man jetzt vielleicht nicht direkt drauf, ohne die Avidemux-GUI …

Der Umweg über die GUI ist ziemlich ungewohnt, hat aber zumindest einen Vorteil: Weiß man einmal wie es geht, lassen sich ziemlich komplexe Skripte erstellen, ohne sich mit Syntax beschäftigen zu müssen. Nachtrag: Wobei man sagen muss, dass scheinbar nicht alles auf diese Weise läuft, Filter weigern sich bislang …

Aber unschön ist der Part mit der Dokumentation. Ich weiß sehr wohl, wie aufwändig eine aktuelle Nutzerdokumentation ist und es ist nicht gerade die Kern- oder Lieblingsaufgabe von Entwicklern. Zudem ist es auch noch ein Open-Source-Projekt. Aber Nutzer über Jahre so offen ins Messer laufen zu lassen ist schon nicht die feine Art ;) Es würde ja genügen den CLI-Artikel in den Bereich Out of dates / Do not use zu verschieben, der im Wiki ja existiert …

Aber egal, am Ende bekommt man, was man von Avidemux gewohnt ist: Zuverlässige Ergebnisse und fantastische Geschwindigkeit, beim Konvertieren werden endlich mal alle Kerne ausgelastet.

Mehr zum Thema Videobearbeitung.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Empfohlene Beiträge

Schaltfläche "Zurück zum Anfang"
Tutonaut.de