Frame rate dan waktu

Frame rate (fps)

Berapa banyak gambar per detik yang terdapat dalam video. Nilai umum: 24 (bioskop), 25 (siaran PAL), 30 (sebagian besar ponsel dan video web), 50 dan 60 (olahraga, game, gerakan halus), 120 dan 240 (pengambilan gerakan lambat).

Mengapa ini penting di sini: ini menentukan berapa banyak bingkai yang ada untuk diekstraksi, dan menentukan apa arti "langkah satu bingkai". Setel alat loncatan ke kecepatan bingkai yang salah dan Anda akan melihat gambar yang sama dua kali atau melewatkan bingkai secara diam-diam.

Durasi bingkai

Kebalikan dari kecepatan bingkai — berapa lama setiap bingkai ditampilkan di layar. Pada 30 fps, 33,3 mdtk; pada 60 fps, 16,7 mdtk; pada 24 fps, 41,7 ms.

Mengapa itu penting: ini adalah batas atas presisi. Jika momen yang Anda inginkan berdurasi 10 ms dan rekaman Anda 30 fps, momen tersebut mungkin berada di antara dua bingkai dan tidak ada dalam file.

Kecepatan bingkai variabel (VFR)

Beberapa sumber — rekaman layar, rekaman ponsel dalam cahaya redup, rekaman streaming — tidak menggunakan interval yang konstan di antara keduanya bingkai. Mereka memancarkan bingkai hanya ketika konten berubah, atau memvariasikan kecepatannya dengan cahaya yang tersedia.

Mengapa itu penting: "setiap frame ke-10" menjadi jumlah waktu yang tidak dapat diprediksi pada rekaman VFR, dan aritmatika stempel waktu menyimpang. Jika frame melangkah tidak konsisten, kemungkinan besar VFR adalah penyebabnya. Mengonversi ke kecepatan frame konstan sebelum ekstraksi akan menghilangkan masalah.

Kode Waktu

Pengidentifikasi posisi, biasanya ditulis HH:MM:SS:FF dimana FF adalah nomor frame dalam satuan detik. Berbeda dari waktu pemutaran yang telah berlalu.

Mengapa itu penting: begitulah cara Anda merekam bingkai mana yang Anda ambil agar orang lain dapat menemukannya lagi. Stempel waktu milidetik memiliki tujuan yang sama untuk sebagian besar pekerjaan non-siaran.

Jenis kompresi dan bingkai

I-frame (keyframe, frame intra-kode)

Sebuah bingkai disimpan sebagai gambar lengkap, tidak bergantung pada setiap bingkai lainnya. Kira-kira setara dengan JPEG mandiri di dalam aliran video.

Mengapa itu penting: I-frame adalah tempat decoder dapat memulai. Mencari posisi sembarang berarti melompat ke I-frame sebelumnya dan melakukan decoding ke depan — itulah sebabnya pencarian di beberapa file terasa lamban dan tidak tepat.

P-frame (bingkai prediksi)

Hanya menyimpan perbedaan dari frame sebelumnya. Jauh lebih kecil daripada I-frame.

Mengapa itu penting: bingkai-P tidak dapat dibuat diterjemahkan sendirian. Ini adalah mekanisme di balik sebagian besar efisiensi kompresi video, dan di balik fakta bahwa Anda tidak bisa begitu saja menarik frame 4.732 dari sebuah file tanpa mendekode apa yang ada sebelumnya.

Bingkai B (bingkai dua arah)

Menyimpan perbedaan dari frame sebelumnya dan nanti bingkai. Yang terkecil dari ketiga jenis tersebut.

Mengapa itu penting: Bingkai B berarti urutan penyimpanan dalam file berbeda dari urutan tampilan, yang merupakan salah satu alasan mengapa pencarian keakuratan bingkai lebih sulit daripada yang terlihat dari luar.

GOP (Grup Gambar)

Pola pengulangan bingkai I, P, dan B — misalnya satu bingkai I diikuti 29 bingkai lainnya, lalu bingkai I lainnya.

Mengapa itu penting: GOP yang panjang berarti I-frame berjauhan, sehingga pencarian menjadi lebih kasar. File yang dioptimalkan untuk streaming sering kali memiliki GOP beberapa detik; rekaman langsung dari kamera biasanya memiliki rekaman yang lebih pendek.

