Saya ingin menentukan frame rate variabel dengan nilai MAXIMUM, dan memungkinkan libx264 untuk menurunkan frame rate sesuai keinginan. Idenya di sini adalah untuk mendapatkan kompresi ekstra ketika ada sesuatu seperti bingkai foto yang diperpanjang
Dalam pemahaman saya, ini mungkin dalam cara yang agak canggung, tetapi tidak diinginkan untuk beberapa alasan yang kompleks dan berlawanan dengan intuisi
Meskipun stream x264 memiliki framerate, frame rate lebih merupakan masalah level kontainer daripada codec.
Dalam encode passthrough VFR, akan ada apa yang pada dasarnya adalah file teks yang merinci apa frame rate di atas frame / kali apa, dan dalam encoding sumber, fungsi seperti tcfile-in atau tcfile-out meneruskan timestamps ke encode , untuk memetakan lokasi tingkat dan menjaga video secara konsisten konsisten dari sumbernya.
Ide rendah framerate adalah ide yang logis, tetapi tidak berhasil karena beberapa alasan. Meskipun x264 sadar VFR dengan beberapa kemampuan, saya tidak berpikir ada fungsi analisis yang akan memvariasikan framerate sehubungan dengan gerakan untuk menurunkan ukuran file (dengan cara yang mirip dengan banyak kontrol bitrate).
Sumbernya juga merupakan masalah: Sumber-sumber VFR secara default akan mempertahankan variabilitas frame mereka, tetapi tampaknya meng-encode file CFR pada bitrate variabel (kadang-kadang ide yang bagus, terutama ketika telecine diperlukan) hanya akan menghasilkan CFR yang sama.
Ini berarti Anda mungkin harus menulis ulang bitrate dengan tangan (mis. Cap waktu adegan lambat yang disandingkan ke dalam file), atau menggunakan algoritma penipisan bingkai seperti dup, dedup, dan exactDedup untuk avisynth . Jika video Anda memang memiliki gerakan yang sangat rendah, beberapa bingkai (bahkan setengah?) Akan dibuang. Masalahnya adalah bahwa algoritma ini tidak canggih, dan tidak membuat pilihan yang baik dengan rekaman "kehidupan nyata" tentang apa yang akan berkontribusi pada pengkodean terbaik.
Selain itu, menghapus bingkai yang berisi hal-hal seperti bingkai I dan B mengurangi jumlah detail yang tersedia dari waktu ke waktu, yang menyebabkan gerakan terlihat "steppy" dan dapat mengganggu parameter video dasar lainnya dan menyebabkan artefak seperti aliasing.
Dan karena cara kerja quantizer, x264 sebenarnya akan mengurangi bitrate lebih jauh secara tidak proporsional dalam adegan-adegan gerak rendah ini. Kecuali jika Anda memiliki rangkai salindia dari gambar yang identik, akan ada gerakan (jika hanya butir dan artefak lainnya) dan akan ada penurunan kualitas yang tidak akan terlihat tanpa perubahan drastis pada bitrate.
Dan akhirnya, alasan tidak banyak pilihan untuk melakukan apa yang Anda inginkan adalah x264 sangat bagus dalam mengelola bitrate hanya dengan menggunakan kompresi temporal (merekam perubahan dalam frame parsial). Pergi ke 1/2 framerate tidak akan memotong ukuran file menjadi setengah; 10% mungkin merupakan keuntungan realistis yang diharapkan dari gerakan rendah atau animasi.
Jadi singkatnya, menjatuhkan bitrate dari adegan statis Anda akan sangat sedikit untuk ukuran file Anda, tetapi akan menambah sejumlah masalah kualitas dan sinkronisasi, belum lagi ketidakcocokan dengan perangkat lunak pengedit video.
Jika Anda ingin mencoba decimator, Anda mungkin dapat membatasi frame rate maksimum baru dengan menggunakan opsi level , yang masing-masing spesies memiliki resolusi dan framerate maksimum. Sayangnya, Anda mungkin harus bekerja pada resolusi yang sangat rendah untuk mendapatkan jenis frame rate yang Anda inginkan, menggunakan profil. Itu kembali ke mengedit tarif dengan tangan, baik seluruhnya atau untuk memperbaiki frame rate yang menurut Anda terlalu tinggi. Either way, akan butuh juggling untuk menjaga suara tetap sinkron dengan framerate baru jika perubahan dilakukan setelah proses pengkodean ketika tcfile dilestarikan.
Kelebihannya adalah menghabiskan waktu untuk mengoptimalkan banyak pengaturan bitrate akan menghasilkan lebih banyak cara manajemen ukuran file, dan meningkatkan kualitas video Anda, daripada menyebabkan komplikasi dengan sedikit keuntungan. Mempertahankan FPS asli mungkin adalah ide terbaik kecuali Anda mengincar standar siaran atau media. Pemain mampu memainkan bitrate variabel (tidak seperti editor), dan semakin banyak frame dalam video Anda, semakin halus pemutarannya dan mungkin semakin kecil ukuran file, karena perubahan kecil dalam pergerakan antar frame.
Berikut adalah kumpulan tautan ke info standar dan diskusi forum yang akan membantu aspek penyandian yang membingungkan ini:
- Alat penipisan avisynth
- fps dan -r switch
- x264 Umum (tcfile, fps)
- standar file kode waktu
- Level dan profil
- Pendek, jelas ringkasan pengaturan CFR / VFR (bagian "framerate")
doom9, videohelp, & c diskusi teoritis
1
2
3
4
5
6
7