Linux--视频推流及问题

方案一: 

·mjpg-streamer,它运行在ARM板上
·在手机上使用浏览器直接观看视频

方案二:

推流端(Fmpeg)--rtmp-->Nginx(流媒体服务器)--rtmp/httpflv/hls-->浏览器、播放器

此篇文章记录方案二的具体细节

一、FFmpeg

FFmpeg是一款开源软件,是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

1、音视频数据处理流程

2、FFmpeg的组成

组成部分

  相关概念:

常用参数:

有关利用Buildroot安装ffmpeg并编译生成开发板上的镜像文件的配置可参考imx6ull开发板 ffmpeg nginx buildroot 摄像头推流实验_韦东山 200万免驱摄像头-CSDN博客

linux之buildroot(2)配置toolchain_使用buildroot创建自己的交叉编译工具链-CSDN博客

基于恩智浦imx6ull处理器的buildroot详细使用步骤 - 嵌入式技术 - 电子发烧友网

二、Ubuntu中Nginx搭建流媒体服务器

选择Ubuntu为流媒体服务器,所以在Ubuntu中利用Nginx搭建服务器。参考文章:

Ubuntu系统使用Nginx搭建RTMP服务器实现推流_ubuntu nginx rtmp-CSDN博客

在ubuntu 上搭建Nginx-RTMP 直播服务器_ubuntu nginx rtmp-CSDN博客

Linux下使用Nginx搭建Rtmp流媒体服务器,实现视频直播功能_linux rtmp服务器播放卡-CSDN博客

问题一:在执行$ git clone https://github.com/nginx/nginx.git命令时出现问题:

fatal: unable to access 'https://github.com/nginx/nginx.git/': Failed to connect to github.com port 443: Connection refused

fatal: unable to access 'https://github.com/nginx/nginx.git/': Failed to connect to github.com port 443: Connection refused

参考https://zhuanlan.zhihu.com/p/620860502这篇文章解决,将https更改为http,两者的区别为前者加密后者不加密,s代表着SSL协议,依靠证书来验证身份。

问题二:在执行make j4 && make install语句时出错,因为显示了Permission denied的错我,所以在命令前加了sudo,但显示结果还是不对

解决:是因为在命令 sudo make -j4 && make install 中,make -j4 部分是在以超级用户权限运行,而 make install 部分是在当前用户权限下运行。这是因为 && 运算符将两个命令连接起来,但不会自动继承前一个命令的权限。正确语句:

sudo make -j4 && sudo make install

问题三:启动nginx时出现

nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)
2024/06/20 07:42:49 [emerg] 46729#0: mkdir() "/usr/local/nginx/client_body_temp" failed (13: Permission denied)

解决:根据信息Permission denied权限不够就sudo chmod,文件不存在就根据错我信息提示在该路径下创建文件,目录不存在也是一样。最后sudo nginx启动成功。

启动成功后就可以将数据流推送到服务器中。推流端要注意封装格式、编码器的选择、IP地址和端口设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Meta悄咪咪的发布多款AI新模型

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

自定义线程池

