# nginx-http-flv-dockerfile **Repository Path**: LateWinter/nginx-http-flv-dockerfile ## Basic Information - **Project Name**: nginx-http-flv-dockerfile - **Description**: docker容器方式编译带nginx-http-flv组件 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2022-01-11 - **Last Updated**: 2024-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nginx-http-flv-dockerfile #### 介绍 docker容器方式编译带nginx-http-flv组件 #### 软件架构 软件架构说明 #### 安装教程 1. 安装docker 2. docker build -t winter227/nginx-http-flv:tag . #### 使用说明 - 运行nginx流媒体服务器 ``` docker run -d -p 1945:1935 -p 8890:80 --name ggg --restart=unless-stopped -v /speed/data/nginx-web/www:/usr/share/nginx/html -v /speed/data/nginx-web/conf/:/etc/nginx/ -v /speed/data/nginx-web/log:/var/log/nginx winter227/nginx-http-flv:1.20.2 ``` - nginx.conf配置文件(容器内位置/etc/nginx/nginx.conf) ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; rtmp_auto_push on; rtmp_auto_push_reconnect 1s; rtmp_socket_dir /tmp; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } rtmp { out_queue 4096; out_cork 8; max_streams 128; timeout 15s; drop_idle_publisher 15s; #log_interval 5s; #interval used by log module to log in access.log, it is very useful for debug #log_size 1m; #buffer size used by log module to log in access.log server { listen 1935; server_name localhost; #for suffix wildcard matching of virtual host name application live { live on; gop_cache on; #open GOP cache for reducing the wating time for the first picture of video } application hls { live on; hls on; hls_path /tmp/hls; } application dash { live on; dash on; dash_path /tmp/dash; } } server { listen 1935; server_name localhost; #for prefix wildcard matching of virtual host name application live { live on; gop_cache on; #open GOP cache for reducing the wating time for the first picture of video } } server { listen 1935; server_name www.iiwinter.com; #for completely matching of virtual host name application live { live on; gop_cache on; #open GOP cache for reducing the wating time for the first picture of video } } } ``` - http.conf配置文件(容器内位置/etc/nginx/conf.d/http.conf),实现http协议播放实时流 ``` server { listen 80; location / { root /var/www; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /live { flv_live on; #open flv live streaming (subscribe) chunked_transfer_encoding on; #open 'Transfer-Encoding: chunked' response add_header 'Access-Control-Allow-Origin' '*'; #add additional HTTP header add_header 'Access-Control-Allow-Credentials' 'true'; #add additional HTTP header } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header 'Cache-Control' 'no-cache'; } location /dash { root /tmp; add_header 'Cache-Control' 'no-cache'; } location /stat { #configuration of streaming & recording statistics rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /var/www/rtmp; #specify in where stat.xsl located } #if JSON style stat needed, no need to specify #stat.xsl but a new directive rtmp_stat_format #location /stat { # rtmp_stat all; # rtmp_stat_format json; #} location /control { rtmp_control all; #configuration of control module of rtmp } } ``` - 使用ffmpeg推流 ``` ffmpeg -re -rtsp_transport tcp -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.10.140:1935/live/video ``` - 使用FFMpeg命令行录屏推rtmp流 ``` ffmpeg -f gdigrab -video_size 1920x1080 -framerate 25 -i desktop -vcodec libx264 -f flv rtmp://192.168.10.140/live/video ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)