İstenilen kareleri çıkarmak için -c copy komutunu ffmpeg içinde kullanma


0

İyi günler.

Şu anda gözetim videosunun özetini yapmak için bir proje üzerinde çalışıyorum. Fikir OpenCV kullanarak çerçeveleri okumak, ön plan tespitini yapmak ve kişiyi derin öğrenme yöntemiyle sınıflandırmaktır.

X264 ile kodlama işlemcinin büyük kaynaklarını aldığından, kodlamayı önlemek için ffmpeg dosyasında -c kopyasını kullanmak istiyorum. Hareketli kişiyi veya karşılık gelen zaman damgalarını içeren karelerin indekslerini tanıyabilirim, kaynak videodan kod dönüştürmeden bir sonuç videosu oluşturmak için kopya kodeğini kullanabileceğim bir yol var mı?


İnternette aradım ve videoyu zaman damgasına bölmenin ve ardından onları concat ile birleştirmenin bir yolunu buldum. Ancak, videolar H264 kodlu olduğundan, ana kare problemini nasıl çözeceğimi bilmiyorum, bundan başka bir yolu var mı?
Don Zhang,

1
bu yardımcı olabilir ( stackoverflow.com/a/11175851/127971 ), aynı sorunu buldum, bir videoyu parçalara ayırırken, tekrar yapıştırdığınızda, video / ses sorunsuz bir şekilde geçiş yapmaz Bir sonraki parçaya, muhtemelen anahtar karelere bölmediğiniz için. Düzgün bir videoya sahip olmak için videonun tamamını yeniden kodlamak zorunda kaldım. Bu, bölünmenin nasıl çalıştığından dolayı daha fazladır ve bitiştirme ile ilgili bir sorun değildir.
michael

Teşekkür ederim, concat kullanma yöntemlerine bakacağım
Don Zhang

Yanıtlar:


0

Hayır, giriş videosunun yalnızca tek tek karelerini alamazsınız. Bu çerçeveler, diğer çerçevelere referans verecek ve kod çözme işlemi gerektirecek şekilde kodlanabilir. Giriş videonuz yalnızca I karelerinden oluşmadıkça yeniden kodlamadan kaçınamazsınız.

Gerekli kareleri analiz etmek için videonuzu OpenCV ile okursanız, ilgili kareleri JPG (veya benzeri) görüntüler olarak almak için doğrudan OpenCV'yi kullanabilirsiniz. Daha sonra bunları bir ffmpeg ile video olarak birleştirebilirsiniz. Veya, VideoWriterçıkış videosunu anında oluşturmak için OpenCV'deki sınıfı kullanın .

Kullanım durumunuza bağlı olarak (ve bunun bir modeli eğitmek / doğrulamak için çok sayıda giriş videosu kullandığınız bir araştırma projesi olduğunu varsayalım), her giriş videosunu ilk önce yalnızca videoya dönüştürmek daha verimli olabilir (örneğin, ffv1kayıpsız istiyorsanız kullanma ) ve sonra bununla çalışın.


Cevabınız için teşekkür ederim. VideoWriter'ı denedim ancak H264'te kodlama için büyük CPU kaynakları gerekiyor ve süresi çok uzun. Kodlama işlemini hızlandıracak bir GPU'm yok, bu nedenle tek seçenek kaynak videodan kopyalamak.
Don Zhang,

Ve ffmpeg.org/… 'a yeni baktım ve bu bölümün yardımcı olabileceğini öğrendim. Ancak, videoları yalnızca belirli bir zaman dilimine sahip olarak bölebiliyor gibi görünüyor, bunları kendi yapılandırmamla bölebileceğim bir yol var mı? örn. 00:00: 05
Don Zhang

Segment muxer'ı özel zamanlarla kullanabilirsiniz ( -segment_timesseçeneğe bakın ), ancak bunun için anahtar karelerinin düzgün şekilde bölünmesi gerekir.
slhck
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.