自定义线程池需要什么 需要哪些类 MyTask /*** 自定义线程池任务* 要求每个线程有自己的编号* 线程的执行时间为0.2s*/ Data public class MyTask implements Runnable{private int id;MyTask(int id) {this.id id;}Overridepublic void run() {String name Thread.curren…

基于Java的家政服务管理平台

开头语:你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:B/S结构,SpringBoot框架 工具:MyEclipse,Nav…

网络编程5----初识http

1.1 请求和响应的格式 http协议和前边学过的传输层、网络层协议不同,它是“一问一答”形式的,所以要分为请求和响应两部分看待,同时,请求和响应的格式是不同的,我们来具体介绍一下。 1.1.1 请求 在介绍请求之前&…

Github生成Personal access tokens及在git中使用

目录 生成Token 使用Token-手工修改 使用Token-自动 生成Token 登录GitHub,在GitHub右上角点击个人资料头像,点击Settings → Developer Settings → Personal access tokens (classic)。 在界面上选择点击【Generate new token】,填写如…

Java 笔记:常见正则使用

文章目录 Java 笔记:常见正则使用正则简介常用匹配年月日的时间匹配手机号码校验 参考文章 Java 笔记:常见正则使用 正则简介 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但…

手机携号转网接口查询与对接指南:技术开发者必备手册

在当今通信技术飞速发展的背景下,手机携号转网已成为推动电信市场竞争、保障用户权益的重要手段。而对于技术开发者而言,掌握手机携号转网接口的查询与对接方法,无疑是提升服务兼容性和用户满意度的关键。 比如如下应用场景: 1.…

项目八 OpenStack存储管理

任务一 理解OpenStack块存储服务 1.1 •Cinder的主要功能 • 提供 持久性块存储资源,供 Nova 计算服务的虚拟机实例使用 。 • 为 管理块存储设备提供一套方法,对卷实现从创建到删除的整个生命周期 管理。 • 将 不同的后端存储进行封装,对外…

Zynq学习笔记--了解中断配置方式

目录 1. 简介 2. 工程与代码解析 2.1 Vivado 工程 2.2 Vitis 裸机代码 2.3 关键代码解析 3. 总结 1. 简介 Zynq 中的中断可以分为以下几种类型: 软件中断(Software Generated Interrupt, SGI):由软件触发,通常…

Day 46 Redis缓存集群

Redis缓存集群 redis缓存服务 缓存数据库 缓存 ​ 读取数据 cpu ​ L1 L2 L3 L4 ​ 一级缓存 二级缓存 ​ cs context switch 上下文交换 free -m ​ buffer cache mysql服务器 ​ 缓存 表缓存 数据缓存 nginx ​ expire 1d ​ 304响应码 ​ 200 ​ 301 ​ 30…

RS485中继器的作用你还不知道?

RS485是一种串行通信协议,支持设备间长距离通信。RS485中继器则像“传声筒”,能放大衰减信号,延长通信距离,隔离噪声,扩展分支。在实际场景中,如工厂内,通过中继器可确保控制室与远距离机器间通…

嵌入式实验---实验三 定时器实验

一、实验目的 1、掌握STM32F103定时器程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、使用SysTick定时方式控制LED闪烁; 2、使用通用定时器产生PWM脉冲,通过调整占空比实现两个目标: (1&#xf…

RPM命令和YUM命令

目录 一、RPM软件包 1.1、RPM概述 1.2、查询已安装的rpm软件信息 1.3、查询未安装的 RPM 软件包文件中信息 1.4、安装、升级、卸载 RPM 软件包 二、YUM常规命令 三、手动配置Apache(http)服务 3.1、前提条件 3.2、开始配置 3.3、开启验证服务 …

GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了

这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点…

PFC 离散元数值模拟仿真技术与应用

近几年,随着计算能力的提高和算法的优化,离散元仿真技术得到了快速发展,并在学术界产生了大量研究成果。在 PFC 离散元计算中无需给定材料的宏观本构关系和对应的参数,这些传统的参数和力学特性在程序中可以自动得到。据调查&…

深入了解常用负载均衡软件

在构建高性能、高可用的分布式系统时,负载均衡技术扮演着至关重要的角色。它通过合理分发网络请求到后端服务器集群,从而有效提升系统吞吐量、减少响应延迟、并保障系统的稳定运行。本文将介绍几种常用的负载均衡软件,包括它们的优缺点、应用…

Gartner发布2024年人工智能技术成熟度曲线:29项决定人工智能领域发展方向的前沿和趋势性技术

人工智能投资已达到新高,重点是生成式人工智能,但在大多数情况下,该技术尚未实现预期的商业价值。这项研究通过分析各种人工智能创新(其中许多创新正在快速发展),帮助人工智能领导者确定其他值得投资的技术…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

Qemu虚拟机在线迁移到VMware

libvirt版本:libvirt-10.0.0qemu版本:qemu-8.2.0 在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求…

使用 Python 进行测试(5)测试的类型

总结 和我一起唱! 冒烟测试,让你快速失败; 回归测试,不打破过去; 健全性检查,保留所拥有; 集成测试,处理副作用; 端到端,永无尽头! 回测&#xf…