Utwórz miniaturę z wideo


10

Jak mogę zrobić proste nagranie z filmu. Najlepiej z wiersza poleceń?

Pomysł: weź 9 migawek dla 9 razy (nawet na osi czasu) razy i zapisz je jako pliki JPG

Przykład:

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
   |   |

Jaki jest najlepszy program do tego? Czy są jakieś programy typu open source?

Odpowiedzi:


5

ffmpeg to doskonałe narzędzie typu open source do manipulacji filmami, w tym do wyodrębniania klatek.

Aby wyodrębnić pojedynczą klatkę z określonego znacznika czasu, możesz użyć polecenia like

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

-r jest liczbą klatek na sekundę. Możesz także użyć polecenia like

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

aby uzyskać jedną klatkę co minutę (przy założeniu wideo 24 FPS). % 05d oznacza, że ​​liczba porządkowa każdego obrazu miniatury powinna być sformatowana przy użyciu 5 cyfr.

Jeśli chcesz łączyć obrazy jako montaż (siatkę), możesz użyć imagemagick po wyodrębnieniu ramek za pomocą ffmpeg.



0

Mój przypadek użycia to tylko jedna miniatura z filmu, tylko jeden plik do użycia jako <video>plakatu z tagiem. Więc jaki byłby szybki sposób, aby to zrobić?

Za pomocą ffmpegmożesz to zrobić:

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

Który daje ramkę blisko sekundę 123z video.mp4zapisywane jako poster.jpg.

Problem, jak widać, polega na tym, że musimy wiedzieć, która sekunda jest właściwa.

Aby utrzymać nasze zależności na niskim poziomie, użyjemy do tego samego ffmpeg:

# 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% wideo wydaje się być powszechnym wyborem, ale możesz zrobić to 33% lub 50%.

Oto skrypt, który to robi .


0

vcsi to narzędzie wiersza polecenia napisane w języku Python, którego można użyć do utworzenia siatki migawek 3 na 3 za pomocą następującego polecenia:

vcsi -g 3x3 video.mkv -o output.jpg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.