Saya menggunakan hal-hal seperti itu:
avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
Dimana:
-f x11grab
- memberlakukan "format" tangkapan layar dari input.
-s 1024x768
adalah resolusi file input (alias area tangkap). Misalnya sama dengan resolusi desktop. Jika lebih kecil dari itu, area perekaman akan berada di kiri dan atas. Saya menggunakan area perekaman 1024x768 dalam contoh ini.
-r 24
- framerate. Pada dasarnya, 23 hingga 30 FPS digunakan oleh film nyata untuk memberikan gambar rekaman yang halus. Namun untuk screencast, boleh saja mengurangi ini untuk mendapatkan gambar yang lebih baik pada bitrate lebih rendah. Saya menggunakan 24 untuk menangkap layar game.
-i 0:0
adalah petunjuk untuk menggunakan tampilan 0: 0 sebagai sumber (perangkat dalam notasi xorg). Jika Anda hanya memiliki 1 monitor dan pengaturan Xorg default, 0: 0 akan baik-baik saja.
-deadline realtime
- Adalah petunjuk untuk libvpx. Kami ingin penangkapan langsung. Kami ingin kinerja waktu nyata. Jadi libvpx akan melakukan yang terbaik untuk menyandikan VP8 di REALTIME. Untuk melakukannya agak memperdagangkan kualitas untuk kecepatan. Pada kualitas bitrate yang diberikan akan sedikit lebih buruk daripada dengan cara non-realtime. Tetapi kecepatan encoding akan meroket. Jadi pada perangkat keras saya dapat menggerogoti 1024x768 @ 24FPS, adegan yang intens, tanpa menjatuhkan frame (meskipun CPU yang kuat direkomendasikan). Dalam contoh ini saya ingin tangkapan hidup berkualitas baik di FPS yang bagus dan area tangkapan yang cukup besar. Jadi penggunaan CPU oleh codec bisa menjadi masalah. Karena itulah petunjuk ini sangat dibutuhkan untuk hasil yang baik.
-b 5000000
- bitrate target dalam bit / detik. Saya menggunakan 5Mbits untuk mendapatkan gambar yang cukup bagus dari adegan yang cukup intens. Codec akan mencoba untuk menjaga kecepatan bitrate rata-rata video dekat dengan nilai ini. Semakin rendah nilai ini, semakin buruk kualitasnya dan semakin kecil file. Anda dapat bereksperimen sedikit untuk mendapatkan ide bitrate apa yang baik untuk penggunaan tertentu. Layanan berbagi video akan menurunkan konversi video jika Anda melakukan overshoot. Jika Anda akan menggunakan server sendiri, terserah Anda untuk mengurus lalu lintas. Jika Anda melakukan undershoot, kualitas gambar akan buruk. Jangan ragu untuk mengubah nilai untuk mendapatkan ide yang terbaik untuk Anda. 5Mbits dimaksudkan untuk menangkap adegan intens yang lebih atau kurang menyenangkan mata di game di mana Anda tidak dapat dengan mudah melihat bahwa gambar terlalu dikompresi. Untuk menangkap aplikasi diam Anda pada dasarnya perlu jauh lebih sedikit dari itu.
-minrate
200000 - adalah bitrate minimum yang diizinkan untuk codec. Bergantung pada sifat hal yang ingin Anda tangkap, kadang-kadang Anda mungkin ingin memaksa bitrate minimum untuk menjaga gambar yang tampak wajar di apa pun yang terjadi. Terkadang codec heuristic dapat mengurangi bitrate jauh di bawah nilai yang Anda inginkan, memberikan gambar yang buruk di beberapa adegan. Opsi ini memungkinkan untuk memaksa codec untuk mempertahankan bitrate minimum bahkan jika codec berpikir bahwa adegan itu sederhana dan bitrate dapat dibatalkan. Nilai tinggi dari parameter ini dapat meningkatkan ukuran file dengan mencegah codec menggunakan bitrate yang lebih rendah.
-maxrate 40000000
- Nilai ini mengontrol bitrate burst maksimum pada adegan yang intens. Saya menggunakan nilai sangat tinggi untuk memungkinkan codec untuk pergi jauh lebih tinggi dari rata-rata yang diinginkan jika menganggap kecepatan yang lebih tinggi wajib untuk menjaga kualitas yang layak di beberapa adegan. Untuk mendapatkan gambar yang terlihat bagus dalam semua kondisi, diinginkan untuk mengatur ini cukup tinggi (40Mbits adalah kecepatan seperti BlueRay dan akan melakukan triknya). Di sisi lain, jika Anda akan melakukan streaming menggunakan server Anda sendiri, Anda harus mengurangi nilai ini dengan mengorbankan beberapa kualitas gambar pada pemandangan yang intens. Server lain bisa gagal mengatasi bitrate burst yang diinginkan, karena tidak dapat mengirimkannya secara realtime kepada pengguna. Kemudian pemain akan menghadapi buffer underrun (yang menjengkelkan). Layanan berbagi video akan menangani sendiri dan biasanya menurunkan video ke parameter yang lebih rendah dengan mengorbankan kualitas gambar.
recording-filename-000.webm
- adalah nama file keluaran. Jika Anda menggunakan ekstensi .webm, ffmpeg / avconv cukup pintar untuk memahami bahwa Anda menginginkan WEBM. Sangat sederhana - avconv menebak format yang diinginkan dari nama file. Jadi. File WEBM adalah WEBM di dalamnya.
Itu dia - perintah ini tidak merekam layar langsung ke file webm. Tidak perlu konversi tambahan dan libvpx
disarankan untuk secepat mungkin. Tidak ada suara karena tidak ada spesifikasi untuk input suara. Mungkin atau mungkin bukan yang Anda inginkan. Untuk suara, Anda harus menentukan sumber input untuk aliran suara juga.
NB ini mungkin terlihat sedikit rumit tetapi pada akhirnya Anda dapat mengetahui bahwa satu ukuran tidak cocok untuk semua. Jadi untuk mendapatkan gambar yang bagus dalam semua situasi Anda mungkin ingin memiliki beberapa pegangan untuk codec yang digunakan dan ingin menyesuaikannya. Ffmpeg memberi Anda semua pegangan yang mungkin Anda butuhkan dan jauh lebih dari itu. Ini adalah persenjataan berat konversi dan pengodean video. Jadi contoh ini adalah titik yang baik untuk memulai bagi mereka yang ingin melakukan pengkodean lebih lanjut atau kurang dan siap untuk sedikit bereksperimen untuk mendapatkan hasil yang benar-benar layak.