74 votes

Comment fusionner plusieurs vidéos (plus de deux) sur Ubuntu ?

Je veux fusionner des vidéos par lots de vingt (20) chacune. Je utilise un ordinateur Linux. Les vidéos sont au format mp4 et de qualité moyenne. Certains ont même le flux audio manquant. J'ai essayé jusqu'à présent ffmpeg, mencoder, cvlc/vlc et MP4Box. Je veux écrire un script en ligne de commande pour y parvenir, car je fais du traitement par lots.

Le problème principal est que certaines des solutions que j'ai essayées fonctionnent bien pour deux vidéos, certaines fonctionnent bien pour des vidéos avec un flux audio et d'autres fonctionnent bien pour une autre sous-ensemble de mon ensemble de vidéos. Cependant, je n'ai pas réussi à trouver une solution globale pour cette tâche.

2voto

passerby51 Points 121

LossLessCut fonctionne très bien pour ça. Rapide et sans douleur.

2voto

Frade Points 1689

J'ai écrit un wrapper autour de ffmpeg appelé vidmerger, qui permet de fusionner très facilement plusieurs vidéos à l'intérieur d'un dossier, par exemple pour fusionner tous les fichiers mp4 à l'intérieur du répertoire actuel, il suffit d'exécuter :

vidmerger .

0voto

Pieter Points 375

Mon script, purement en bash et ffmpeg. Réencode les fichiers donnés en ligne de commande en un seul.

Requiert que les fichiers aient la même résolution. Accepte une rotation de métadonnées différente, ce que ffmpeg concat: ne fait pas.

rm ffmpeg-concat-output.mkv

FILE_COUNT=$#
INPUTS=""
FILTER=""
INDEX=0
for FNAME in $@; do
    echo "Traitement de ${FNAME}"
    INPUTS="${INPUTS} -i $FNAME"

    if [ -z "${FILTER}" ]; then
        FILTER="[$INDEX:v:0] [$INDEX:a:0]"
    else
        FILTER="${FILTER} [$INDEX:v:0] [$INDEX:a:0]"
    fi
    let INDEX+=1
done

COMMAND="ffmpeg ${INPUTS} \
    -filter_complex '${FILTER} \
        concat=n=${INDEX}:v=1:a=1 [v] [a]' \
    -map '[v]' -map '[a]' \
    ffmpeg-concat-output.mkv"

#   -af 'volume=15dB' # ne fonctionnera pas avec -filter_complex

bash -c "${COMMAND}"

0voto

Antonello Points 679

J'ai créé un script Python qui, en utilisant moviepy, peut également concaténer des sous-segments (utile si vous souhaitez par exemple supprimer certaines parties d'une vidéo).

Utilisez-le avec:

vcat -i inputfile1,inputfile2[début-fin],... -o

-2voto

ieplugin Points 216

En plus de la réponse de Maythux, à partir de :

Quelques conteneurs multimédias (MPEG-1, MPEG-2 PS, DV) permettent de concaténer des vidéos en concaténant simplement les fichiers qui les contiennent.

Autrement dit, si les vidéos à concaténer utilisent l'un des conteneurs vidéo mentionnés ci-dessus (auquel j'ajouterai MPEG-4 Part 14 pour mon expérience personnelle), vous pourriez simplement :

cat video1.ext video2.ext video3.ext > video4.ext

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X