Gibt es eine Möglichkeit, einem Video über die Befehlszeile einen Effekt „Überblenden in Schwarz“ hinzuzufügen?

9

Ich habe ein Skript zum Codieren von Videos (mit Mencoder), aber es gibt eine Möglichkeit, ein einfaches "Ausblenden / Einblenden in Schwarz" über die Befehlszeile hinzuzufügen, vorzugsweise kostenlos (wie in Open Source).

Es könnte entweder unter Windows oder Ubuntu Linux sein.

Manu
quelle
1
Hat mmsuper8 scheint für Sie arbeiten? Bitte geben Sie das Betriebssystem usw. an
slhck
Es tut uns leid. Ubuntu oder sieben.
Manu
Machen Sie mmsuper8 als Ihre Antwort, ich werde Sie abstimmen :)
Manu

Antworten:

1

Das einzige, was ich - basierend auf der Befehlszeile - finden konnte, ist mmsuper8ein Linux-Tool.

Insbesondere enthält es das mmsuper8fadeTool, das für Sie nützlich sein könnte.

Am besten bearbeiten Sie diese Frage und geben ein Beispiel an, das für Sie funktioniert hat!

slhck
quelle
14

Ein aktuelles ffmpeg mit dem Videofilter 'Fade' kann dies tun. Leider sind auf dem ffmpeg in den Ubuntu-Repos aus irgendeinem Grund keine Filter aktiviert, sodass Sie sie von einem anderen Ort beziehen müssen (siehe hier ).

Einblenden von Schwarz ab Bild 0 über 50 Bilder (2 Sekunden bei 25 Bildern pro Sekunde):

ffmpeg -i input.mp4 -filter:v 'fade=in:0:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

So blenden Sie ab Bild 21000 (14 Minuten bei 25 Bildern pro Sekunde) über 50 Bilder aus:

ffmpeg -i input.mp4 -filter:v 'fade=out:21000:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

Sie können beide zu einer Filterkette kombinieren:

ffmpeg -i input.mp4 -filter:v 'fade=in:0:50,fade=out:21000:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

Wie Sie diesen Beispielen entnehmen können, müssen Sie bei Verwendung eines Videofilters Videos transkodieren. Da ffmpeg und mencoder viele Bibliotheken gemeinsam nutzen, sollte es ziemlich einfach sein, Ihre Skripte neu zu schreiben, um ffmpeg anstelle von mencoder zu verwenden und eine unnötige zusätzliche Codierung zu vermeiden. Ich bin mir ziemlich sicher, dass Sie mit Mencoder dasselbe erreichen können, aber ich kenne die Mencoder-Syntax nicht.

Übelsuppe
quelle
6

Ich habe dieses Bash-Skript, um das Ende von Filmen (Audio + Video) automatisch auszublenden:

#!/bin/bash

# Audio + vidéo fade out at the end of mp4 files

# 2015-09-09 19:07:17.0 +0200 / Gilles Quenot

# length of the fade out
fade_duration=2 # seconds

if [[ ! $2 ]]; then
    cat<<EOF
Usage:
    ${0##*/} <input mp4> <output mp4>
EOF
    exit 1
fi

for x in bc awk ffprobe ffmpeg; do
    if ! type &>/dev/null $x; then
        echo >&2 "$x should be installed"
        ((err++))
    fi
done

((err > 0)) && exit 1

duration=$(ffprobe -select_streams v -show_streams "$1" 2>/dev/null |
    awk -F= '$1 == "duration"{print $2}')
final_cut=$(bc -l <<< "$duration - $fade_duration")
ffmpeg -i "$1" \
    -filter:v "fade=out:st=$final_cut:d=$fade_duration" \
    -af "afade=t=out:st=$final_cut:d=$fade_duration" \
    -c:v libx264 -crf 22 -preset veryfast -strict -2 "$2"

Verwendungszweck :

FadeOutMp4 <input mp4> <output mp4>
Gilles Quenot
quelle