Eine Sammlung von ffmpeg-Shell-Skripten für grundlegende Bearbeitungsaufgaben
ffmpeg-Skripte englische Version
ffmpeg-Skripte, die mit Google Translate aus dem Englischen ins Deutsche übersetzt wurden, Wenn es irgendwelche Fehler in der Übersetzung gibt, melden Sie sich bitte
Ich war mir nicht sicher, ob die Skriptnamen Umlaute enthalten sollten, oder wenn Sie ein englisches oder US-Layout im Terminal verwenden, lassen Sie es mich wissen
- audio-stille
- kombinieren-clips
- clip-zeit
- kapitel-hinzufugen
- kapitel-csv
- kapitel-auszug
- korrekter-clip
- clips-überblenden
- ebu-meter
- rahmen-extrahieren
- überblenden-clip
- verblassen-normalisieren
- titel-verblassen
- img2video
- lautnorm
- normalisieren
- uberzug-clip
- uberzug-pip
- pfanne-scan
- sexagesimal-zeit
- szene-geschnitten
- szene-erkennen
- szene-bilder
- scene-zeit
- untertitel-hinzufügen
- bereiche
- fliese-miniaturansichten
- trimmen-clip
- vid2gif
- wellenform
- webp
- xfade
- zoompan
ffmpeg-Skripte installieren YouTube
Erstellen Sie ein bin-Verzeichnis in Ihrem Home-Verzeichnis, um die Skripte hinzuzufügen
mkdir -p ~/bin
Wenn Sie bash verwenden, fügen Sie den folgenden Code zu Ihrer ~/.bashrc hinzu
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
Wenn Sie zsh verwenden, fügen Sie Ihrer ~/.zshenv-Datei den folgenden Code hinzu
typeset -U PATH path
path=("$HOME/bin" "$path[@]")
export PATH
- beziehen Sie Ihre ~/.bashrc, wenn Sie die Bash-Shell verwenden
source ~/.bashrc
- beziehen Sie Ihre ~/.zshenv, wenn Sie die zsh-Shell verwenden
source ~/.zshenv
Erstellen Sie ein Git-Verzeichnis in Ihrem Home-Ordner, um die Skripte herunterzuladen, oder verwenden Sie einen anderen Speicherort in Ihrem Dateisystem
mkdir -p ~/git
Verzeichnis im Git-Verzeichnis wechseln
cd ~/git
Klonen Sie das Git-Repository
git clone https://github.com/NapoleonWils0n/ffmpeg-scripts.git
Aktualisieren Sie die Skripte mit Git Pull
Sie können die Skripte jetzt entweder in das Verzeichnis ~/bin in Ihrem Home kopieren, oder erstellen Sie symbolische Links von den Skripten im Verzeichnis ~/git/ffmpeg-scripts zum Verzeichnis ~/bin
Erstellen eines symbolischen Links
ln -s path/to/source path/to/destination
Beispiel
ln -s ~/git/ffmpeg-scripts/trim-clip ~/bin
installiere ffmpeg auf debian oder ubuntu, Informationen zu anderen Linux-Distributionen finden Sie in der Dokumentation Ihres Paketmanagers
sudo apt install ffmpeg
Öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus, um die xcode-Befehlszeilentools Homebrew und ffmpeg zu installieren
- Xcode-Befehlszeilentools installieren
xcode-select --install
- Homebrew-Installation
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- ffmpeg-Installation mit libfdk_aac
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac --HEAD
- ffmpeg-Upgrade
brew update && brew upgrade homebrew-ffmpeg/ffmpeg/ffmpeg --fetch-HEAD
Wechseln Sie zu root und installieren Sie das ffmpeg-Paket
pkg install ffmpeg
Sie können ffmpeg auch von Ports installieren, oder verwenden Sie poudriere, um das ffmpeg-Paket zu erstellen
Beachten Sie, dass das Ebumeter-Skript ffplay verwendet, das nicht mit dem ffmpeg-Paket installiert wird. Sie müssen also ffmpeg mit der sdl-Option enable from ports oder mit poudriere erstellen
Wenn Sie das libfdk_aac-Audio verwenden möchten, sollten Sie diese Option auch beim Erstellen aktivieren den ffmpeg-Port und bauen Sie das lame-Paket für die MP3-Unterstützung
Installieren Sie das Windows-Subsystem für Linux und installieren Sie dann eine Linux-Distribution wie Ubuntu. Folgen Sie dann den Linux-Installationsanweisungen
audio-stille stummes Audio zu einem Videoclip hinzufügen
Wenn das Video keine Audiospur hat, kopiert das Skript die Videospur, und fügt eine stumme Audiospur hinzu, die der Dauer des Videos entspricht, und erstellt einen neuen Videoclip
Wenn das Video eine Video- und eine Audiospur hat, kopiert das Skript nur die Videospur, und fügt eine stumme Audiospur hinzu, die der Dauer des Videos entspricht, und erstellt einen neuen Videoclip.
- Verwendung von Skripten
audio-stille -i eingang.(mp4|mkv|mov|m4v) -c (mono|stereo) -r (44100|48000) -o ausgang.mp4
- Skript hilfe
audio-stille -h
# Audio-stille fügt einem Videoclip stummen Ton hinzu audio-stille -i eingang.(mp4|mkv|mov|m4v) -c (mono|stereo) -r (44100|48000) -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -c (mono|stereo) : optionales Argument # wenn die Option nicht angegeben wird, ist die Standardeinstellung mono -r (44100|48000) : optionales Argument # wenn Option nicht angegeben, standardmäßig 44100 -o ausgang.mp4 : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Stille-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um die Standardausgabe zu verwenden. das ist input-name-silence-date-time
audio-stille stapelverarbeitung ohne Angabe der Optionen -c und -r unter Verwendung der Standardwerte von -c mono und -r 44100
find . -type f -name "*.mp4" -exec sh -c \
'audio-stille -i "${0}"'
"{}" \;
audio-stille Batch-Prozess und überschreiben die Standardwerte mit den Optionen -c und -r
find . -type f -name "*.mp4" -exec sh -c \
'audio-stille -i "${0}" -c stereo -r 48000'
"{}" \;
Konvertieren Sie Zeitstempel in Start und Dauer
- Verwendung von Skripten
clip-zeit -i eingang -o ausgang
- Skript hilfe
clip-zeit -h
Hinzufügen von Kapiteln zu einer Video- oder Audiodatei mit ffmpeg mithilfe einer Metadatendatei, Verwenden Sie das Kapitel-CSV-Skript, um die Metadatendatei aus einer CSV-Datei zu erstellen
- Verwendung von Skripten
kapitel-hinzufugen -i eingabe -c metadata.txt -o ausgabe
- Skripthilfe
kapitel-hinzufugen -h
Konvertieren Sie eine CSV-Datei in eine Kapitel-Metadatendatei für ffmpeg
- script usage
kapitel-csv -i eingabe -o ausgabe
- script help
kapitel-csv -h
- csv-Datei Beispiel
Der letzte Datensatz ist die Dauer des Videos und wird als Endzeit für das vorherige Kapitel verwendet, und Ende wird nicht als Kapitel verwendet
00:00:00,Einführung 00:02:30,Szene 1 00:05:00,Szene 2 00:07:00,Szene 3 00:10:00,Ende
Extrahieren Sie Kapitel aus einer Video- oder Audiodatei und speichern Sie sie als CSV-Datei
- Verwendung von Skripten
kapitel-auszug -i input -o output
- Skripthilfe
kapitel-auszug -h
- Konvertieren Sie die CSV-Datei in YouTube-Zeitstempel
tr ',' ' ' < eingabe.txt > Ausgabe.txt
Kombinieren Sie eine Bild- oder Videodatei mit einem Audioclip
- Verwendung von Skripten
kombinieren-clips -i eingang.(mp4|mkv|mov|m4v|png|jpg) -a audio.(m4a|aac|wav|mp3) -o ausgang.mp4
- Skript hilfe
kombinieren-clips -h
# Kombinieren Sie eine Bild- oder Videodatei mit einem Audioclip kombinieren-clips -i eingang.(mp4|mkv|mov|m4v|png|jpg) -a audio.(m4a|aac|wav|mp3) -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v|png|jpg) -a audio.(m4a|aac|wav|mp3) -o ausgang.mp4 : Optionales Argument # Wenn die Option nicht angegeben wird, wird standardmäßig Eingabename-kombiniertes Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den standardmäßigen Namen der Ausgangsdatei zu verwenden. input-name-combined-date-time
- Kombinieren Sie Video- und Audiodateien stapelweise zu Videoclips
Die Video- und Audiodateien, die Sie kombinieren möchten, müssen denselben Namen haben
Zum Beispiel
file1.mp4 file1.wav file2.mp4 file2.wav
Durch Ausführen des folgenden Codes wird kombiniert file1.mp4 mit file1.wav und file2.mp4 mit file2.wav
find . -type f -name "*.mp4" -exec sh -c \
'kombinieren-clips -i "${0}" -a "${0%.*}.wav"' \
"{}" \;
- Kombinieren Sie Bilder und Audiodateien stapelweise zu Videoclips
Die Bild- und Audiodateien, die Sie kombinieren möchten, müssen denselben Namen haben
Zum Beispiel
file1.png file1.wav file2.png file2.wav
Durch Ausführen des folgenden Codes wird kombiniert file1.png mit file1.wav und file2.png mit file2.wav
find -s . -type f -name "*.png" -exec sh -c \
'kombinieren-clips -i "${0}" -a "${0%.*}.wav"' \
"{}" \;
- Kurvencode basierend auf:
Konvertieren von Gimp-Kurvendateien für ffmpeg
Korrigieren Sie einen Videoclip, indem Sie eine Gimp-Kurve verwenden, die in einen ffmpeg-Kurvenfilterbefehl umgewandelt wurde. zum Anpassen der Pegel und des Weißabgleichs
- erfordert eine Kurvendatei, die mit dem folgenden Skript erstellt wurde
- Verwendung von Skripten
korrekter-clip -i eingang.(mp4|mkv|mov|m4v) -c kurve.txt -o ausgang.mp4
- Skript hilfe
korrekter-clip -h
# Korrigieren Sie einen Videoclip mit einer Gimp-Kurve # erfordert eine Kurvendatei, die mit dem folgenden Skript erstellt wurde # https://github.com/NapoleonWils0n/curve2ffmpeg korrekter-clip -i eingang.(mp4|mkv|mov|m4v) -c kurve.txt -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -c kurve.txt -o ausgang.mp4 : Optionales Argument # Wenn die Option nicht angegeben wird, wird standardmäßig Eingabename-korrigiertes-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. Eingabename-korrigiertes-Datum-Uhrzeit
Die Video- und Gimp-Kurven-Textdateien, die Sie kombinieren möchten, müssen denselben Namen haben
Zum Beispiel
file1.mp4 file1.txt file2.mp4 file2.txt
Durch Ausführen des folgenden Codes wird dies behoben file1.mp4 mit file1.txt Gimp-Kurvendatei und file2.mp4 mit file2.txt Gimp-Kurvendatei
find . -type f -name "*.mp4" -exec sh -c \
'korrekter-clip -i "${0}" -c "${0%.*}.txt"' \
"{}" \;
Überblenden Sie 2 Videoclips mit einer Überblendung von 1 oder 2 Sekunden Die Videos müssen die gleichen Codecs, Größe und Bildrate haben
- Verwendung von Skripten
clips-uberblenden -a clip1.(mp4|mkv|mov|m4v) -b clip2.(mp4|mkv|mov|m4v) -d (1|2) -o ausgang.mp4
- Skript hilfe
clips-uberblenden -h
# Clips überblenden clips-uberblenden -a clip1.(mp4|mkv|mov|m4v) -b clip2.(mp4|mkv|mov|m4v) -d (1|2) -o ausgang.mp4 -a clip1.(mp4|mkv|mov|m4v) : Erster clip -b clip2.(mp4|mkv|mov|m4v) : Zweiter clip -d (1|2) : Dauer der Überblendung: optionales Argument # Wenn die Option nicht angegeben wird, ist die Voreinstellung 1 Sekunde -o ausgang.mp4 : Dauer der Überblendung: optionales Argument # Wenn die Option nicht angegeben wird, ist die Voreinstellung 1 Sekunde
ffplay ebu meter
- Verwendung von Skripten
ebu-meter -i eingang.(mp4|mkv|mov|m4v|webm|aac|m4a|wav|mp3) -t (00)
-t = luf target, eg 16
- Skript hilfe
ebu-meter -h
Extrahieren Sie einen Frame aus einem Video und speichern Sie ihn als PNG-Bild
Beachten Sie, dass Sie zwei verschiedene Formate für Zeiteinheiten verwenden können: Sexagesimal (HOURS:MM:SS.MILLISECONDS, wie in 01:23:45.678) oder in Sekunden. Wenn ein Bruch verwendet wird, z. B. 02:30.05, wird dies als “5 Hundertstelsekunden” interpretiert, nicht als Frame 5. Zum Beispiel wäre 02:30,5 2 Minuten, 30 Sekunden und eine halbe Sekunde, was der Verwendung von 150,5 in Sekunden entspricht.
- Verwendung von Skripten
rahmen-extrahieren -i eingang.(mp4|mov|mkv|m4v|webm) -s 00:00:00.000 -o ausgang.png
- Skript hilfe
rahmen-extrahieren -h
# Extrahieren Sie einen Frame aus einem Video als PNG-Datei https://trac.ffmpeg.org/wiki/Seeking rahmen-extrahieren -i eingang.(mp4|mov|mkv|m4v|webm) -s 00:00:00.000 -o ausgang.png -i eingang.(mp4|mov|mkv|m4v) -s 00:00:00.000 : optionales Argument #, wenn die Option nicht angegeben wird 00:00:00 -o ausgang.png : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-timecode
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. Eingabename-Frame-Datum-Uhrzeit
- Rahmen mit der Standardoption 00:00:00 extrahieren
find . -type f -name "*.mp4" -exec sh -c \
'rahmen-extrahieren -i "${0}"' \
"{}" \;
- Einzelbild bei 30 Sekunden in das Video extrahieren
find . -type f -name "*.mp4" -exec sh -c \
'rahmen-extrahieren -i "${0}" -s 00:00:30' \
"{}" \;
fade video and audio in and out
- Verwendung von Skripten
uberblenden-clip -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -o ausgang.mp4
- Skript hilfe
uberblenden-clip -h
# Video und Audio ein- und ausblenden uberblenden-clip -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) : optionales Argument # wenn die Option nicht angegeben wird, ist der Standardwert 0,5 -o ausgang.mp4 : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Fade-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. input-name-fade-date-time
- uberblenden-clip mit Standardoption von 0,5
find . -type f -name "*.mp4" -exec sh -c \
'uberblenden-clip -i "${0}"' \
"{}" \;
- uberblenden-clip und überschreiben Sie die Standardoption von 0,5 mit -d 1 für ein 1-Sekunden-Fade
find . -type f -name "*.mp4" -exec sh -c \
'uberblenden-clip -i "${0}" -d 1' \
"{}" \;
Video und Audio ein- und ausblenden und normalisieren
verblassen-normalisieren youtube
- Verwendung von Skripten
verblassen-normalisieren -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -o ausgang.mp4
- Skript hilfe
verblassen-normalisieren -h
# Video verblassen und Audiopegel normalisieren verblassen-normalisieren -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -o ausgang.mp4 -d (0.[0-9]|1) : optionales Argument # wenn die Option nicht angegeben wird, ist der Standardwert 0,5 -o ausgang.mp4 : optionales Argument # wenn die Option nicht angegeben ist, wird standardmäßig Eingabename-normalisiertes-Datum-Uhrzeit verwendet
Batch process files in the current working directory
find . -type f -name "*.mp4" -exec sh -c \
'verblassen-normalisieren -i "${0}" -d 0.5' \
"{}" \;
Video und Audio ein- und ausblenden, Normalisieren Sie das Audio und erstellen Sie ein Video mit einem unteren Dritteltitel aus dem Dateinamen
- Verwendung von Skripten
titel-verblassen -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -s 000 -e 000 -o ausgang.mp4
- Skript hilfe
titel-verblassen -h
# Video ausblenden, Audio Titel aus Videodateinamen hinzufügen titel-verblassen -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) -s 000 -e 000 -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -d (0.[0-9]|1) : von 0,1 bis 0,9 oder 1 : optionales Argument # wenn die Option nicht angegeben wird, ist standardmäßig 0,5 -s 000 : von 000 bis 999 -e 000 : von 000 bis 999 -o ausgang.mp4 : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Titel-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
find . -type f -name "*.mp4" -exec sh -c \
'titel-verblassen -i "${0}" -d 0.5 -s 10 -e 20' \
"{}" \;
Konvertieren Sie ein Bild in eine Videodatei
- Verwendung von Skripten
img2video -i eingang.(png|jpg|jpeg) -d (000) -o ausgang.mp4
- Skript hilfe
img2video -h
# Bild zum Video img2video -i eingang.(png|jpg|jpeg) -d (000) -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -d (000) : Dauer -o ausgang.mp4 : optionales Argument # Wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Video-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. Eingabe-Name-Video-Datum-Uhrzeit
Batch-Konvertierung von PNG im aktuellen Verzeichnis in Videoclips mit einer Dauer von 30 Sekunden
find . -type f -name "*.png" -exec sh -c \
'img2video -i "${0}" -d 30' \
"{}" \;
ffmpeg lautnorm
- Verwendung von Skripten
lautnorm -i eingang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3)
- Skript hilfe
lautnorm -h
Audiopegel normalisieren
- Verwendung von Skripten
normalisieren -i eingang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) -o ausgang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3)
- Skript hilfe
normalisieren -h
# Audiopegel normalisieren normalisieren -i eingang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) -o ausgang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) -i eingang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) -o ausgang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) : optionales Argument # Wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-normalisierte-Datum-Uhrzeit-Erweiterung verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. input-name-normalize-date-time
Batch-Normalisierung von mp4-Videos im aktuellen Verzeichnis
find . -type f -name "*.mp4" -exec sh -c \
'normalisieren -i "${0}"' \
"{}" \;
einen Videoclip über einen anderen Videoclip legen
- Verwendung von Skripten
uberzug-clip -i eingang.(mp4|mkv|mov|m4v) -v eingang.(mp4|mkv|mov|m4v) -p [0-999] -o ausgang.mp4
- Skript hilfe
uberzug-clip -h
# einen Videoclip über einen anderen Videoclip legen uberzug-clip -i eingang.(mp4|mkv|mov|m4v) -v eingang.(mp4|mkv|mov|m4v) -p [0-999] -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) : unteres Video -v eingang.(mp4|mkv|mov|m4v) : Video überlagern -p [0-999] : Zeit, um das Video zu überlagern -o ausgang.mp4 : optionales Argument # Wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Overlay-Datum-Uhrzeit verwendet
create a picture in picture
- Verwendung von Skripten
uberzug-pip -i eingang.(mp4|mkv|mov|m4v) -v eingang.(mp4|mkv|mov|m4v) -p [0-999]
-m [00] -x (tl|tr|bl|br) -w [000] -f (0.1-9|1) -b [00] -c colour -o ausgang.mp4
- Skript hilfe
uberzug-pip -h
# Erstellen Sie ein Bild-in-Bild-Video uberzug-pip -i eingang.(mp4|mkv|mov|m4v) -v eingang.(mp4|mkv|mov|m4v) -p [0-999] -m [00] -x (tl|tr|bl|br) -w [000] -f (0.1-9|1) -b [00] -c colour -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) : unteres Video -v eingang.(mp4|mkv|mov|m4v) : Video überlagern -p [0-999] : Zeit, um das Video zu überlagern -m [00] : Rand ist standardmäßig 0 -x (tl|tr|bl|br) : Pip-Position - standardmäßig tr -w [000] : width - standardmäßig 1/4 der Videogröße -f (0.1-9|1) : Fade von 0,1 auf 1 - Standardeinstellung 0,2 -b [00] : Grenze -c colour : Farbe -o ausgang.mp4 : Optionales Argument # Wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Pip-Datum-Uhrzeit verwendet
Bild schwenken
- Verwendung von Skripten
pfanne-scan -i eingang.(png|jpg|jpeg) -d (000) -p (l|r|u|d) -o ausgang.mp4
- Skript hilfe
pfanne-scan -h
# Schwenken Sie über ein Bild pfanne-scan -i eingang.(png|jpg|jpeg) -d (000) -p (l|r|u|d) -o ausgang.mp4 -i = eingang.(png|jpg|jpeg) -d = dauer : aus 1-999 -p = position : left, right, up, down -o = ausgang.mp4 : optionales Argument # Standard ist Eingabename-Pan-Datum-Uhrzeit
Berechnen Sie die sexagesimale Dauer, indem Sie die Endzeit von der Startzeit zum Trimmen von Dateien mit ffmpeg subtrahieren
- Skripthilfe
sexagesimal-zeit -h
Beispiel
sexagesimal-zeit -s 00:05:30 -e 00:18:47
Ausgang
00:13:17
funktioniert auch mit Millisekunden
Szene-geschnitten nimmt eine geschnittene Datei und ein Video und schneidet das Video in Clips
- Verwendung von Skripten
szene-geschnitten -i eingang -c datei schneiden
- Skript hilfe
szene-geschnitten -h
szene-geschnitten -i eingang -c datei schneiden -i eingang.(mp4|mov|mkv|m4v) -c datei schneiden
ffmpeg erfordert einen Startpunkt und eine Dauer, keinen Endpunkt
Schnittdatei - Stunden, Minuten, Sekunden In diesem Beispiel erstellen wir Clips von 2 bis 30 Sekunden
ein 30-Sekunden-Clip, der bei 00:00:00 beginnt und ein weiterer 30-Sekunden-Clip, der bei 00:01:00 beginnt
00:00:00,00:00:30 00:01:00,00:00:30
Schnittdatei - Sekunden In diesem Beispiel erstellen wir Clips von 2 bis 30 Sekunden
ein 30-Sekunden-Clip, der bei 0 beginnt und ein weiterer 30-Sekunden-Clip, der bei 60 beginnt
0,30 60,30
Szenenerkennung nimmt eine Videodatei und einen Schwellwert für die Szenenerkennung von 0,1 bis 0,9 Sie können auch die Optionen -s und -e verwenden, um einen Bereich für die Szenenerkennung festzulegen. Wenn Sie keinen Bereich angeben, wird die Szenenerkennung für das gesamte Video durchgeführt
ffmpeg-Szenenerkennung - Videos automatisch in separate Szenen schneiden
ffmpeg Szenenerkennung - Version 2 - einen Bereich im Video angeben und in einzelne Szenen schneiden
ffmpeg-Szenenerkennung - Version 3 - Sexagesimalformat - Stunden, Minuten, Sekunden
- Verwendung von Skripten
szene-erkennen -s 00:00:00 -i eingang -e 00:00:00 -t (0.1 - 0.9) -f sec -o ausgang
- Skript hilfe
szene-erkennen -h
szene-erkennen -s 00:00:00 -i eingang -e 00:00:00 -t (0.1 - 0.9) -f sec -o ausgang -s 00:00:00 : startzeit -i eingang.(mp4|mov|mkv|m4v) -e 00:00:00 : endzeit -t (0.1 - 0.9) # schwelle -f sec # ausgabe in sekunden -o ausgang.txt
szene-bilder nimmt eine Videodatei und eine geschnittene Datei, erstellt mit dem Scene-Detect-Skript entweder im Sekunden- oder Sexagesimalformat und erstellt dann ein Bild für jeden Schnittpunkt
- Verwendung von Skripten
szene-bilder -i eingang -c datei schneiden
- Skript hilfe
szene-bilder -h
szene-bilder -i eingang -c datei schneiden -i eingang.(mp4|mov|mkv|m4v) -c datei schneiden
szene-zeit nimmt eine geschnittene Datei, erstellt mit dem Scene-Detect-Skript entweder im Sekunden- oder Sexagesimalformat
0:00:00 0:00:11.875000 0:00:15.750000
Das Skript erstellt Clips, indem es den Schnittpunkt vom Startpunkt subtrahiert und konvertiert das Sexagesimalformat und erstellt dann eine Datei mit dem Startpunkt ein Komma und dann die Dauer des Clips
Die Ausgabe des Szenenzeit-Skripts wird mit dem Szenenschnitt-Skript verwendet, um die Clips zu erstellen
0,11.875 11.875,3.875
- Verwendung von Skripten
szene-zeit -i eingang -o ausgang
- Skript hilfe
szene-zeit -h
szene-zeit -i eingang -o ausgang -i eingang -o ausgang
Untertitel zu einer Videodatei hinzufügen
- Verwendung von Skripten
untertitel-hinzufugen -i eingang.(mp4|mkv|mov|m4v) -s untertitel.(srt|vtt) -o ausgang.mp4
- Skript hilfe
untertitel-hinzufugen -h
# Untertitel zu einem Video hinzufügen untertitel-hinzufugen -i eingang.(mp4|mkv|mov|m4v) -s untertitel.(srt|vtt) -o ausgang.mp4 -i eingang.(mp4|mkv|mov|m4v) -s untertitel.(srt|vtt) -o ausgang.mp4 : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Subs-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. input-name-subs-date-time
Die Video- und Untertiteldateien, die Sie kombinieren möchten, müssen denselben Namen haben
Zum Beispiel
file1.mp4 file1.srt file2.mp4 file2.srt
Durch Ausführen des folgenden Codes wird das subtitle-add-Skript ausgeführt und kombiniert file1.mp4 mit file1.srt und file2.mp4 mit file2.srt
find . -type f -name "*.mp4" -exec sh -c \
'untertitel-hinzufugen -i "${0}" -s "${0%.*}.srt"' \
"{}" \;
- Verwendung von Skripten
bereiche -i eingang = histogramm
bereiche -o eingang = rgb überlagern
bereiche -p eingang = rgb parade
bereiche -s eingang = rgb überlagern and parade
bereiche -w eingang = wellenform
bereiche -v eingang = Vektorskop
bereiche -h = hilfe
- Skript hilfe
bereiche -h
# ffplay-Videoskope bereiche -i eingang = histogramm bereiche -o eingang = rgb überlagern bereiche -p eingang = rgb parade bereiche -s eingang = rgb überlagern and parade bereiche -w eingang = wellenform bereiche -v eingang = Vektorskop bereiche -h = hilfe
Erstellen Sie Miniaturansichten aus einem Video und kacheln Sie sie in ein Bild
fliese-miniaturansichten youtube
Beachten Sie, dass Sie zwei verschiedene Formate für Zeiteinheiten verwenden können: Sexagesimal (HOURS:MM:SS.MILLISECONDS, wie in 01:23:45.678) oder in Sekunden. Wenn ein Bruch verwendet wird, z. B. 02:30.05, wird dies als “5 Hundertstelsekunden” interpretiert, nicht als Frame 5. Zum Beispiel wäre 02:30,5 2 Minuten, 30 Sekunden und eine halbe Sekunde, was der Verwendung von 150,5 in Sekunden entspricht.
- Verwendung von Skripten
fliese-miniaturansichten -i eingang -s 00:00:00.000 -w 000 -t 0x0 -p 00 -m 00 -c farbe -f Schriftfarbe -b Kastenfarbe -x on -o ausgang.png
- Skript hilfe
fliese-miniaturansichten -h
# Erstellen Sie ein Bild mit Miniaturansichten aus einem Video fliese-miniaturansichten -i eingang -s 00:00:00.000 -w 000 -t 0x0 -p 00 -m 00 -c farbe -f Schriftfarbe -b Kastenfarbe -x on -o ausgang.png -i eingang.(mp4|mkv|mov|m4v|webm) -s Suchen Sie in der Videodatei : Standard 00:00:05 -w Thumbnail-Breite : 160 -t Fliese layout format breite x höhe : Standard 4x3 -p Polsterung zwischen Bildern : Standard 7 -m Rand : Standard 2 -c Farbe = https://ffmpeg.org/ffmpeg-utils.html#color-syntax : Standard black -f Schriftfarbe : Standardmäßig weiß -b Kastenfarbe : Standardmäßig schwarz -x on : Standardmäßig deaktiviert, Zeitstempel anzeigen -o ausgang.png :optionales Argument # Wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Kachel-Datum-Uhrzeit.png verwendet
Wenn das gekachelte Bild nur ein Miniaturbild aus dem Video erstellt und der Rest des Bildes schwarz ist, Dann könnte das Problem die Bildrate des Videos sein
Sie können die Bildrate des Videos mit ffmpeg überprüfen
ffmpeg -i eingang.mp4
Wenn die Framerate 29,97 statt 30 beträgt, können Sie ffmpeg verwenden, um die Framerate zu ändern und das Problem zu beheben
ffmpeg -i eingang.mp4 -vf fps=fps=30 ausgang.mp4
Batch-Verarbeitung von Videos und Erstellen von Miniaturansichten aus den Videos und Kacheln in einem Bild
find . -type f -name "*.mp4" -exec sh -c \
'fliese-miniaturansichten -i "${0}" -s 00:00:10 -w 200 -t 4x4 -p 7 -m 2 -c white' \
"{}" \;
Trimmen von Videoclips und Audioclips
Beachten Sie, dass Sie zwei verschiedene Formate für Zeiteinheiten verwenden können: Sexagesimal (HOURS:MM:SS.MILLISECONDS, wie in 01:23:45.678) oder in Sekunden. Wenn ein Bruch verwendet wird, z. B. 02:30.05, wird dies als “5 Hundertstelsekunden” interpretiert, nicht als Frame 5. Zum Beispiel wäre 02:30,5 2 Minuten, 30 Sekunden und eine halbe Sekunde, was der Verwendung von 150,5 in Sekunden entspricht.
- Verwendung von Skripten
trimmen-clip -s 00:00:00.000 -i eingang.(mp4|mov|mkv|m4v|aac|m4a|wav|mp3) -t 00:00:00.000 -o ausgang.(mp4|aac|mp3|wav)
- Skript hilfe
trimmen-clip -h
# Trimmen Sie Video- oder Audioclips mit Millisekunden-Genauigkeit https://trac.ffmpeg.org/wiki/Seeking trimmen-clip -s 00:00:00.000 -i eingang.(mp4|mov|mkv|m4v|aac|m4a|wav|mp3) -t 00:00:00.000 -o ausgang.(mp4|aac|mp3|wav) -s 00:00:00.000 : Startzeit -i eingang.(mp4|mov|mkv|m4v|aac|m4a|wav|mp3) -t 00:00:00.000 : Anzahl Sekunden nach der Startzeit -o ausgang.(mp4|aac|mp3|wav) : optionales Argument # Wenn die Option nicht bereitgestellt wird, gilt die Standardeinstellung Name-eingeben-[start ende].(mp4|webm|aac|mp3|wav|ogg)
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. input-name-trimmed-date-time
Alle mp4-Dateien im aktuellen Verzeichnis stapelweise trimmen, von 00:00:00 bis 00:00:30
find . -type f -name "*.mp4" -exec sh -c \
'trimmen-clip -s 00:00:00 -i "${0}" -t 00:00:30' \
"{}" \;
Erstellen Sie eine GIF-Animation aus einem Video
- Verwendung von Skripten
vid2gif -s 00:00:00.000 -i eingang.(mp4|mov|mkv|m4v) -t 00:00:00.000 -f [00] -w [0000] -o ausgang.gif
- Skript hilfe
vid2gif -h
# Konvertieren Sie ein Video in eine GIF-Animation vid2gif -s 00:00:00.000 -i eingang.(mp4|mov|mkv|m4v) -t 00:00:00.000 -f [00] -w [0000] -o ausgang.gif -s 00:00:00.000 : Startzeit -i eingang.(mp4|mov|mkv|m4v) -t 00:00:00.000 : Anzahl Sekunden nach der Startzeit -f [00] : Bildrate -w [0000] : Breite -o ausgang.gif : optionales Argument # Wenn die Option nicht angegeben ist, wird standardmäßig input-name-gif-date-time.gif verwendet
Erstellen Sie eine Wellenform aus einer Audio- oder Videodatei und speichern Sie sie als PNG
- Verwendung von Skripten
wellenform -i eingang.(mp4|mkv|mov|m4v|webm|aac|m4a|wav|mp3) -o ausgang.png
- Skript hilfe
wellenform -h
# Erstellen Sie eine Wellenform aus einer Audio- oder Videodatei und speichern Sie sie als PNG wellenform -i eingang.(mp4|mkv|mov|m4v|webm|aac|m4a|wav|mp3) -o ausgang.png -i eingang.(mp4|mkv|mov|m4v|aac|m4a|wav|mp3) -o ausgang.png : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-Wellenform-Datum-Uhrzeit verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. Eingabename-Wellenform-Datum-Uhrzeit
Erstellen Sie Wellenformbilder aus allen MP4-Dateien im aktuellen Verzeichnis
find . -type f -name "*.mp4" -exec sh -c \
'wellenform -i "${0}"' \
"{}" \;
Erstellen Sie ein animiertes Webp-Bild aus einem Video mit ffmpeg
- Verwendung von Skripten
webp -i eingang -c 0-6 -q 0-100 -f 15 -w 600 -p none -o ausgang.webp
- Skript hilfe
webp -h
# Webp animiertes Bild webp -i eingang -c 0-6 -q 0-100 -f 15 -w 600 -p none -o ausgang.webp -i eingang -c komprimierungsstufe: 0 - 6: standard 4 -q qualität: 0 - 100 : standard 80 -f framerate: standard 15 -w breite: standard 600px -p voreingestellt: none|default|picture|photo|drawing|icon|text : standard none -o ausgang.webp : optionales argument # Wenn die Option nicht angegeben ist, wird standardmäßig input-name.webp verwendet
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
find . -type f -name "*.mp4" -exec sh -c 'webp -i "${0}"' "{}" \;
Wenden Sie mit den xfade-Filtern einen Übergang zwischen zwei Clips an
- Verwendung von Skripten
xfade -a clip1.(mp4|mkv|mov|m4v) -b clip2.(mp4|mkv|mov|m4v) -d dauer -t Übergang -f versetzt -o ausgang.mp4
- Skript hilfe
xfade -h
# ffmpeg Xfade-Übergänge xfade -a clip1.(mp4|mkv|mov|m4v) -b clip2.(mp4|mkv|mov|m4v) -d dauer -t Übergang -f versetzt -o ausgang.mp4 -a clip1.(mp4|mkv|mov|m4v) : erster Clip -b clip2.(mp4|mkv|mov|m4v) : zweiter Clip -d dauer : Übergangszeit -t übergang : Übergang -f versetzt : versetzt -o ausgang.mp4 : optionales Argument # wenn die Option nicht bereitgestellt wird, wird standardmäßig Eingabename-xfade-Datum-Uhrzeit verwendet + übergänge circleclose, circlecrop, circleopen, diagbl, diagbr, diagtl, diagtr, dissolve, distance fade, fadeblack, fadegrays, fadewhite, hblur, hlslice, horzclose, horzopen, hrslice pixelize, radial, rectcrop, slidedown, slideleft, slideright, slideup, smoothdown smoothleft, smoothright, smoothup, squeezeh, squeezev, vdslice, vertclose, vertopen, vuslice wipebl, wipebr, wipedown, wipeleft, wiperight, wipetl, wipetr, wipeup
Konvertieren Sie ein Bild in ein Video und wenden Sie den Ken Burns-Effekt auf den Clip an
- Verwendung von Skripten
zoompan -i eingang.(png|jpg|jpeg) -d (000) -z (in|out) -p (tl|c|tc|tr|bl|br) -o ausgang.mp4
- Skript hilfe
zoompan -h
# ken burns wirkung zoompan -i eingang.(png|jpg|jpeg) -d (000) -z (in|out) -p (tl|c|tc|tr|bl|br) -o ausgang.mp4 -i = eingang.(png|jpg|jpeg) -d = dauer : von 1-999 -z = zoomen : in or out -p = position : Zoomen Sie auf die unten aufgeführte Position -o = ausgang.mp4 : optionales Argument # Standard ist Eingabename-Zoompan-Datum-Uhrzeit +------------------------------+ +tl tc tr+ + + + c + + + +bl br+ +------------------------------+
+------------------------------+
+tl tc tr+
+ +
+ c +
+ +
+bl br+
+------------------------------+
Stapelverarbeitungsdateien im aktuellen Arbeitsverzeichnis
Beachten Sie, dass wir die Option -o weglassen, um den Standardausgabenamen zu verwenden. Eingabename-Zoompan-Datum-Uhrzeit
Batch-Verarbeitung aller PNG-Dateien im aktuellen Arbeitsverzeichnis, Wenden Sie das Zoompan-Skript mit einer Dauer von 5 Sekunden an, zoomen Sie in die Mitte des Bildes
find . -type f -name "*.png" -exec sh -c \
'zoompan -i "${0}" -d 5 -z in -p c' \
"{}" \;