C'è un modo per aggiungere un effetto "dissolvenza al nero" a un video, dalla riga di comando?


9

Ho uno script per codificare i video (usando mencoder), ma c'è un modo per aggiungere un semplice "dissolvenza / in nero" dalla riga di comando, preferibilmente libero (come in open source).

Potrebbe essere su Windows o Ubuntu Linux.


1
Does mmsuper8 sembra funzionare per voi? Si prega di indicare il sistema operativo, ecc.
slhck

Scusate. Ubuntu o sette.
Manu,

Fai di mmsuper8 la tua risposta, ti voterò :)
Manu,

Risposte:


1

L'unica cosa che ho potuto trovare - in base alla riga di comando - è mmsuper8uno strumento Linux.

In particolare, presenta lo mmsuper8fadestrumento, che potrebbe essere utile per te.

La cosa migliore sarebbe se modifichi questa domanda e fornissi un esempio che ha funzionato per te!


14

Un ffmpeg recente con il filtro video "dissolvenza" può farlo. Sfortunatamente, ffmpeg nei repository di Ubuntu non ha filtri abilitati per qualche motivo insano, quindi dovrete ottenerlo da qualche altra parte (vedi qui ).

Per sfumare dal nero, iniziando dal fotogramma 0, oltre 50 fotogrammi (2 secondi a 25 fps):

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

Per sfumare a partire dal fotogramma 21000 (14 minuti a 25 fps), oltre 50 fotogrammi:

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

Puoi combinare i due in una filterchain:

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

Come puoi vedere da questi esempi, devi transcodificare i video quando usi un filtro video. Poiché ffmpeg e mencoder condividono molte librerie, dovrebbe essere abbastanza facile riscrivere i propri script per utilizzare ffmpeg invece di mencoder ed evitare una codifica aggiuntiva non necessaria. Sono abbastanza sicuro che puoi ottenere la stessa cosa in mencoder, ma non conosco la sintassi di mencoder.


6

Ho questo script bash per sfumare automaticamente la fine dei film (audio + video):

#!/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"

Utilizzo:

FadeOutMp4 <input mp4> <output mp4>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.