Kecepatan bit

Data video per detik, dalam Mbps. Rekaman telepon biasanya 10–50 Mbps; streaming video 3–8; codec perantara profesional dapat melebihi 200.

Mengapa itu penting: ini adalah prediktor tunggal terkuat tentang seberapa bagus tampilan frame yang diekstraksi. Bingkai 4K dari streaming 5 Mbps akan menampilkan artefak kompresi yang tidak akan ditampilkan pada bingkai 1080p dari file kamera 50 Mbps — resolusi saja tidak menentukan kualitas gambar.

Lossy dan lossless

Kompresi lossy membuang informasi secara permanen (H.264, JPEG, MP3). Lossless mempertahankan setiap nilai dengan tepat (PNG, FFV1, FLAC).

Mengapa itu penting: mengekstraksi ke PNG dari sumber yang hilang tidak akan memulihkan apa pun — Anda mendapatkan salinan piksel yang sudah terdegradasi tanpa hilang. Apa yang dicegahnya adalah menambahkan kehilangan generasi kedua, yang penting jika bingkai akan diedit setelahnya.

Warna dan piksel

Subsampling Chroma (4:4:4, 4:2:2, 4:2:0)

Video menyimpan kecerahan pada resolusi penuh dan warna pada resolusi yang lebih rendah, karena penglihatan manusia jauh lebih sensitif terhadap yang pertama. Notasi ini menjelaskan berapa banyak warna yang dipertahankan: 4:4:4 penuh, 4:2:2 setengah horizontal, 4:2:0 setengah di kedua arah.

Mengapa itu penting: hampir semua video konsumen berdurasi 4:2:0, sehingga bingkai yang diekstraksi memiliki detail warna dengan resolusi setengah di setiap arah. Ini tidak terlihat pada konten fotografi tetapi sangat terlihat pada tepi berwarna tajam — teks merah pada latar belakang gelap adalah kasus klasik, dan ini adalah properti sumber, bukan kesalahan ekstraksi.

Ruang warna (Rec. 709, Rec. 2020, sRGB)

Definisi arti angka yang disimpan sebagai warna. Video HD biasanya Rec. 709, HDR sering Rek. 2020, gambar diam biasanya sRGB.

Mengapa itu penting: Rec. 709 dan sRGB mirip tetapi tidak identik. Sumber HDR sangat berbeda, dan bingkai HDR yang diekstraksi tanpa pemetaan nada biasanya terlihat pudar dan datar.

Rentang terbatas dan jangkauan penuh

Video biasanya memberi warna hitam pada nilai kode 16 dan putih pada 235, dengan memberikan ruang kepala di kedua sisi. Gambar diam menggunakan 0–255 lengkap.

Mengapa itu penting: ini adalah satu-satunya penyebab paling umum dari "bingkai yang saya ekstrak terlihat lebih kusam daripada video". Jika konversi tidak diterapkan, warna hitam akan menjadi abu-abu dan gambar tampak datar; diterapkan dua kali, bayangan menghancurkan dan menyoroti klip. Kualitas juga tidak hilang — ini merupakan ketidakcocokan asumsi.

Kedalaman bit

Bit per saluran warna. Video konsumen biasanya 8-bit (256 level per saluran); rekaman profesional dan HDR adalah 10-bit atau 12-bit.

Mengapa itu penting: 8-bit menunjukkan garis garis yang terlihat dalam gradien halus, yang paling jelas adalah langit. Mengekstraksi ke PNG mempertahankan kedalaman apa pun yang dimiliki sumber tetapi tidak dapat menambahkan level yang belum pernah direkam.

Gamma

Hubungan non-linier antara nilai yang disimpan dan kecerahan yang ditampilkan. Pipeline video dan gambar diam tidak selalu memiliki kurva yang sama.

Mengapa itu penting: ketidakcocokan gamma menggeser kecerahan midtone — gambar secara keseluruhan tampak agak terlalu gelap atau terlalu terang, tanpa perubahan apa pun pada titik hitam dan putih.

Format dan wadah

Penampung versus codec

Kontainernya adalah pembungkus file (MP4, MOV, MKV, WebM). Codec adalah metode kompresi untuk konten di dalamnya (H.264, HEVC, VP9, ​​AV1, ProRes).

