Я создал приложение rails, которое может транслировать живое видео на сервер Facebook RTMP, и развернул его на AWS. Я использовал nginx в качестве веб-сервера. Основная проблема, с которой я сталкиваюсь после просмотра файлов журнала процессов FFMpeg, заключается в том, что иногда FPS процесса FFmpeg начинает падать. В некоторых случаях он остается стабильным при 25 FPS, но в некоторых случаях он остается на 25 только в течение некоторого времени, и после этого он начинает падать, а иногда падает даже до 3-4 FPS, что недопустимо во время прямой трансляции. Поскольку процесс FFMpeg довольно тяжелый, я также хотел бы поделиться информацией о своем процессоре.
Информация о процессоре:
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
stepping : 2
microcode : 0x25
cpu MHz : 2400.070
cache size : 30720 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt fsgsbase bmi1 avx2 smep bmi2 erms invpcid
bogomips : 4800.14
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
Файл журнала FFMPEG с нестабильным fps: https://drive.google.com/open?id=0B1gtp1iXJppkUndFamk4M0lRYzA
Файл журнала FFMPEG со стабильным fps: https://drive.google.com/open?id=0B1gtp1iXJppkMkVCZEJjYWJrVTA
Когда FPS был стабильным, я также пытался запустить другой параллельный процесс FFMpeg с того же сервера, что привело к падению FPS обоих процессов до 13-14 FPS.
В настоящее время я использую эту команду FFMPEG:
ffmpeg -loop 1 -re -y -f image2 -i "image_path" -i "audio_path.aac" -acodec copy -bsf:a aac_adtstoasc -pix_fmt yuv420p -profile:v high -s 1280x720 -vb 400k -maxrate 400k -minrate 400k -bufsize 600k -deinterlace -vcodec libx264 -preset veryfast -g 30 -r 30 -t 14400 -strict -2 -f flv "rtmp_server_link"
Я никогда не сталкиваюсь с этой проблемой, когда пытаюсь транслировать на FB с помощью приложения на моем локальном хосте.
Итак, мои вопросы:
- Что может быть причиной этого падения FPS?
- Может ли масштабирование производственного сервера помочь мне решить эту проблему?
- Могу ли я запустить несколько процессов FFMpeg для потоковой передачи с одного сервера без снижения производительности?
Заранее спасибо :)