Saya mencoba mengekstrak bingkai kunci dari klip video. Saya mencoba perintah berikut, tetapi ekstrak semua bingkai.
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
Anda dapat menjadikan ini lebih mudah menggunakan -skip_frame
tanpa perlu select
filter video:
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
-threads 1
, dibandingkan dengan default,-threads auto
ini membuatcropdetect
grafik filter (ffmpeg -threads 1 -skip_frame nokey -i input.mkv -filter:v select='not(mod(n\,20))',cropdetect -an -f null /dev/null
) 2x lebih cepat di sistem saya (60s turun menjadi 30s)!-threads 1
adalah karena jika tidak, urutan keyframe output dapat dikeluarkan tidak sesuai pesanan. Jika Anda memiliki semacam cara post-hoc untuk mengatasi masalah ini, Anda dapat mempertahankan multi-threading. Juga, tampaknya masih mungkin untuk keluar dari keyframe yang rusak, bahkan ketika menggunakan-threads 1
, tetapi sekarang dalam kasus ini semua kejadian seperti itu tampaknya disertai / ditandai oleh kesalahan decoder h264illegal short term buffer state detected
.Contoh menggunakan
select
danscale
filter:Beberapa tips:
Filter tidak boleh datang sebelum
-i
opsi, karena mereka merupakan opsi output. Saya tidak tahu persis dari mana Anda mendapatkan perintah itu, tetapiPICT_TYPE_I
tidak ada - seharusnyaI
.Di
scale
filter Anda dapat mengganti73
atau41
membuat filter secara otomatis menghitung lebar atau tinggi untuk mempertahankan rasio aspek: sepertiscale=73:-1
atauscale=-1:41
. Ini mencegah peregangan atau pengepresan yang dapat terjadi akibat penskalaan "paksa".Kualitas output dapat dikontrol dengan
-qscale:v
(atau alias-q:v
). Rentang efektif adalah skala linier 2 hingga 31 dan nilai yang lebih rendah adalah kualitas yang lebih tinggi.Bahwa Anda
ffmpeg
mengizinkan filter sebelum input memberi tahu saya itu bisa usang. Unduh build statis terbaru untuk sistem operasi Anda, atau bangun sendiri sesuai dengan panduan kompilasi jika hal di atas tidak berfungsi.sumber
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I)" -vsync vfr frame-%02d.png
jika ini kesalahan :
Opsi vf (set filter video) tidak dapat diterapkan ke url input 1508.mp4 - Anda mencoba menerapkan opsi input ke file output atau sebaliknya. Pindahkan opsi ini sebelum file miliknya. Kesalahan opsi penguraian untuk file input 1508.mp4. Kesalahan membuka file input: Argumen tidak valid
kamu bisa melakukan ini:
== --------------------------------------------
"-I" Parameter di muka
sumber