Merekam dengan bitrate tinggi ke HDD dan bukan SSD menyebabkan kelambatan yang parah

0

Saya mencoba membuat rekaman offline dengan OBS, tetapi ketika saya membuatnya menulis ke hard drive klasik, itu sangat tertinggal, meskipun HDD memiliki kecepatan menulis yang cukup cepat (+ 40MB / s). Saya mencoba meningkatkan buffer dalam pengaturan yang sama, tetapi mereka tampaknya tidak berhubungan dengan output IO. Sejauh ini, saya tidak dapat menemukan pengaturan OBS / ffmpeg yang dapat membantu. Bagaimana ini bisa diperbaiki?

Log: https://paste.fedoraproject.org/paste/L9LoUWC0VRGdxGSYESD2kw

Pembuangan info sistem: https://paste.fedoraproject.org/paste/~OrQZas9rYhaHTtEgJpVfg

Log menunjukkan tes kecepatan sederhana, menggunakan dd (via WSL) dan log OBS menunjukkan dua rekaman, dengan satu-satunya perbedaan adalah lokasi penyimpanan. Seperti yang terlihat, rekaman ke HDD (D :) tertinggal / kehilangan frame. Sebagai perbandingan, rekaman pertama ke SSD berfungsi seperti yang diharapkan. Perhatikan bahwa OBS tidak mencatat skipped frames due to encoding laguntuk rekaman pertama, karena berfungsi tanpa masalah.

Aku melakukannya:

  • ujilah beberapa kali, sehingga log menunjukkan contoh yang representatif.
  • mengujinya dengan berbagai ukuran buffer untuk pengkodean, tanpa efek.
  • mengujinya dengan CRF sebagai gantinya jika CBR.
  • mencobanya dengan bitrate lebih rendah. Kelambatan yang kurang parah sudah bisa dilihat pada bitrate 10k.

Agar jelas:

  • tidak ada hambatan CPU.
  • tidak ada bottleneck kecepatan penulisan HDD keseluruhan (bitrate 60k sekitar 8 MB / s, yang baik-baik saja).

Saya pikir masalahnya adalah: latensi tulis terlalu tinggi dan buffer output terlalu kecil, yang bisa berupa bug di OBS atau ffmpeg, atau hanya pengaturan yang hilang yang tidak saya ketahui.

Saya mengajukan pertanyaan ini pada r / obs sebelumnya.

Pembaruan : menambahkan info sistem dump & tambahan info log rekaman

Vektorweg
sumber
Harap berikan detail spesifikasi sistem Anda. Memberitahu kita ada bandwidth yang cukup atau throughput tidak cukup. Kita memerlukan model hard drive, model mainboard atau nama model merek sistem. Berdasarkan apa yang Anda katakan kepada kami, masalahnya sudah jelas: HDD spinny-disk Anda tidak berfungsi, memberi tahu kami itu bukan argumen yang sangat meyakinkan.
music2myear
@ music2myear Bagaimana HDD tidak sesuai dengan pekerjaan, ketika tes kecepatan menunjukkan, bahwa ia dapat dengan mudah menangani bandwidth?
Vektorweg
Jika saya menebak? Karena itu melakukan lebih dari sekadar menerima filestream bit-for-bit dari file output. Bukti? Ini berfungsi dengan baik pada SSD. Harap edit pertanyaan Anda untuk memberikan detail spesifik dari komponen sistem seperti yang diminta sehingga kami dapat mengonfirmasi atau memperbaiki pengamatan awal ini dan mengarahkan Anda ke solusi yang baik.
music2myear
@ music2myear Ya, itu hanya filestream bit-for-bit sederhana, berkaitan dengan latensi. Saya benar-benar tidak mengerti intinya, tetapi saya menambahkan dump info sistem.
Vektorweg
Daftar sederhana dari hard drive, metode koneksinya, dan CPU dan memori Anda sudah mencukupi, tetapi mengingat dump itu dapatkah Anda mengklarifikasi drive mana yang Anda tulis dan bagaimana terhubung ke komputer Anda?
music2myear

Jawaban:

1

Jika berjalan seperti bebek dan dukun seperti bebek ...

Masalahnya adalah koneksi USB2 dan drive di ujungnya.

Sementara USB2 lebih cepat daripada beberapa hal, itu lebih lambat daripada kebanyakan hal, dan umumnya tidak cukup untuk operasi media real-time.

Metrik Anda mungkin menunjukkan bandwidth yang memadai, kemungkinan penyebabnya adalah bahwa datastream murni tidak memperhitungkan semua komunikasi bolak-balik di tautan itu, dan tes sering dioptimalkan dan tidak mewakili tipe data dunia nyata dan situasi.

Drive USB3 mungkin cukup mampu memenuhi apa yang Anda butuhkan.

music2myear
sumber
Itu tebakan liar. USB2 dapat meningkatkan latensi dan membatasi bandwidth, tetapi bandwidth masih bukan masalah dan kelambatan dari latensi dapat secara praktis selalu diperbaiki dengan buffer yang cukup besar. Bandwidth yang digunakan bahkan berskala dengan bitrate, seperti yang dapat saya lihat di Taskmanager. Tapi itu masih tertinggal. Jadi masalahnya jelas bukan bandwidth dan dengan asumsi bahwa perangkat keras yang lebih baik akan memperbaikinya, tidak ada gunanya di sini.
Vektorweg
1

Terima kasih kepada Suchiman untuk petunjuk ini.

Cache-tulis dinonaktifkan secara default untuk disk eksternal pada Windows. Mengaktifkannya memang memperbaiki masalah.

Gambar jendela dialog di manajer perangkat Windows

Ini masih bukan solusi terbaik, karena OBS / ffmpeg harus memiliki cache tulis sendiri dalam kasus ini.

Vektorweg
sumber