Mengapa itu penting: hal ini menjelaskan kegagalan yang paling membingungkan dalam ekstraksi bingkai — dua file keduanya diberi nama .mp4, yang satu terbuka dan yang lainnya tidak. Ekstensi menjelaskan kotaknya, bukan isinya. MP4 yang berisi HEVC dapat ditolak jika MP4 yang berisi H.264 berfungsi.

H.264 (AVC)

Codec video yang paling banyak didukung. Pada dasarnya diputar di mana saja.

Mengapa itu penting: jika file tidak dapat dibuka di alat berbasis browser, transcoding ke H.264 dalam wadah MP4 adalah perbaikan yang selalu berhasil.

HEVC (H.265)

Penerus H.264: kira-kira setengah kecepatan bit untuk kualitas serupa. Default untuk rekaman iPhone sejak iOS 11.

Mengapa itu penting: dukungan browser tidak merata dan bergantung pada platform. Video iPhone yang tidak dapat dimuat di alat browser sering kali berbentuk HEVC.

ProRes dan DNxHD

Codec perantara yang digunakan dalam pengeditan. File berukuran sangat besar, kompresi sangat ringan, dirancang untuk pengodean ulang berulang kali.

Mengapa itu penting: tidak ada browser yang menerjemahkannya. Ini adalah kasus yang paling jelas dalam menggunakan FFmpeg atau editor, bukan alat web.

PNG

Format gambar lossless dengan saluran alfa. File yang lebih besar.

Mengapa itu penting: pilihan yang tepat untuk bingkai yang diekstraksi yang akan diedit, dianalisis, diukur, atau diarsipkan.

JPEG

Format gambar lossy dengan setelan kualitas, biasanya 1–100. Kira-kira sepersepuluh ukuran PNG dengan kualitas tinggi.

Mengapa itu penting: pilihan yang tepat ketika Anda membutuhkan banyak bingkai dan tujuannya adalah dokumen, tiket, atau a set pelatihan yang mentolerir kompresi ringan. Perlu diperhatikan bahwa skala kualitasnya tidak terstandarisasi di semua alat — "90" di satu aplikasi tidak sama persis dengan "90" di aplikasi lain.

WebP

Format gambar yang lebih baru dengan mode lossy dan lossless, kira-kira 25–30% lebih kecil dari JPEG dengan kualitas yang sebanding.

Mengapa itu penting: bagus untuk pengiriman web, kurang diterima secara universal oleh perangkat lunak desktop dibandingkan PNG dan JPEG. Pilihlah saat bingkai diarahkan ke halaman web, bukan ke alat.

Istilah alur kerja ekstraksi

Interval pengambilan sampel

Kesenjangan antara frame yang diekstraksi, dinyatakan dalam hitungan detik (satu setiap 5 detik) atau dalam frame (setiap 10 detik).

Mengapa itu penting: kedua pembacaan tersebut memberikan hasil yang sangat berbeda pada file yang sama, dan membingungkan keduanya adalah penyebab paling umum yang menghasilkan gambar yang jauh lebih banyak atau jauh lebih sedikit dari yang diharapkan.

Lembar kontak

Kisi bingkai yang diekstraksi dilihat bersama-sama. Dipinjam dari film, dengan lembar bukti yang memungkinkan Anda memilih yang negatif secara sekilas.

Mengapa itu penting: pola sepanjang waktu — pembukaan celah, perubahan keadaan, munculnya cacat — terlihat dalam kisi dengan cara yang tidak terlihat saat pemutaran.

Nol padding

Menulis nomor urut dengan nol di depan: frame_0001 bukan frame_1.

Mengapa itu penting: nama file biasanya diurutkan berdasarkan teks, yang menempatkan frame_10 sebelum frame_2. Alat apa pun yang membaca frame Anda dalam urutan nama file akan memutarnya kembali secara acak tanpa itu.

Pemrosesan sisi klien

Pekerjaan dilakukan di browser Anda, bukan di server. File dibaca dari disk ke memori halaman dan tidak pernah dikirim.

Mengapa itu penting: hal ini menghilangkan waktu pengunggahan dan batas ukuran yang ditentukan server, dan ini adalah satu-satunya pengaturan di mana rekaman berdasarkan NDA atau kewajiban perlindungan data dapat diproses melalui halaman web. Ini juga dapat diuji — putuskan sambungan dari jaringan dan lihat apakah masih berfungsi.