Buat Gambar Kecil dari video

11

Bagaimana saya bisa membuat tangkapan sederhana dari video. Lebih disukai dari baris perintah?

Ide: ambil 9 snapshot untuk 9 kali bahkan (pada timeline) kali, dan simpan sebagai JPG

Contoh:

Movie length = 10 min
T1= snapshot of 1 min
T2= snapshot of 2 min
......
T9= snapshot of 9 min
   |   |
 T1| T2| T3
---+---+---
 T4| T5| T6
---+---+---
 T7| T8| T9
   |   |

Apa program terbaik untuk melakukan ini? Apakah ada program opensource?

Siga
sumber

Jawaban:

5

ffmpeg adalah alat open source yang sangat baik untuk memanipulasi video, termasuk mengekstraksi bingkai.

Untuk mengekstrak bingkai tunggal dari cap waktu tertentu, Anda dapat menggunakan perintah seperti

ffmpeg -i video.avi -r 1  -t 00:01:00 -f image2 image%05d.png

-r framerate Anda juga dapat menggunakan perintah like

ffmpeg -i video.avi -r 1/1440 -f image2 image%05d.png

untuk mendapatkan satu frame setiap satu menit (dengan asumsi video 24FPS). % 05d berarti bahwa nomor urut setiap gambar kecil harus diformat menggunakan 5 digit.

Jika Anda ingin menggabungkan gambar sebagai montase (kisi Anda), Anda dapat menggunakan imagemagick setelah mengekstraksi bingkai menggunakan ffmpeg.

Olli
sumber
2

Ini bukan program baris perintah, tetapi Anda juga dapat menggunakan qframecatcher .

Untuk ubuntu / debian persyaratannya adalah: sudo apt-get install libqt4-dev libxine-dev build-essential

wget http://download.berlios.de/qframecatcher/qframecatcher-0.4.1.tar.gz
tar xzf qframecatcher-0.4.1.tar.gz
cd qframecatcher/src
qmake
make
./qframecatcher

Sumber: http://blog.radevic.com/2008/06/how-to-create-movie-or-video-frame.html

Savvas Radevic
sumber
1

vcsi adalah alat baris perintah yang ditulis dengan Python yang dapat digunakan untuk membuat snapshot 3 dengan 3 kotak dengan perintah berikut:

vcsi -g 3x3 video.mkv -o output.jpg
zx228
sumber
0

Kasing penggunaan saya hanya satu thumbnail dari video, hanya satu file untuk digunakan sebagai <video>poster tag. Jadi, apa cara cepat untuk membuat ini?

Dengan ffmpeg, Anda dapat melakukan ini:

ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

Yang akan memberikan frame dekat kedua 123dari video.mp4disimpan sebagai poster.jpg.

Masalahnya, seperti yang Anda lihat, adalah kita perlu tahu mana yang benar.

Untuk menjaga agar dependensi kami tetap rendah, kami akan menggunakan ffmpeg sendiri untuk ini:

# Get the time as h:m:s (non-padded)
l=$(ffmpeg -i video.mp4 2>&1 | grep Duration: | sed -r 's/\..*//;s/.*: //;s/0([0-9])/\1/g')
# Convert that into seconds
s=$((($(cut -f1 -d: <<< $l) * 60 + $(cut -f2 -d: <<< $l)) * 60 + $(cut -f3 -d: <<< $l)))
# Get frame at 25% as the thumbnail
ffmpeg -ss $((s / 4)) -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

25% video sepertinya pilihan umum, tetapi Anda bisa membuatnya 33% atau 50% juga.

Inilah skrip yang melakukan ini .

Camilo Martin
sumber