2015-07-22 25 views
5

H.264 kodlu bir bit dizisinin hareket vektörlerini (MV'ler) ayıklamak için bir açık kaynak araç/kod veya kılavuzluk arıyorum. Ben hareket vektörleri aşağıdaki komutla ffmpeg kullanarak görülebilmesi zaten farkındayım:H.264 bit akışından ayıklama hareket vektörleri

ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb

Ancak, P ve B karelerinin mikroveziküllerden kare kare listelenmiştir bir günlük dosyası üretmek istiyorum. MV'lerin yapısını libavutil/motion_vector.h dosyasından kontrol ettim, ancak ffplay ile orijinal dizilimin nasıl çıkarılacağını ve nasıl yerleştirildiğini gösteren bir örnek bulamadım. Bunu bulabilirsem, MV'leri bir metin dosyasına çıkarmak için kodu yeniden düzenleyebileceğimi düşündüm.

Ben de this answer verilen kod denedik ama Ffmpeg daha yeni sürümleri ile çalışmak için görünmüyor:

herhangi örnek kodları veya ipuçları takdir ediyorum.

+0

Eğiticilerin, araçların ve kitaplıkların sorulması Yığın Taşması için konu dışıdır (bkz. [Yardım]). Ayrıca [ffplay kaynak kodu] (https://www.ffmpeg.org/doxygen/trunk/ffplay_8c-source.html) LGPL lisansı altındadır ve kullanılabilir durumdadır. –

+2

O da kod/rehberlik istiyor, bu yüzden bazı kod örnekleri sağlamak için daha yararlı bir eylem olurdu. – Luca

cevap

8

Kodek görüntülü video filtresinin kaynak kodu here olup, aradığınız şey bu mu?

[değiştir] Üzgünüm, sanırım bu çok yararlı değil. Aradığınız işlev, AVMotionVectors öğelerinin (yan veri olarak) belirli bir AVFrame'den okunmasını gösteren filter_frame() şeklindedir; bu, komut satırı örneğinizde kullanılan koddur. Bu örnek draw_arrow() işlevini çağırır, ancak bunu printf() veya MV bilgilerini sizin seçtiğiniz bir günlük dosyasına kaydeden bazı özel işlevlerle değiştirebilirsiniz.

+0

Merhaba, lütfen MATMAB'de AVMotionVectors'ları nasıl kullanabileceğimiz hakkında biraz daha bilgi verebilir misiniz? Cevabınız biraz ipucu veriyor ama kullanım için bloke oldum. Matlab'da nasıl edinilir. Bu konuda çok az bilgi var. –

+0

Daha fazla ayrıntıyla yeni bir soru sorardım, matlab'da veri girmek istediğinizde veya tam olarak ne engellediğinizi bilmiyorum. –