【Docker初探】第七节:Alpine下编译Nginx,并使用nginx-http-flv-module搭建视频直播服务

docker部署SRS实时视频服务器,rtmp推流,用WebRTC播放 阅读详情

相关资料:

【Docker初探】第一节:Docker+Alpine+Openssh+Supervisor部署Linux基础环境

【Docker初探】第二节:安装alpine-pkg-glibc,部署java环境

【Docker初探】第三节:导入导出镜像及压缩

【Docker初探】第四节:使用mount挂载共享文件夹(cifs)

【Docker初探】第五节:安装PostgreSQL+Nginx

【Docker初探】第六节:Docker Swarm集群,及Windows下部署

源码:https://github.com/tfwcn/docker-alpine-server

安装编译环境:

apk add build-base
apk add pcre pcre-dev
apk add openssl openssl-dev
apk add zlib zlib-dev
apk add git
apk add wget

官网下载源码并编译:

http://nginx.org/en/download.html

https://github.com/winshining/nginx-http-flv-module

# 下载nginx源码
wget http://nginx.org/download/nginx-1.17.3.tar.gz
# 下载nginx-http-flv-module
git clone https://github.com/winshining/nginx-http-flv-module.git
# 解压
tar -zxvf nginx-1.17.3.tar.gz
# 进入nginx目录
cd nginx-1.17.3
# 编译配置
./configure --add-module=/root/nginx-http-flv-module
make
make install

nginx会安装到 /usr/local/nginx 目录下。

加入全局变量,修改"/etc/profile"文件:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/nginx/sbin

执行如下命令,使全局变量生效:

source /etc/profile

修改nginx配置文件/usr/local/nginx/conf/nginx.conf,内容如下:

#user  nobody;
user  root;
worker_processes  1;

error_log  /root/www/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}



