Tüm videoyu okumadan bir videodan belirli aralıklarla küçük resimler oluşturun [FFMPEG]


1

Kısa sorun : Bir video URL'sinden bazı ekran görüntülerini belirli zamanlarda çekmek istiyorum ancak tüm videoyu okumak istemiyorum.

Diyelim ki bazı url’lerde depolanan bir videom var https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4 ). Videonun boyutu büyük ancak videoda arayabiliriz.

Şimdi videonun 4 ekran görüntüsünü / küçük resmini çekmek istiyorum. Videonun boyutu 100s ise, 20s, 40s, 60s ve 80s ekran görüntüleri çekmek istiyorum.

Öğreticisini kullanarak wiki: Videonun her X saniyesinde bir küçük resim görüntüsü oluşturur bunu yapabilirim

ffmpeg -i 'https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4' -vf fps=1/20 img%03d.jpg

Ancak bu yaklaşımla ilgili sorun, ekran görüntülerini döndürmeden önce tüm girişi okumaktır. Ancak girdi aranabilir olduğu için bu israf gibi görünüyor. Daha iyi bir yaklaşım pozisyonları aramak ve onları almaktır. Şimdilik gibi bir şey kullanıyoruz

for i in 20 to 80 step 20
    ffmpeg -noaccurate_seek -ss {i} -i 'https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4' -vframes 1 out-{i}.png

Bu iş gibi görünüyor ama yine de her ffmpeg'i çalıştırmak biraz zaman alıyor ve her ffmpeg, gereksiz görünen aynı video URL'sinin başlığının kodunu çözüyor. Tek bir ffmpeg çağrısında bu yinelenen eserlerin kaldırılabilmesi için herhangi bir yol var mı?

Not; Sadece ffmpeg kullanarak bir cevaba gerek yoktur. Ayrıca mpv / mplayer veya vlc veya Linux'ta bulunan herhangi bir oynatıcı / dönüştürücüyü kullanabiliriz.

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.