Skrip Python ini adalah alat serbaguna untuk mengekstrak tangkapan layar berkualitas tinggi dari video YouTube, file video lokal, atau sumber video lain yang dapat Anda pikirkan! Ini sangat berguna untuk menyiapkan kumpulan data untuk proyek pembelajaran mesin, seperti melatih Loras atau pos pemeriksaan, atau hanya untuk mengambil bingkai sempurna dari film favorit Anda.
requirements.txt
Kloning repositori ini:
git clone https://github.com/EnragedAntelope/youtube-screenshot-extractor.git
cd youtube-screenshot-extractor
Instal dependensi yang diperlukan:
pip install -r requirements.txt
Instal FFmpeg (diperlukan untuk ekstraksi keyframe dan beberapa filter):
(Opsional) Instal PyCUDA untuk akselerasi GPU:
pip install pycuda>=2022.1
Catatan: PyCUDA memerlukan CUDA untuk diinstal pada sistem Anda. Untuk petunjuk instalasi, lihat dokumentasi PyCUDA.
Sintaks dasar:
python youtube-screenshot-script.py [SOURCE] [OPTIONS]
Dimana [SOURCE]
dapat berupa URL YouTube atau jalur ke file video lokal.
Catatan: Jika Anda berencana menggunakan akselerasi GPU (opsi --use-gpu), pastikan Anda telah menginstal PyCUDA.
Ekstrak bingkai setiap 5 detik dari video YouTube dan simpan ke folder khusus:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --output my_awesome_screenshots
Semudah itu! Sekarang mari selami semua opsi yang dapat dikonfigurasi.
--method {interval,all,keyframes,scene}
: Metode ekstraksi bingkai (default: interval)--interval INTERVAL
: Interval antar frame dalam hitungan detik (default: 5.0, hanya digunakan dengan metode 'interval')--quality QUALITY
: Ambang batas kualitas untuk pemilihan bingkai (0-100, default: 12.0)--blur BLUR
: Batas blur untuk pemilihan bingkai (default: 10.0)--detect-watermarks
: Mengaktifkan deteksi tanda air dasar--watermark-threshold THRESHOLD
: Sensitivitas deteksi tanda air (0-1, default: 0,8)--max-resolution RESOLUTION
: Resolusi maksimum untuk pengunduhan video YouTube (misal, 720, 1080). Diabaikan untuk file lokal.--output OUTPUT
: Nama folder keluaran khusus--png
: Simpan bingkai sebagai PNG, bukan JPG--disable-parallel
: Menonaktifkan pemrosesan frame secara paralel--use-gpu
: Gunakan akselerasi GPU jika tersedia--fast-scene
: Gunakan mode cepat untuk deteksi adegan (hasilnya kurang akurat)--resume
: Melanjutkan proses ekstraksi yang terhenti--thumbnail
: Menghasilkan montase thumbnail dari frame yang diekstraksi--verbose
: Aktifkan pencatatan terperinci--dry-run
: Tunjukkan apa yang akan dilakukan tanpa pemrosesan sebenarnya--config CONFIG
: Memuat pengaturan dari file konfigurasi--gradfun
: Terapkan filter gradfun untuk mengurangi pita warna (kurang agresif, mempertahankan lebih banyak detail)--deblock
: Terapkan filter deblocking untuk mengurangi artefak kompresi--deband
: Terapkan filter debanding untuk mengurangi garis warna (lebih agresif, lebih baik untuk garis warna yang parah)Ekstrak bingkai utama dari file video lokal:
python youtube-screenshot-script.py path/to/your/video.mp4 --method keyframes
Gunakan deteksi adegan pada video YouTube dengan folder keluaran khusus:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --method scene --output my_scene_shots
Ekstrak bingkai setiap 10 detik dengan ambang batas kualitas dan keluaran PNG yang lebih rendah:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --interval 10 --quality 30 --png
Gunakan akselerasi GPU dan buat montase thumbnail:
python youtube-screenshot-script.py path/to/your/video.mp4 --use-gpu --thumbnail
Unduh video YouTube dengan resolusi maksimum 720p dan ekstrak bingkai:
python youtube-screenshot-script.py https://www.youtube.com/watch?v=dQw4w9WgXcQ --max-resolution 720
Ekstrak bingkai dengan filter pasca-pemrosesan:
python youtube-screenshot-script.py path/to/your/video.mp4 --gradfun --deblock --deband
Waktu pengerjaan :
Resolusi Video :
--max-resolution
untuk membatasi kualitas unduhan jika diperlukan.--max-resolution
diabaikan.Keluaran : Bingkai disimpan sebagai gambar JPG atau PNG di folder keluaran yang ditentukan (atau folder default yang diberi nama sesuai judul video).
Nama File Bingkai : Ikuti format frame_NNNNNN_qXX_bYY[_watermarked].(jpg|png)
, di mana:
NNNNNN
: Nomor bingkaiXX
: Skor kualitas (0-99, lebih tinggi lebih baik)YY
: Skor keburaman (angka yang lebih tinggi menunjukkan keburaman yang lebih sedikit)_watermarked
: Akhiran ditambahkan jika tanda air terdeteksiFilter pasca-pemrosesan :
--dry-run
untuk melihat pratinjau proses ekstraksi tanpa benar-benar menyimpan bingkai.--resume
jika proses terhenti.--max-resolution
untuk membatasi kualitas unduhan agar pemrosesan lebih cepat dan menghemat ruang penyimpanan.--quality 30 --blur 50
) dan sesuaikan sesuai kebutuhan.--fast-scene
untuk hasil deteksi adegan yang lebih cepat (namun kurang akurat).Tidak ada bingkai yang diekstraksi :
--quality 20 --blur 30
).Masalah ekstraksi bingkai utama :
Deteksi pemandangan sangat lambat atau mogok :
--fast-scene
untuk hasil yang lebih cepat namun kurang akurat.Akselerasi GPU tidak berfungsi :
pip install pycuda
).--use-gpu
.Deteksi tanda air menghasilkan positif palsu :
--watermark-threshold 0.9
untuk deteksi yang lebih ketat).--detect-watermarks
.Proses mati secara tidak terduga untuk video berukuran besar :
--resume
untuk melanjutkan dari bagian terakhirnya.Output berkualitas rendah atau buram :
Filter pasca-pemrosesan tidak berfungsi :
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LISENSI untuk detailnya.
Kontribusi dipersilakan! Silakan kirimkan Permintaan Tarik.