PHP bilan FFmpeg ichki server xatosi sabab bo'ladi

Ffmpeg yordamida video fayllarni aylantirish uchun exec() funksiyasini chaqiradigan PHP skripti bor. Skript kichik fayllar bilan yaxshi ishlaydi, lekin aynan taxminan 20 soniya atrofida katta fayllar ishlab chiqarilganidan so'ng, 500 ta ichki Server xatosi hosil bo'ladi.

Max_execution_time 600 sekundda (10 minut) o'rnatiladi va maksimal pochta va yuklash hajmi 1000 MB ga o'rnatiladi. Server Unix asoslangan va xavfsiz rejimda ishlamaydi.

Muammo faqat katta o'lchamlar bilan sodir bo'lsa-da, men bu faylning o'lchamlari muammosi ekanligiga ishonchim komil emas. Skript 12,6 MOV faylga ega bo'ladi, lekin 11 MB MP4 fayli bilan ishlamaydi.

Quyida mening scriptim exec() qatori:

exec('ffmpeg -y -i '.escapeshellarg($uploadFile).' -vcodec libx264 -ab 128k -ac 2 -b 640k -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -maxrate 10M -bufsize 10M -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 '.$convertFile);

Rahmat!

1
Uzoq ishlaydigan ish fonda ishlashi kerak. Qadimgi ffmpeg xatolarga ega, siz so'nggi versiyani ishlatasiz. Bitta buyruqni terminalda, PHP holda ishlating.
qo'shib qo'ydi muallif Petr, manba
Terminalda yaxshi ishlaydi. Ishlash, hatto ichki xatolik yuzaga kelsa ham ishlaydi; exec() dan keyin hech qanday satrni chaqirmaydi. Xatolik tashlanganidan keyin FTP-ni tekshirishi mumkin va katalogda ishlaydigan video fayli paydo bo'ladi.
qo'shib qo'ydi muallif Scott Heath, manba

1 javoblar

Mod_fcgid va Apache-dan foydalangan holda PHP va takrorlash bilan shu kabi muammolarni boshdan kechirdim. mod_fcgid uzoq vaqtdan beri ishlaydigan skriptlar bilan bog'liq muammoga o'xshab ko'rinadi va vaqtning qadriyatlarini o'zgartirish miqdoridan qat'iy nazar, men uni hamma vaqt yoqimli o'yin qilish uchun ololmadim.

Buni hal qilmoqchi bo'lgan ayrim variantlar:

  1. PHP skriptidan foydalanmang - PHP CLI va cron ishidan foydalaning
  2. Kodlash uchun foydalanadigan saytda mod_fcgid foydalanmang, CGI va hatto mod_php

Men buni tuzatyapman, chunki men muammomni hal qiladigan juda foydali aloqalar to'plamini topdim:

http://profiles.ysn.com/supportforum/viewtopic.php?f=7&t=283&start=15#p1300

http://www.virtualmin.com/node/19879

Men qo'shib qo'ydim:


    AddHandler fcgid-script fcg fcgi fpl
    IdleScanInterval 10800
    BusyScanInterval 10800
    ZombieScanInterval 60

fcgid.conf faylga va

IPCConnectTimeout 10800
IdleTimeout 10800
ProcessLifeTime 10800
BusyTimeout 10800

into my httpd.conf in the relevant , restarted apache and the timeouts have stopped.

1
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin