Benutzer-Werkzeuge

Webseiten-Werkzeuge


mov_mit_alpha-kanal_nach_webm_mit_alpha-kanal_umwandeln

MOV mit Alpha-Kanal nach WEBM mit Alpha-Kanal umwandeln

Diese Anleitung beschreibt, wie MOV-Dateien mit Transparenz, also Alpha-Kanal, in WEBM-Dateien mit Alpha-Kanal umgewandelt werden. Die Umwandlung erfolgt mit FFmpeg über ein PowerShell-Script unter Windows.

Ziel

Das Script wandelt alle .mov-Dateien aus diesem Ordner um:

C:\temp\ffmpeg

Die fertigen .webm-Dateien werden im gleichen Ordner gespeichert.

Beispiel:

C:\temp\ffmpeg\A14-PETER.mov

wird zu:

C:\temp\ffmpeg\A14-PETER.webm

Die WEBM-Datei wird mit diesen Einstellungen erstellt:

Format: WEBM
Codec: VP9
Alpha-Kanal: ja
Framerate: 25 fps
Bildmodus: progressive
Bitrate: ca. 4 Mbit/s

Ordner erstellen

Falls der Ordner noch nicht vorhanden ist, kann er so erstellt werden:

  1. Öffne den Windows Explorer.
  2. Gehe zu:
C:\
  1. Erstelle dort einen neuen Ordner:
temp
  1. Öffne den Ordner temp.
  2. Erstelle darin einen weiteren Ordner:
ffmpeg

Der vollständige Pfad lautet danach:

C:\temp\ffmpeg

Alternativ kann der Ordner in PowerShell erstellt werden:

New-Item -ItemType Directory -Path "C:\temp\ffmpeg" -Force

FFmpeg vorbereiten

Damit das Script funktioniert, muss sich ffmpeg.exe im Ordner befinden:

C:\temp\ffmpeg\ffmpeg.exe

Der Ordner sollte also mindestens diese Datei enthalten:

C:\temp\ffmpeg\ffmpeg.exe

Optional kann auch ffprobe.exe im gleichen Ordner liegen. Das ist hilfreich, um Dateien später zu prüfen.

MOV-Dateien in den Ordner kopieren

Kopiere alle MOV-Dateien, die umgewandelt werden sollen, nach:

C:\temp\ffmpeg

Beispiel:

C:\temp\ffmpeg\A14-PETER (vMix - Output 3).mov

Das Script verarbeitet automatisch alle Dateien mit der Endung:

.mov

PowerShell-Script erstellen

Öffne PowerShell und gib ein:

notepad C:\temp\ffmpeg\convert.ps1

Wenn gefragt wird, ob die Datei erstellt werden soll, bestätige mit Ja.

Füge dann folgenden Inhalt in Notepad ein:

$ErrorActionPreference = "Stop"
 
$folder = "C:\temp\ffmpeg"
$ffmpegLocal = Join-Path $folder "ffmpeg.exe"
 
if (Test-Path $ffmpegLocal) {
    $ffmpeg = $ffmpegLocal
} else {
    $ffmpeg = "ffmpeg"
}
 
$movFiles = Get-ChildItem -Path $folder -Filter "*.mov" -File
 
if ($movFiles.Count -eq 0) {
    Write-Host "Keine .mov-Dateien in $folder gefunden."
    exit 0
}
 
