Komut satırı için küçük resim galerileri oluşturmak için hızlı araç


15

Küçük resim galerileri, yani böyle bir şey oluşturmak için gframecatcher kullanın:

resim açıklamasını buraya girin

Ancak bu bir GUI aracı ve ben bir dizin yapısında her video için özyinelemeli bir galeri oluşturmak istiyorum, bu yüzden bunu yapmak için hızlı bir komut satırı aracı arıyorum.

Yanıtlar:


28

Görüntü yakalamalarını çekin (bunlar 100 piksel yüksekliğinde ve en boy oranını koru), oran ( -r) saniyede (bu ~ 5 dakikada bir kare verir), bu da çıktı görüntüsüne zaman damgası ekler.

ffmpeg  -i MOVIE.mp4 -r 0.0033 -vf scale=-1:120 -vcodec png capture-%002d.png

Ardından ImageMagickgaleri resminizi oluşturmak için kullanın :

montage -title "Movie Name\nSubtitle" -geometry +4+4 capture*.png output.png

7
Oran ( -r) için kesirler kullanabilirsiniz . Bu, süreleri belirtmeyi daha kolay ve daha doğru hale getirir. 5dk = 300 saniye ffmpeg -i MOVIE.mp4 -r 1/300 -vf scale=-1:120 -vcodec png capture-%02d.png.
DutGRIFF

avconvkullanılabilir olmadığınızda aynı şekilde çalışır ffmpeg(bazı Ubuntu sürümleri).
Ken Sharp

2
Bu çalışır, ancak tüm video dosyası boyunca sıhhi tesisat gerektirir. superuser.com/questions/538112/… , anlamlı küçük resimler bulmaya çalışan ve birkaç kare almak için tüm videoyu oturmak ve işlemekten kaçınmak için bazı örnekler sunar.
Skrylar

Bu, görüntüye zaman damgası eklemez.
felwithe

Bunu bir dizindeki bir grup video için toplu olarak nasıl yaparsınız?
Paul Jones

13

VCS - Video İletişim Sayfası adı verilen kullanımı kolay bir unix komut satırı bash betiği kullanmayı seviyorum. Resmi sayfaları: http://p.outlyer.net/vcs/

Bir GUI'den daha kolay kullanmak çok daha kolay

'' Video iletişim sayfaları (önizlemeler), yani küçük resimler veya video önizlemeleri oluşturmak için kullanılan bir bash betiğidir. Mplayer ve ffmpeg tarafından desteklenen herhangi bir video bu komut dosyası tarafından kullanılabilir. '' Sisteminizde bir ya ffmpegda mplayerkurulu olması gerekir.

Kullanımı:

vcs input-filename -U0 -i 1m -c 3 -H 200 -a 300/200 -o save-filename.jpg

Komut nasıl çalışır?

İnput-filname dosyasını video dosyanızın adına göre düzenleyin!

  • -U0(altbilgide ad yok - veya ana bilgisayar adını görüntülüyor - bunun harf değil sıfır olduğunu unutmayın O)

  • -i 1m(yakalama zaman aralığını dakika cinsinden ayarlar - bu durumda her dakika - -nbunun yerine kullanabilirsiniz , örneğin yakalama sayısını ayarlar, örneğin -n 2121 görüntü oluşturur, ancak her ikisini de kullanmaz)

  • -c sütun sayısını ayarlar (burada 3 sütun var)

  • -H 200 -a 300/200 (boyutu ve boyutu ayarlar, böylece dosya çok büyük değildir - her ikisini de yapmanız gerekir)

  • -o filename.jpg( çok büyük .jpgolduğu için varsayılan olarak kullanın .png- ve dosya adını istediğiniz biriyle değiştirin!)


7

Bu faturaya uygun gibi görünüyor , ücretsiz ve açık kaynak ve hatta Windows üzerinde çalışıyor :)

Hatta belirli aralıklarla herhangi bir çerçeveyi körü körüne seçmek yerine, gelişmiş şeyler var, yeterince yakın olan ancak çok bulanık görünmeyenleri seçebilir, bunu yapmak yerine:

ekran görüntüsü

Bunu yapmak için bir parametre ( -D6) iletebilirsiniz :

daha iyi ekran görüntüsü

Artı ben gerçekten kenarlık yok, böylece görüntüler biraz daha büyük olabilir.


7

Ffmpeg forumundan bir çözüm var.

Birden çok ekran görüntüsü oluşturmak ve bunları tek bir görüntü dosyasına (fayans oluşturmak) yerleştirmek için FFmpeg'in döşemeli video filtresini şu şekilde kullanabilirsiniz:

ffmpeg -ss 00:00:10 -i movie.avi -vf 'select=not(mod(n\,1000)),scale=320:240,tile=2x3' out.png

Bu, filme 10 saniye arayacak, her 1000'inci kareyi seçecek, 320x240 piksele ölçeklendirecek ve çıkış görüntüsünde 2x3 kare oluşturacak ..png.

Orijinal yayın burada - http://ffmpeg.gusari.org/viewtopic.php?f=25&t=597


Ayrıca, ffmpeg aynı sözdizimiyle "kırpmayı" destekliyor gibi görünüyor.
bazı fikirler

4

Bu, mac'umdan AWS EC2'yi kullanarak basit bir iletişim sayfasını işlediğim gibi.

Adım # 1: Amazon Web Services'ta EC2 Örneği Oluşturun

Kullandım:

Amazon Linux AMI 2015.03.1 (HVM), SSD Volume Type - ami-0d4cfd66
t2.medium

2. Adım: Örneği yapılandırın

Bunların hepsi kolaylık olması için mac'umdan çalıştırılır, ancak EC2 komut satırından yalnızca "sudu su ..." komutlarını da çalıştırabilirsiniz.

ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; curl -O http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.latest.tar.gz"
ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; gunzip ffmpeg.static.64bit.latest.tar.gz"
ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "sudo su root; tar -xf ffmpeg.static.64bit.latest.tar"

11.22.33.44 yerine EC2 IP'nizi değiştirme.

3. Adım: Video işleme

Videoyu gönderin:

rsync -Pav -e 'ssh -i /local/path/to/key/your_ec2_key.pem pem' /Users/mdouma/Desktop/myVideo.mov ec2-user@11.22.33.44:/home/ec2-user/

Bir iletişim sayfasına işleyin:

ssh -i "/local/path/to/key/your_ec2_key.pem" ec2-user@11.22.33.44 "rm -f out.png ; ./ffmpeg -ss 00:00:00 -i myVideo.mov -vf 'select=not(mod(n\,1)),scale=113:111,crop=111:111,tile=18x36' out.png"

/ Users / mdouma'yı yerel kökünüzle değiştirin Yalnızca her 7. kareyi istiyorsanız ", 1" i başka bir numarayla değiştirin, örneğin ", 7". 111'i istediğiniz boyuta getirin

Mac'ime geri kopyala:

rsync -Pav -e 'ssh -i /local/path/to/key/your_ec2_key.pem'  ec2-user@11.22.33.44:/home/ec2-user/out.png  /Users/mdouma/Desktop/out.png
open /Users/mdouma/Desktop/out.png

Bu harika bir ipucu. Bu sudo suamaçsız olmasına rağmen dikkat edin .
Ken Sharp

2
Bunu neden ec2'ye gönderiyorsunuz? Neden sadece Mac'inizde yerel olarak çalıştırmıyorsunuz? video dosyaları
GBs

4

Bu araç bana yardımcı oldu (2019-02) - ve korunuyor. Birçok seçenek - ızgara, kalite, yazı tipleri, renkler, kenarlık, aralık, ...

https://github.com/amietn/vcsi

Video iletişim sayfaları oluşturun. Bir video iletişim sayfası, ızgara üzerinde düzenlenmiş video yakalama küçük resimlerinden oluşan bir görüntüdür.

Sadece ffmpeg ve python'a ihtiyacınız var.


Bu çok iyi - teşekkürler!
Ashley


1

Totem - 14.04 ve Ubuntu'nun bazı önceki sürümleri için varsayılan video oynatıcı - basit seçeneklere sahip menü seçeneğine sahiptir (Düzen menüsü altında, "Ekran Görüntüsü Galerisi Oluştur ..."). Ayrıca, nasıl kullanılacağını anlatan bir man sayfasına sahip olan "totem-video-thumbnailer" adlı bir komut satırı eşdeğeri (ish) vardır; Belli bir üstündeki herhangi bir dosya için bir küçük resim ekran galerisi (veya yukarıda da belirtildiği gibi iletişim sayfası) otomatik olarak oluşturmak için find komutundan (isimleri boşluklu dosyaları ayırmamaya dikkat ederek) çıktı kullanan basit bir bash betiği yazdım henüz bir dizinde bulunmayan bir dizindeki boyut.

Herkes bunun için avcılık sanılan varsa ben ~ jgbreezer altında benim github yükleyebilirsiniz. Ffmpeg ve diğer şeyleri kullanan çözümler daha esnek ve güvenilir olabilir; Bazı kareleri bulma konusunda totem komutundan hata çıktıları alıyorum ama çoğu zaman yine de çalışıyor gibi görünüyor.


0

Aynı şeyi istedim ve googling ffmpeg ve imagemagick kullanarak sona erdi. 'Hızlı' IMHO DEĞİL. Sonra SlickSlice adlı bir bash betiği bulundu (son güncelleme 2008 ancak dün itibariyle mükemmel çalıştı). Yükledi ve yapılandırma dosyasını ve komut dosyasının kendisini kullanarak benim zevkime göre özelleştirdi. Komut dosyası bu arada ImageMagick ve MPlayer kullanıyor.

Başarılı bir şekilde kullandıktan sonra ayrıntılı bir nasıl yapılır ve özelleştirme yaptım. Başarıyla yüklendikten sonra, komut kadar basit bir video zaman çizelgesi küçük resmi oluşturabilirsiniz:
slickslice -x "InputFile.mp4"(varsayılan 4 sütun x 15 satır) veya
slickslice -x "InputFile.mp4" -S 6x10(6 sütun x 10 satır için).

Olarak çıktı SLICKSLICED_InputFile.mp4.jpegve ben InputFile.mp4-screen.jpegbash betiğin kendisini düzenleyerek üretmek için özelleştirilmiş .

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.