Saya merekam beberapa jam rekaman video setiap hari, yang saya atur dalam antrian untuk penyandian ffmpeg
. Saya menggunakan veryslow
preset dengan x265
, jadi satu jam video dapat memakan waktu hingga 20 jam atau lebih untuk menyandikan.
Karena komputer saya bekerja siang dan malam, saya bertanya-tanya apakah ffmpeg
ada cara untuk menjeda dan melanjutkan pengkodean? Saya menggunakan Terminal
untuk OS X.
Jika demikian, dapatkah saya juga melanjutkan penyandian bahkan setelah mematikan Terminal dan me-reboot komputer? Saya pikir sesi Terminal dipulihkan ketika Anda login lagi di OS X, setidaknya sejarah Terminal.
ffmpeg
berhenti dengan kesalahan (decode_band_types: Input buffer exhausted before END element found
atauInvalid NAL unit size
danError writing trailer
/Protocol error
). Mungkin ini terkait dengan lompatan waktu, saya tidak tahu.Pada Windows, menekan tombol "Jeda / Istirahat" (tombol paling kanan atas) akan menjeda itu. Enter akan dilanjutkan.
Jika tidak berhasil, klik pada jendela prompt perintah untuk memberikan fokus.
sumber
Tampaknya tidak mungkin pada 30 Sep 2015 . Saya akan menyarankan segmentasi file sumber, pengkodean segmen dan kemudian menjahit file yang dihasilkan.
Ini bukan fasilitas jeda / resume yang sebenarnya, tetapi divisi sedikit demi sedikit akan memungkinkan Anda untuk tidak melakukan encoding.
Gambaran umum kasar perintah yang akan dikeluarkan:
Memecah file penuh menjadi beberapa bagian
Ini harus membuat file000.mp4, file001.mp4 dan seterusnya. Karena cara kerja segmenter - hanya memotong pada I-frames - file-file ini tidak akan
n
berdurasi tepat beberapa detik dan bagian video mungkin tidak dapat diputar dengan benar, tetapi datanya ada di sana dan Anda dapat mengonversi masing-masing bagian mis.Bergabung kembali dengan bagian yang disandikan
Buat file teks dan masukkan nama setiap file yang diberikan seperti ini
Dan lari
sumber
Saya menyarankan daripada berhenti, Anda memberikan proses pengkodean prioritas sistem paling sedikit (alias " renice "), sehingga Anda dapat bekerja setiap hari dengan nyaman dan pengkodean akan dilakukan di latar belakang dengan sumber daya sistem yang tidak digunakan. Jadi, pengkodean Anda akan berlangsung selama 24/7 tanpa gangguan, tanpa bertentangan dengan pekerjaan sehari-hari
karena AFAIK OSX tidak memiliki perintah pidof, Anda perlu mengetahui nomor proses ffmpeg (PID)
maka Anda dapat renice proses untuk background menganggur dengan
jika diperlukan Anda juga dapat mengubah proses menjadi prioritas latar depan yang lebih agresif
sumber
Menangguhkan Utas juga berfungsi pada Windows, bukan dengan ctrl+ Z, tetapi di pengelola sumber daya, Anda juga dapat melanjutkannya di sana.
sumber
(Ini untuk Linux)
Seperti yang mungkin Anda semua tahu, menekan 'q' mengakhiri file rekaman.
ffplay memiliki 'p'-kemungkinan. Mengapa ffmpeg tidak memiliki hal yang sama? Mungkin karena itu dapat menyebabkan desync antara video dan audio? ...
Saya hanya ffmpeg-encode ke x264-aac-mkv dengan crf (23) dan selalu dengan kondisi video yang sama, 'berhenti' (q) rekaman dan bergabung dengan semua segmen dalam dir tertentu, di mana skrip ini berada, ke 1 file dalam mode streamcopy dengan skrip bash ini:
Setelah itu saya memeriksa hasil video gabungan dan menempelkannya ke dir lain. Segmen dihapus dari dir gabungan.
Tapi, tombol 'Jeda & Lanjutkan' tanpa kerumitan akan diterima;)
sumber
Ini hanya sebuah ide, tetapi jika Anda memiliki anggaran, itu akan menjadi ide yang baik untuk meningkatkan baik prosesor (ke gen 8th Intel) atau bahkan lebih baik, kartu video (ke NVIDIA GTX 1050 atau lebih tinggi) sehingga Anda dapat menyandikan h.265 / HEVC dengan akselerasi perangkat keras dan bukannya CPU-intensif
x265
. Pengkodean video Anda akan selesai dalam waktu kurang dari 20 jam, menghemat biaya listrik Anda juga.sumber