Come estrarre immagini dal file video?


Risposte:


20

Prova con ffmpeg

ffmpeg -i inputfile.avi -r 1 -f image2 image-%3d.jpeg

Puoi leggere la documentazione qui

  • -i inputfile.avi Il file di input video è inputfile.avi
  • -r 1estrarre 1 immagine al secondo del video. Sostituisci quel numero per il numero di immagini che vuoi ottenere al secondo.
  • -f image2 forzare il formato di output delle immagini, è probabile che tu possa ometterlo poiché il programma tenta di scegliere il formato delle immagini di output dall'estensione del file.
  • image-%3d.jpeg nome delle immagini di output,% 3d indica che le immagini generate in uscita avranno un numero di sequenza di 3 decimali, se si desidera il numero riempito con zero è sufficiente utilizzare% 03d.

1
il tuo collegamento sembra essere rotto
Nolwennig,

@Nolwennig. Risolto, non specifico come il precedente ma almeno è la documentazione ufficiale e difficilmente può essere rotto.
YoMismo,

3
-r 1è per il numero di immagini al secondo. Quindi per 60ips, o 24, lo è -r 24. E per limitare l'estratto, lo è -ss [start] -t [duration].
Sandburg,

Grazie, lavora bene su Xubuntu
Indacochea Wachín il

3

Ho appena scaricato l'ultima versione di VLC per Windows 32 - 2.1.2 Scuotivento e funziona benissimo per farlo.

passi:

1 - Fare clic su Strumenti> Preferenze e fare clic sul pulsante di opzione Tutto

2 - Scorri verso il basso e fai clic sul segno + accanto a Video per espanderlo

3 - Scorri verso il basso e fai clic su Filtro scene e inserisci le informazioni per il prefisso Percorso directory (dove vuoi salvare i fotogrammi). Non fare clic su Salva.

4 - Scorri verso l'alto e fai clic sulla parola Video sotto Filtri

5 - Fare clic sulla casella di controllo per Filtro video scene e fare clic su Salva.

6 - Apri ed esegui un video e salverà .png

7 - Per interrompere il salvataggio dei fotogrammi, tornare al passaggio 5 e deselezionare Filtro video scena. Facile davvero una volta che sai dove trovare le impostazioni.


0

Spero che questo aiuto

#!/bin/bash
source_dir="."
output_dir="."
input_file_types=(avi wmv flv mkv mpg mp4)
output_file_type="jpg"

convert() {
        echo "" | ffmpeg -ss $ss -y -i "$in_file" -an -f image2 -vframes 1 "$output_dir/$out_file"
}

for input_file_types in "${input_file_types[@]}"
do

        find "$source_dir" -name "*.$input_file_types" -print0 | while IFS= read -r -d $'\0' in_file
        do
                echo "Processing…"
                echo ">Input  "$in_file
                # Replace the file type
                out_file=$(echo $in_file|sed "s/\(.*\.\)$input_file_types/\1$output_file_type/g")
            echo ">Output "$out_file

# get video duration
#    fulltime=`ffmpeg -i "$in_file" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`;
#    hour=`echo $fulltime | cut -d ':' -f 1`;
#    minute=`echo $fulltime | cut -d ':' -f 2`;
#    second=`echo $fulltime | cut -d ':' -f 3 | cut -d '.' -f 1`;

#    seconds=`expr 3600 \* $hour + 60 \* $minute + $second`;
#    ss=`expr $seconds / 2`; # from the middle of video



    ss=`expr 10`; # from the 10sec of video



    # Convert the file
                convert "$in_file" "$out_file"

                if [ $? != 0 ]
                then
                    echo "$in_file had problems" >> ffmpeg-errors.log
                fi

                echo ">Finished "$out_file "\n\n"
        done
done

0

In VLC è possibile fare clic con il tasto destro, Video, Scatta istantanea


Questo suona un po 'laborioso se si necessitano immagini per ad esempio ogni fotogramma della scena.
Kusalananda
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.