Bekerja di situs tabung . Saya menjalankan video melalui ffmpeg di server khusus linux untuk mengkonversi ke mp4 .
Spesifikasi server:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Stepping: 3
CPU MHz: 3491.749
BogoMIPS: 6983.49
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7
Masalah selama pengujian adalah bahwa bahkan hanya melakukan 4-5 sekaligus, server memuat skyrockets ke rata-rata sekitar 36. Ini hanya satu orang. Saya membayangkan ketika dibuka, banyak orang akan mengunggah sekaligus.
Tampaknya ffmpeg mencoba menggunakan semua sumber daya yang tersedia per konversi.
Saya pernah mendengar ada pengaturan -threads yang dapat Anda ubah, tetapi saya tidak dapat menemukannya. Saya memiliki server 8 cpu. Ini hanya digunakan untuk konversi, jadi saya pernah mendengar pengaturan terbaik adalah antara 2 dan 4. Saya dapat mengujinya.
Tetapi bagaimana cara mengubah pengaturan ini? Semua yang saya lihat online membahas pengaturan ini, tetapi bukan langkah-langkah untuk mengubahnya.
-threads
sebelum input Anda menerapkan opsi ini input (decoder). Penggunaan umum adalahffmpeg [global options] [input options] -i input [output options] output
.(global)
.-threads
arg sebelum atau sesudah-i
arg? Juga, bagaimana saya harus menentukan berapa banyak utas yang harus saya gunakan? Saya pada dasarnya hanya melakukan-c copy
Ini mungkin agak tua tapi ini terdengar seperti tugas yang sempurna untuk sebuah wadah seperti buruh pelabuhan.
full horsepower
(sebagaimana denjello menyebutnya)Sekarang Anda dapat membatasi berapa banyak sumber daya yang dapat dikonsumsi oleh instance ffmpeg tunggal tanpa menggunakan opsi-opsi commandline ffmpeg. Dan bukan hanya CPU tetapi juga memori dan IO.
Bahkan lebih lagi: Mungkin Anda memiliki tugas berbeda yang mungkin berjalan di latar belakang dan Anda tidak peduli berapa lama waktu yang dibutuhkan dan Anda memiliki tugas yang harus berjalan cepat, sehingga Anda dapat memberi bobot pada tugas yang berbeda.
Lihat https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources
Sudah ada gambar ffmpeg yang sudah ditentukan sebelumnya di github: https://github.com/jrottenberg/ffmpeg
Satu konversi kemungkinan akan berjalan lebih lambat karena overhead tetapi jika Anda menjalankan banyak contoh secara bersamaan ini bisa menjadi manfaat besar. Apa pun ini akan berskala sangat baik, belum lagi peningkatan keamanan karena setiap tugas diisolasi dari OS yang mendasarinya.
sumber
--rm
bendera untuk melakukan tugas dan menghapus wadah setelah keluar adalah hal yang benar-benar normal yang dapat dan harus dilakukan oleh admin pada tahun 2019. Terutama untuk hal-hal seperti konversi dokumen. Konversi gagal? Coba versi konverter lain tanpa memutakhirkan / menurunkan versi rantai alat lokal Anda? Anda tidak mempercayai dokumen tersebut karena telah diunduh dari internet? Pisahkan tugas dalam wadah. Ffmpeg tidak terkecuali. cvedetails.com/vulnerability-list/vendor_id-3611/Ffmpeg.htmlPerhaps the document converter docker image was compromised and sent copy of all your documents to a remote server. So, using docker images increase possibility such vulnerability. What then?
checkout repo, selidiki dockerfile dan gunakandocker build -t myimage
untuk membuat gambar lokal sendiri. Atau buat dockerfile Anda sendiri, itu bukan ilmu roket github.com/alfg/docker-ffmpeg/blob/master/Dockerfile