[笔记]Qt5+FFMpeg+Opencv 实现实时美颜直播推流《一》基础知识以及直播服务器配置

简介: [笔记]Qt5+FFMpeg+Opencv 实现实时美颜直播推流《一》基础知识以及直播服务器配置

前言

一、基础知识

1.1 直播推流流程分析

1.1.1 直播推流流程分析

推流协议:rtmp

直播服务器CDN:

  • nginx-rtmp模块
  • crtmp-server

客户端播放协议:

  • rtmp
  • http-flv adobe的
  • hls(苹果的延迟10s左右)

准备:

vlc

ffplay

基于flash的插件

1.1.2 推流过程

1.1.2 直播rtmp协议分析

RTMP

  • (Real Time Messaging Protocol,实时消息传送协议)
  • RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。

RTSP(Real Time Streaming Protocol) 实时流传输协议,是TCP/IP协议体系中的一个应用层协议

RTP,即real-time transport protocol(实时传输协议),为实时传输交互的音频和视频提供了端到端传输服务。其中包括载荷的类型确认,序列编码,时间戳和传输监控功能。一般应用都是基于UDP协议,来使用RTP的多路技术以及验和服务。

RTCP,即实时传输控制协议(Real-time ControlProtocol,RTCP)

SDP全称是Session Description Protocol,翻译过来就是描述会话的协议。主要用于两个会话实体之间的媒体协商。什么叫会话呢,比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。

SIP(Session Initiation Protocol),是基于IP的一个应用层控制协议。由于SIP是基于纯文本的信令协议,可以管理不同接入网络上的会话等。会话可以是终端设备之间任何类型的通信,如视频会话、既时信息处理或协作会话。该协议不会定义或限制可使用的业务,传输、服务质量、计费、安全性等问题都由基本核心网络和其它协议处理。

RTMP优缺点
  • 优点
    主流CDN支持,市面上绝大多数的直播产品采用。一协议简单易实现
  • 缺点
  1. 基于TCP协议开销大
  2. Adobe私有协议 不维护了
RTMP协议类型
  1. 工作在ILPL上口J文A.可宝越方火墙;
  2. RTMPT封装在HTTP请求之中,可穿越防火墙;
握手

推流

二、流媒体服务器

2.1 直播服务器

  • 七牛、腾讯、网易
  • red5 ( java)和FMS商用
  • crtmpserver (开源)
  • Nginx+RTMP插件(开源)

ubuntu 搭建crtmp流媒体服务器

  1. 虚拟机创建
  2. 安装OpenSSH
shiver@ubuntu:~$ sudo apt-get install openssh-server
The following packages have unmet dependencies:
 openssh-server : Depends: openssh-client (= 1:7.6p1-4ubuntu0.5)
                  Depends: openssh-sftp-server but it is not going to be installed
                  Recommends: ssh-import-id but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
shiver@ubuntu:~$ sudo apt-get install openssh-client 
shiver@ubuntu:~$ sudo apt-get install openssh-server

先卸载client版本 在安装 会有奇效,我是ubuntu18

  1. SSH连接本地虚拟机

[LINUX]使用SSH通过主机访问本地VMware虚拟机

  1. crtmpserver编译

windows/ubuntu编译crtmpserver

参考 crtmpserver系列(二):搭建简易流媒体直播系统

1.2 下载ffmpeg工具推流并使用功能vlc拉流播放测试

1.3 nginx-rtmp源码下载、编译运行(ubuntu)

crtmp参考1.2

windows搭建流媒体服务器

Windows10下nginx的rtmp服务器搭建

直接使用Docker搭建好的CDN服务器

docker安装nginx+rtmp模块搭建服务器实现ffmpeg推流+ffplay播放

Docker简易搭建个人直播流rtmp服务器总结


相关文章
|
18天前
|
弹性计算 监控 开发工具
【阿里云弹性计算】阿里云ECS的网络优化实践:VPC配置与网络性能提升
【5月更文挑战第29天】阿里云ECS通过虚拟私有云(VPC)提供高性能、安全的网络环境。VPC允许用户自定义IP地址、路由规则和安全组。配置包括:创建VPC和交换机,设定安全组,然后创建ECS实例并绑定。优化网络性能涉及规划网络拓扑、优化路由、启用网络加速功能(如ENI和EIP)及监控网络性能。示例代码展示了使用Python SDK创建VPC和交换机的过程。
179 3
|
1天前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割
|
1天前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
|
1天前
|
计算机视觉 索引 Python
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
|
1天前
|
机器人 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记__第一章
openCV 3计算机视觉 Python语言实现 笔记__第一章
|
6天前
|
Web App开发 安全 Linux
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
《FFmpeg开发实战》书中介绍轻量级流媒体服务器MediaMTX,但其功能有限,不适合生产环境。推荐使用国产开源的ZLMediaKit,它支持多种流媒体协议和音视频编码标准。以下是华为欧拉系统下编译安装ZLMediaKit和FFmpeg的步骤,包括更新依赖、下载源码、配置、编译、安装以及启动MediaServer服务。此外,还提供了通过FFmpeg进行RTSP和RTMP推流,并使用VLC播放器拉流的示例。
20 3
FFmpeg开发笔记(二十六)Linux环境安装ZLMediaKit实现视频推流
|
8天前
|
并行计算 Ubuntu 计算机视觉
【边缘智能】Jetson板卡上安装QT5与OpenCV集成
【边缘智能】Jetson板卡上安装QT5与OpenCV集成
10 0
|
8天前
|
计算机视觉
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
9 0
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
|
8天前
|
NoSQL 关系型数据库 应用服务中间件
jdk1.8、mysql、redis、nginx centos云服务器安装配置
jdk1.8、mysql、redis、nginx centos云服务器安装配置
|
9天前
|
缓存
蓝易云 - Cygwin代理服务器apt-cacher-ng搭建及配置
以上就是在Cygwin环境下搭建和配置apt-cacher-ng代理服务器的基本步骤。
11 1

推荐镜像

更多