foreach ($file in $movFiles) {
    $input = $file.FullName
    $output = Join-Path $folder ($file.BaseName + ".webm")
 
    Write-Host ""
    Write-Host "Konvertiere:"
    Write-Host "  Input : $input"
    Write-Host "  Output: $output"
 
    $cmd = "`"$ffmpeg`" -y -i `"$input`" -vf `"yadif=0:-1:0,fps=25`" -c:v libvpx-vp9 -pix_fmt yuva420p -auto-alt-ref 0 -b:v 4M -minrate 4M -maxrate 4M -crf 25 `"$output`""
 
    cmd /c $cmd
 
    if ($LASTEXITCODE -eq 0) {
        Write-Host "OK: $output"
    } else {
        Write-Host "FEHLER: FFmpeg Exit Code $LASTEXITCODE bei $input"
    }
}
 
Write-Host ""
Write-Host "Alle Konvertierungen abgeschlossen."

Speichere die Datei.

Der Script-Pfad lautet dann:

C:\temp\ffmpeg\convert.ps1

Script ausführen

Wechsle in den Ordner C:\temp\ffmpeg.
dort befindet sich ja das File convert.ps1
Mit der rechten Maustaste darauf und mit Powerscript ausführen wählen.
Wenn die Konvertierung beginnt ist alles richtig.

ODER: Öffne PowerShell und wechsle in den Ordner:

cd C:\temp\ffmpeg

Falls PowerShell das Ausführen von Scripts blockiert, gib zuerst ein:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Danach startest du das Script:

.\convert.ps1

Das Script sucht nun alle .mov-Dateien im Ordner und erstellt daraus .webm-Dateien.

Was passiert bei der Umwandlung?

Diese Zeile ist der wichtigste Teil des Scripts:

$cmd = "`"$ffmpeg`" -y -i `"$input`" -vf `"yadif=0:-1:0,fps=25`" -c:v libvpx-vp9 -pix_fmt yuva420p -auto-alt-ref 0 -b:v 4M -minrate 4M -maxrate 4M -crf 25 `"$output`""

Bedeutung der wichtigsten Parameter:

Parameter Bedeutung
-y Überschreibt vorhandene WEBM-Dateien ohne Rückfrage
-i „$input“ Gibt die MOV-Eingabedatei an
-vf „yadif=0:-1:0,fps=25“ Wandelt das Video in progressive um und setzt es auf 25 fps
-c:v libvpx-vp9 Verwendet den VP9-Codec für WEBM
-pix_fmt yuva420p Erhält den Alpha-Kanal für Transparenz
-auto-alt-ref 0 Wichtig, damit Alpha bei VP9 korrekt funktioniert
-b:v 4M Setzt die Zielbitrate auf 4 Mbit/s
-minrate 4M Setzt die Mindestbitrate auf 4 Mbit/s
-maxrate 4M Setzt die Maximalbitrate auf 4 Mbit/s
-crf 25 Qualitätswert für VP9
„$output“ Name der erzeugten WEBM-Datei

Ergebnis prüfen

Nach erfolgreicher Umwandlung liegt die WEBM-Datei im gleichen Ordner wie die MOV-Datei.

Beispiel:

C:\temp\ffmpeg\A14-PETER (vMix - Output 3).webm

Um zu prüfen, ob die Datei Informationen zum Alpha-Kanal enthält, kann man in PowerShell ausführen:

.\ffmpeg.exe -i "C:\temp\ffmpeg\A14-PETER (vMix - Output 3).webm"

In der Ausgabe sollte bei der Videospur ein Hinweis wie dieser erscheinen:

alpha_mode

oder ein Pixelformat wie:

yuva420p

Das zeigt, dass die Datei mit Alpha-Kanal gespeichert wurde.

Häufige Fehler

Fehlermeldung: „Keine .mov-Dateien gefunden“

Dann liegt keine MOV-Datei im Ordner:

C:\temp\ffmpeg

Lösung: MOV-Dateien in diesen Ordner kopieren.

Fehlermeldung: „ffmpeg wird nicht erkannt“

Dann fehlt ffmpeg.exe.

Lösung: ffmpeg.exe in diesen Ordner kopieren:

C:\temp\ffmpeg

Die WEBM-Datei hat keine Transparenz

Mögliche Ursachen:

  1. Die ursprüngliche MOV-Datei enthält keinen Alpha-Kanal.
  2. Die MOV-Datei wurde vorher bereits ohne Alpha exportiert.
  3. Ein Player zeigt WEBM-Alpha nicht korrekt an.

Zum Testen sollte die WEBM-Datei in einer Anwendung geöffnet werden, die WEBM mit Alpha unterstützt.

Kurzablauf

  1. Ordner erstellen:
C:\temp\ffmpeg
  1. ffmpeg.exe in diesen Ordner legen.
  2. MOV-Dateien in diesen Ordner kopieren.
  3. Script erstellen:
C:\temp\ffmpeg\convert.ps1
  1. Script ausführen:
cd C:\temp\ffmpeg
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\convert.ps1
  1. WEBM-Dateien im gleichen Ordner verwenden.
mov_mit_alpha-kanal_nach_webm_mit_alpha-kanal_umwandeln.txt · Zuletzt geändert: von Admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki