Nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдВ

рдСрдирд▓рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рдХреНрдпрд╛ рд╣реИ?


рд╢рдмреНрдж рдСрдирд▓рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдореБрдЭреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд╛рдЗрд╡ рд╡реАрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреЗрд▓реАрд╡рд┐рдЬрди рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ) рдХреЗ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ (flv- рдФрд░ mp4- рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ) рдХреЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рд╛рдзрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╕рдВрдкреВрд░реНрдг рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд▓реЗрдЦ рд╡реАрдбрд┐рдпреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рдВрдЧрдарди рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд▓рд╛рдЗрд╡ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рдВрдЧрдарди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрдЧрд╛ред рдпреЗ рджреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИрдВ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЗрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

RTMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓


RTMP - рд░рд┐рдпрд▓ рдЯрд╛рдЗрдо рдореИрд╕реЗрдЬрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ( рд╡рд┐рдХреА ) - рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд▓рд╛рдЗрд╡ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ AS3 рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рд╣реИ, рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрд╣рд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ рдмрд┐рдЯреНрд░реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдпрджрд┐ рдХреЛрдИ рдореБрдлреНрдд рдЪреИрдирд▓ рд╣реИ)ред

NB: RTMP рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (RTSP, Apple HTTP рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ, рдЖрджрд┐) рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИред


RTMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ Adobe рдХрд╛ рджрд┐рдорд╛рдЧ рд╣реИред RTMP рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд░реНрд╡рд░ Adobe Flash Media Server рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреА рдХреАрдордд рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рдВрдЧрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрд░рдЯреАрдПрдордкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢, рдпрджрд┐ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрд░рдЯреАрдПрдордкреА рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ:



рдЬрд╛рд╡рд╛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ


рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, Red5 рдФрд░ Wowza рдиреЗ рдЕрд╢реЛрднрдиреАрдп рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред рдореЗрдЧрд╛рдмрд┐рдЯ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде, 1000 рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде Wowza рдиреЗ рд▓рдЧрднрдЧ 300% рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп (Intel Xeon E5607) рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдХрдо рд╕реЗ рдХрдо 20,000 рд▓реЛрдЧреЛрдВ рдХреЛ рдСрдирд▓рд╛рдЗрди рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 20 рд╕рд░реНрд╡рд░ рдЦрд░реАрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╣ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд░реЗрдВ?


рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Wowza рдФрд░ Red5 рдореЗрдВ рдмреНрд░реЗрдХ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐ (рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдкреЛрд▓ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рд░реЛрдорди рдЖрд░реНрдпреБрдЯреБрдирд┐рдпрди ( рдмреНрд▓реЙрдЧ , рдЬреАрдердм рдкреНрд░реЛрдлрд╛рдЗрд▓ , рд░реЗрд░реБрдЯрд┐рдпрдирдпрди ) рдиреЗ рдЕрдкрдиреЗ рдЖрд░рдЯреАрдПрдордкреА рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХреА , рдЬреЛ рдХрд┐ рдирдЧрдиреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереАред

nginx-RTMP рдореЙрдбреНрдпреВрд▓


рд▓рд╛рдн:


рдиреБрдХрд╕рд╛рди:


рдЗрд╕ рдмреИрд╕рд╛рдЦреА (рдЙрдмрдВрдЯреВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

for ip in $(cat /etc/network/interfaces | grep address | awk '{print $2}') ; do touch /etc/nginx/nginx.$ip.conf cp /etc/nginx/nginx.conf.skel /etc/nginx/nginx.$ip.conf sed -i "s/%IPADDR%/${ip}/g" /etc/nginx/nginx.$ip.conf /usr/sbin/nginx -c /etc/nginx/nginx.$ip.conf done 


рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ IP рдкрддреЗ рдХреЗ рдмрдЬрд╛рдп% IPADDR% рдХрд╛ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдХрд╛рд▓ рдХреЛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣:
 worker_processes 1; error_log logs/error.%IPADDR%.log debug; pid /var/run/nginx.%IPADDR%.pid; worker_rlimit_nofile 65536; events { worker_connections 16384; } rtmp { server { listen %IPADDR%:1935; chunk_size 4000; application live { live on; pull live stream %masterIP%; } } } http { server { listen %IPADDR%:8080; location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /srv/nginx/html; } } } 


рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЗрдЦрдХ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИред

Nginx-rtmp-рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореИрдВ 10 рдЧреАрдЧрд╛рдмрд┐рдЯ рдЪреИрдирд▓ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЙрд╕реА рд╕рдордп, рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдирдЧрдиреЗрдХреНрд╕ рдХреА рд▓реЛрд▓реБрдкрддрд╛ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдФрд░ рдХрд░реНрдиреЗрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рддрд╛рдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рд╕реАрдкреАрдпреВ рдХрд╛ 100% рдирд╣реАрдВ рдЦрд╛рдпрд╛ рдЬрд╛рдПред

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:


рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ RTMP
Wowza - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ
Erlyvideo - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ
рдирд┐рдЧреНрдиреЗрдХреНрд╕-рдЖрд░рдЯреАрдкреА-рдореЙрдбреНрдпреВрд▓ - рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛

Source: https://habr.com/ru/post/In145867/


All Articles