Eu fiz um aplicativo rails que pode transmitir vídeos ao vivo para o servidor facebook rtmp e implantá-lo na AWS. Eu usei nginx como servidor web. O principal problema que estou encontrando depois de visualizar arquivos de log de processos FFMpeg é que às vezes o processo FPS do FFmpeg começa a cair. Em alguns casos, ele permanece estável em 25 FPS mas, em alguns casos, permanece em 25 apenas por algum tempo, e depois disso ele começa a cair e às vezes cai para 3-4 FPS, o que é inaceitável durante a transmissão ao vivo. Como o processo FFMpeg é bastante pesado, eu também gostaria de compartilhar minhas informações da CPU também.
A informação da CPU é:
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:
Arquivo de registro FFMPEG com fps instáveis: link
Arquivo de registro FFMPEG com fps estáveis: link
Quando o FPS era estável, também tentei executar outro processo FFMpeg paralelo a partir do mesmo servidor, o que resultou na queda de ambos os processos para 13-14 FPS.
Atualmente estou usando este comando 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"
Eu nunca enfrento este problema quando tento transmitir para o FB usando o app no meu host local.
Então, minhas perguntas são:
- Qual pode ser o motivo dessa queda de FPS?
- O servidor de produção de upscaling pode me ajudar a corrigir esse problema?
- Posso executar vários processos FFMpeg para streaming no mesmo servidor sem perda de desempenho?
Agradecemos antecipadamente:)