http {
    include       mime.types;
    default_type  application/octet-stream;

    keepalive_timeout  65;

    server {
        listen       80;

        location / {
            root   /root/www;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /live {
            flv_live on; #打开HTTP播放FLV直播流功能
            chunked_transfer_encoding on; #支持'Transfer-Encoding: chunked'方式回复

            add_header 'Access-Control-Allow-Origin' '*'; #添加额外的HTTP头
            add_header 'Access-Control-Allow-Credentials' 'true'; #添加额外的HTTP头
        }

        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 {
            #push和pull状态的配置

            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /root/www/rtmp; #指定stat.xsl的位置
        }

        #如果需要JSON风格的stat, 不用指定stat.xsl
        #但是需要指定一个新的配置项rtmp_stat_format

        #location /stat {
        #    rtmp_stat all;
        #    rtmp_stat_format json;
        #}

        location /control {
            rtmp_control all; #rtmp控制模块的配置
        }
    }
}

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /tmp;

rtmp {
    out_queue           4096;
    out_cork            8;
    max_streams         128;
    timeout             15s;
    drop_idle_publisher 15s;

    log_interval 5s; #log模块在access.log中记录日志的间隔时间,对调试非常有用
    log_size     1m; #log模块用来记录日志的缓冲区大小

    server {
        listen 1935;

        application myapp {
            live on;
            gop_cache on; #打开GOP缓存,减少首屏等待时间
        }

        application hls {
            live on;
            hls on;
            hls_path /tmp/hls;
        }

        application dash {
            live on;
            dash on;
            dash_path /tmp/dash;
        }
    }
}

建立/root/www/logs目录,用于存放视频流文件:

mkdir /root/www
mkdir /root/www/logs

启动nginx服务:

# 停止服务
nginx -s stop
# 启动服务
nginx

使用ffmepg工具直播推流(这里只推视频流,无声音,具体参数请看ffmepg文档):

./ffmpeg -f dshow -i video="HD WebCam" -r 25 -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v ze
rolatency -f flv "rtmp://192.168.1.100:1935/myapp/test"

使用OBS工具直播推流:

使用flv.js播放:

Demo地址:http://bilibili.github.io/flv.js/demo/

GitHub源码:https://github.com/bilibili/flv.js

 视频直播服务到此搭建完成!

简单实现Web+原生直播 支持H5播放(http-flv 、rtmp)ubuntu+docker+nginx-http-flv-module 说明PS: 为了 能让大部分人看懂,本文会用大白话+多图的方式。 首先得搞明白直播结构,这张图就挺好的,就拿来用了。 基础直播系统结构 视频截图来源:https://www.bilibili.com/video/BV1dv411C7vx 过程采集视频->编码(编码的目的是为了压缩以节省带宽)->把视频推到服务器->服务器分发视频到用户手里(用户类型分为WEB和原生,用户需要解码) 采集、编码、推流、我这边用的是OBS ,直接调摄像头了 服务器方面用的是nginx-ht 阅读详情

相关推荐

使用 Docker 快速体验 WVP GB28181 视频平台

使用 Docker 一步启动 WVP 视频平台,体验效果。

小康子的博客 9205

Linux虚拟化视频

虚拟化诞生的重要原因就是提升资源利用率,从而起到节约成本的主要目的,这也是高级运维工程师必须掌握的技能之一。本套视频完整的讲解了虚拟化在不同阶段出现的关键性技术。Vcent是 VMware 公司出品的企业级虚拟化产品,也是公认最优秀的虚拟化产品之一,在世界百强企业的利用率居高不下。Vcent 是一种基础架构虚拟化,或者我更愿意称它为“传统虚拟化”,基于裸金属结构模式开发而来,大大提升了稳定性以及运行效率。在视频中讲解了虚拟化的常见分类、安装 、网络配置、资源分割等常用技术,让你在生产化境配置中游刃有余!Docker为 DockerCloud公司出品,现已成为了容器级虚拟化的标准方案。Docker的优点非常众多,但是最让人印象深刻的莫过于“秒”级启动了,这是很多平台常用的一种描述方式。其实,这种说法不太友好,应该说为容器的启动时间等于容器内部进程的启动时间,这就可以让我们做到很多事情了。比如,不再去关注进程的失败原因从而找到解决方案,只需关心当前是否存在即可,失败 〉删除容器 〉重新启动容器,成了我们常见的操作。视频中对Docker技术的讲解非常细致,Docker常用命令、网络、存储、驱动、仓库一应俱全,是你走入容器世界的必备资料OpenStack,也就是常说的云计算平台,它在云计算市场的使用率达到了自然垄断的地位。比如:阿里云、百度云、红帽云平台等都是使用OpenStack作为底层平台为构建基础。如果你处于云计算行业,那么OpenStack是你的必备技能。视频中对OpenStack框架进行分离讲解,对不同的组件进行解析安装到最终的实例部署构建,带你走入云计算的大门!关于虚拟化的技术,这里应有尽有,快来学习吧!本视频中:01-02为虚拟化概述03-06为Vcent07-29为Docker30-53为云计算OpenStack

【云原生之Docker实战】使用Docker部署FireShare轻量视频分享平台

【云原生之Docker实战】使用Docker部署FireShare轻量视频分享平台

jks212454的博客 1939

docker制作m3u8web播放器镜像基于nginx-alpine镜像

ZY Player Web项目:https://github.com/Hunlongyu/ZY-Player-Web。这是一个开源的m3u8 web播放器。我们基于这个项目进行打包。打包使用的Dockerfile。

gsls200808的专栏 7171

《玩转Docker》[应用篇14]:在线观影应用推荐:Docker安装LibreTV

LibreTV是一款开源免费的视频聚合平台,具有以下特点:采用纯前端技术,支持1080P/4K高清播放且无广告;提供多源搜索功能,能自动匹配最佳播放源;支持跨平台观看、记录同步和自定义订阅;资源占用低(仅50MB内存),每日自动更新片源。部署简单,可通过Docker快速安装,适合各类用户使用。主要功能包括自定义API接口、HLS流媒体支持、广告过滤等,提供纯净流畅的观影体验。

专注大数据、云计算、人工智能、机器人领域技术传播 2476

nginx-http-flv-module:基于nginx-rtmp-module的流媒体服务器。 除了nginx-rtmp-module提供的功能外,现在还支持HTTP-FLV,GOP缓存和VHOST(一个IP用于多个域名)

nginx-http-flv-模块 基于流媒体服务器。 。 如果您喜欢此模块,请捐赠。 非常感谢您! 欣赏 的创建者Igor Sysoev。 创建了Roman Arutyunyan。 贡献者,请参阅以获取详细信息。 特征 提供的所有功能。 nginx-http-flv-module和提供的其他功能: 特征 nginx-http-flv-模块 nginx-rtmp-模块 评论 HTTP-FLV(播放) √ X 支持HTTPS-FLV和分块响应 GOP快取 √ X 主机 √ X 忽略listen指令 √ 见备注 必须至少有一个listen指令 仅音频支持 √ 见备注 如果wait_video或wait_key将无法使用 reuseport支持 √ X 访问日志计时器 √ X JSON样式统计 √ X 录音统计 √ X 兼容性 版本应等于或大于1.2.

Docker搭建rtmp视频直播

ffmpeg推流

weixin_48933655的博客 3745

西门子S7-1200的PID应用(恒温热水器)

物料清单:1200PLC一台,模拟量输入模块SM1231(PLC自带的输入通道不支持4-20mA电流输入)一个,PT100一个,温度变送器,热得快,固态继电器。 第一步,硬件接线; 第二步,新建1200工程,添加PLC和模拟量输入模块,修改模块的模拟量输入类型为4-20mA,模拟量模块的IO地址为96-103(8个字); 第三步,新建循环组织块OB30,循环时间选择默认点1...

weixin_30835649的博客 6549

2019052401上传下载在线播放,docker,操作记录

文件上传和下载,在线播放视频 https://blog.youkuaiyun.com/qq_41323314/article/details/80010546 Java实现视频网站的视频上传、视频转码、及视频播放功能 nice https://blog.youkuaiyun.com/yuehailin/article/details/80041413 ssm实现视频的上传与播放 https://blog....

handsomepig123_的博客 1168

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

高效数据迁移:ICCAP到ADS的数据导入与导出实战指南

本文提供了从ICCAP到ADS进行高效、准确数据迁移的实战指南。针对射频与微波电路设计中的关键挑战,详细阐述了迁移前的战略规划、ICCAP数据的精细化导出(包括脚本化批处理)、ADS数据的多种导入方法(如Data Items、DML模型库及编程化API),并强调了数据完整性与准确性验证的重要性,确保模型参数和仿真结果在平台间可靠传递。

weixin_29291185的博客 132

caddy php h5ai,使用Docker快速安装H5ai网盘、内置HTML5视频播放器DPlayer

说明:本镜像由iLemonrain大佬制作,使用的是LOC冻猫大佬修改的H5ai源码,其内置了HTML5视频播放器DPlayer,这里说下安装方法。安装本镜像使用环境为Apache 2.4、PHP 7.1。1、安装Docker#CentOS 6rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarc...

weixin_42517406的博客 1566

Versal ACAP NoC实战:像理解计算机网络一样配置AXI NoC,打通PS与PL数据通路

本文深入探讨了Versal ACAP NoC的配置与优化,通过计算机网络类比解析NoC架构,详细介绍了在VD100开发板上配置AXI NoC实现PS与PL数据交互的实战步骤。文章涵盖NoC组件功能、Vivado配置技巧、性能优化方法及常见问题解决方案,帮助开发者高效打通Versal芯片的数据通路。

weixin_42665255的博客 291

Docker nginx容器代理播放m3u8视频文件(HLS)

M3U8和HLS协议被广泛地支持,在各种设备和平台上都可以播放,包括iOS、Android、Windows、macOS等。因此,虽然在某些情况下,直接链接到视频文件可能更简单,但使用M3U8和HLS协议可以提供更强大和灵活的流媒体解决方案。:由于M3U8将媒体内容分割成多个小段,所以即使在下载过程中出现问题,也只会影响到当前的段,而不是整个视频。这个脚本将启动一个新的Docker容器,并映射主机的80端口到容器的80端口。:M3U8可以用于实时的流媒体广播,也可以用于点播内容。

Dontla的博客 7791

Ubuntu环境下读取罗技G29方向盘信息

Ubuntu环境下读取罗技G29方向盘信息

工大机器人工作室 3463

宝塔部署若依前端出现502解决方法

若依系统是一个基于Java语言的开源项目,旨在帮助开发者减少开发时间,特别适用于需要快速开发出一套具有用户管理、菜单管理、权限管理、定时任务、日志管理等功能的简单系统。系统分为前后端分离、分布式等架构前后端分离部署教程然而通过宝塔来部署若依系统会遇见一些问题,特此在这里记录一下。

m0_74823683的博客 776

Docker搭建Plex流媒体服务并播放自己本地视频

Docker搭建Plex流媒体服务并播放自己本地视频

weixin_45565886的博客 1万+

巨详细Java JDK环境配置(Mac 版)

本篇最详细保姆级教程Mac OS上安装JDK以及配置环境细化每个步骤过程认真看完。

EverythingDone的博客 1万+

使用Docker搭建DPlayer视频弹幕接口API后端[DPlayer视频弹幕搭建教程]

使用Docker搭建DPlayer视频弹幕接口API后端[DPlayer视频弹幕搭建教程] 原文地址:https://www.moerats.com/archives/838/ 说明:之前有同学要求博主出个DPlayer弹幕后端搭建教程,刚好本博客的Handsome主题更新并完美适配了Dplayer,然后就研究了下,发现了点小问题,如作者提供的弹幕API加载不出弹幕,而且Typecho当中的Dplayer插件有点旧无法对接V3后端,不知道其它程序插件是不是这样,这里博主只能使用HTML代码直接输出调用,

sinzen的博客 2935

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

docker部署ffserver(docker-compose封装)播放本地视频以及推流案例

部署成功后就一个想法:“差之毫厘谬以千里”。以供大家参考 注:要按照步骤来部署 FFserver是一个用于音频和视频流媒体服务器 1.创建docker-compose.yml(在自己常用的目录下方便管理运行) ------------------(配置开始)---------------------- vi docker-compose.yml 填写如下配置文件,esc :wq 保存退出 ffs...

记录点滴生活 4261

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

什么是self-hosted?一条Docker命令,免费搭建你自己的Webtor在线BT播放与直连下载平台

**self-hosted** 是 [webtor.io](https://webtor.io) 的自托管版本,实现为一个 **all-in-one Docker 镜像**:一条 `docker run` 命令,就能免费搭建属于你自己的 Webtor 平台——在线播放 BT 种子视频、直连下载(DDL)、无需下载即可打包 ZIP,还内置了数据库、对象存储和转码服务,开箱即用。 ## 一、什么是

gitblog_01020的博客 504

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

docker 搭建 nginx+rtmp+hls(ffmpeg) 直播服务

前提条件:有一个能够正常使用的代理软件 在 Linux (这里假设是CentOS)上执行: vim /etc/profile 添加以下几行:export https_proxy=http://<代理服务器的ip地址>:<代理端口> export http_proxy=http://<代理服务器的ip地址>:<代理端口> export all_proxy=socks5://代理服务器的ip地址>:<代理端口> 之后执行生效: so

JineD的博客 1286

个人可搭建在线影视资源站,支持docker一键部署

如果你手上有一些有价值的视频资源,可以通过本技术实现在线变现,赶快来试试吧。

JAVA拾贝 5874

linux下使用nginx-http-flv-module转发码流,web使用flv.js直播码流。

记录一下linux下 rtsp/rtmp 转 rtmp/http-flv 码流完成的步骤,帮助你少走弯路

a_917的博客 6818

Dockerfile:Dockerfile构建nginx+nginx-rtmp-module+ffmpeg视频直播服务镜像

前言 简介:在搭建视频流直播服务时需要用到ffmpeg、nginx、nginx-rtmp-module,从而实现推流和拉流。但传统的安装方式需要安装各种依赖,受服务器系统的影响,安装繁琐。在此编写Dockerfile用于构建一个docker镜像,实现跨平台一键式安装。 不废话了,直接上Dockerfiel配置 附带docker仓库地址 点我 https://hub.docker.com mkdi...

qq_38181949的博客 1679
上一篇: 【人工智能笔记】第二节:Mask R-CNN物体检测原理及结构分析
下一篇: 【人工智能笔记】第三节:TensorFlow 2.0即刻执行模式与JIT编译模式
PPHT-H
博客等级 码龄18年 6254粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPHT-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值