FFmpeg, kodlama işleminin ortasında bilgisayarı donduruyor?

  • Konuyu Başlatan Konuyu Başlatan Rosh
  • Başlangıç tarihi Başlangıç tarihi

Rosh

Kayıtlı Kullanıcı
Mesajlar
25
Tepkime puanı
65
Puanları
15
Konum
Norveç
Kullandığım komut şu:

Kod:
for i in *.mp4; do ffmpeg -i "$i" -map_metadata -1 -c:v libvpx-vp9 -c:a libopus -crf 19 "${i%.*}.webm"; done

Bir süre sorunsuz çalıştı, en son çalıştırdığımda ilk dosyanın yaklaşık %75'ine kadar gelmişti.
Ama sonra tamamen dondu, tüm sistem kilitlendi.
Yeniden başlatmanın tek yolu güç düğmesini basılı tutmaktı.

Bilgisayarın özellikleri:

i5-3330s işlemci,
8 GB RAM,
256 GB SSD,
en son Zorin OS Lite işletim sistemi (dün yeniden kuruldu, bu nedenle önceden yüklenmiş olanlar ve FFmpeg dışında hiçbir şey yok) yüklü.

Prime95'i yarım saat çalıştırdım ve sistem çökmedi, ayrıca işlemci sıcaklığı da 55 derecenin üzerine çıkmadı, bu yüzden aşırı ısınma sorunu olduğunu düşünmüyorum.

FFmpeg aslında "çökmedi", bu yüzden herhangi bir hata çıktısı yok, sadece tamamen dondu.

Günlük dosyalarını kontrol ettim ve syslog dışında olağan dışı bir şey göremedim, donma anıyla aynı zamana denk gelen bir otomatik aygıt yazılımı güncellemesi olduğunu düşünüyorum.

Bunun donmaya neden olup olmadığından emin değilim.
 
Selam,

Sistemin donmasının ana sebebi büyük ihtimalle FFmpeg'in varsayılan olarak işlemcinin tüm çekirdeklerini %100 yükle kullanmasıdır. `libvpx-vp9` kodlayıcısı oldukça ağırdır ve i5-3330s gibi eski nesil bir işlemciyi darboğaza sokup sistemin yanıt vermesini engelleyebilir.

Şu adımları deneyebilirsin:

1. Çekirdek Kullanımını Sınırla: Komutuna `-threads` parametresini ekleyerek işlemcinin nefes almasını sağla. Örneğin 4 çekirdeğin varsa 2 veya 3'ünü ayır:
`ffmpeg -i "$i" -threads 2 ...`
2. Öncelik Seviyesini Düşür: Komutu `nice` ile çalıştırarak sistemin diğer işlemlere öncelik vermesini sağla:
`nice -n 19 ffmpeg -i "$i" ...`
3. RAM Kullanımı: 8 GB RAM normalde yeterli ancak o anki dosya boyutuna göre swap (takas alanı) doluyor olabilir. `free -h` ile takas alanını kontrol etmeni öneririm.

Donma anındaki günlüklerde "Out of Memory" (OOM Killer) veya "CPU stall" ibaresi olup olmadığına tekrar bakabilirsin. Önce `-threads` parametresini denemeni öneririm.