Video dosyasından görüntüler nasıl ayıklanır?


Yanıtlar:


20

İle deneyin ffmpeg

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

Belgeleri buradan okuyabilirsiniz

  • -i inputfile.avi Video giriş dosyası inputfile.avi
  • -r 1videonun saniyede 1 görüntüsünü çıkarın. Saniyede elde etmek istediğiniz görüntü sayısı için bu sayıyı değiştirin.
  • -f image2 Görüntü çıktı formatını zorla, program dosya uzantısından çıktı görüntüleri formatını seçmeye çalıştığından bunu atlayabilirsiniz.
  • image-%3d.jpeg çıktı resimlerinin adı,% 3d çıktı üretilen görüntüler orada 3 ondalık bir sıra numarası olacağını gösterir, eğer sıfırla doldurulmuş sayının sadece% 03d kullanmanız gerekir.

1
bağlantınız kopuk görünüyor
Nolwennig

@Nolwennig. Düzeltildi, öncekine özgü değil, en azından resmi dokümantasyon ve kırılması zor.
YoMismo

3
-r 1saniye başına görüntü sayısı içindir. Yani 60ips veya 24 için -r 24. Ve özü sınırlamak için -ss [start] -t [duration].
Sandburg

Teşekkürler, Xubuntu
Indacochea Wachín

3

VLC for Windows 32 - 2.1.2 Rincewind'in en son sürümünü indirdim ve bunu yapmak iyi çalışıyor.

Adımlar:

1 - Araçlar> Tercihler'i tıklayın ve radyo düğmesini tıklayın Tümü

2 - Aşağı kaydırın ve genişletmek için Video'nun yanındaki + işaretini tıklayın

3 - Aşağı kaydırıp Sahne Filtresi'ne tıklayın ve Dizin Yolu öneki (kareleri kaydetmek istediğiniz yer) için bilgileri girin. Kaydet'i tıklamayın.

4 - Yukarı kaydırın ve Filtreler altındaki Video kelimesine tıklayın

5 - Sahne videosu filtresi onay kutusunu tıklayın ve Kaydet'i tıklayın.

6 - Bir video açın ve çalıştırın ve .png

7 - Kareleri kaydetmeyi durdurmak için 5. adıma dönün ve Sahne videosu filtresinin işaretini kaldırın. Ayarları nerede bulacağınızı bildiğinizde gerçekten kolay.


0

Umarım bu yardım

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

VLC'de sağ tıklayabilirsiniz, Video, Anlık Görüntü Al


Örneğin, sahnedeki her kare için görüntülere ihtiyaç duyulursa, bu biraz emek yoğun bir iştir.
Kusalananda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.