当前位置: 首页 > news >正文

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地址和端口设置

相关文章:

  • 新渠道+1!TDengine Cloud 入驻 Azure Marketplace
  • 代码随想录刷题复习day01
  • Java多线程设计模式之保护性暂挂模式
  • 关于Threejs的使用二
  • 东芝-Soft Limit 报警及其解决办法
  • 代码随想录算法训练营第29天(贪心)|455.分发饼干、376. 摆动序列、53. 最大子序和
  • C语言 图的基础知识
  • HTTP/2 协议学习
  • VMware ESXi 8.0U2c macOS Unlocker OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)
  • 流程图工具评测:十大热门软件对比
  • Spring Boot 中如何解决跨域问题、Spring Cloud 5大组件、微服务的优缺点是什么?
  • 模拟原神圣遗物系统-小森设计项目,设计圣遗物(生之花,死之羽,时之沙,空之杯,理之冠)抽象类
  • 【软件测试】软件测试入门
  • AOSP开发环境搭建
  • 志愿服务管理系统的设计
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 10个最佳ES6特性 ES7与ES8的特性
  • Js基础知识(一) - 变量
  • php面试题 汇集2
  • React 快速上手 - 07 前端路由 react-router
  • Zsh 开发指南(第十四篇 文件读写)
  • 关于Java中分层中遇到的一些问题
  • 线上 python http server profile 实践
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​数据结构之初始二叉树(3)
  • !!java web学习笔记(一到五)
  • #职场发展#其他
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (11)iptables-仅开放指定ip访问指定端口
  • (2)nginx 安装、启停
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (LLM) 很笨
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (十六)Flask之蓝图
  • (十七)、Mac 安装k8s
  • (数据结构)顺序表的定义
  • (学习日记)2024.01.19
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)http协议
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET Core 中插件式开发实现
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ C++ ] STL_list 使用及其模拟实现
  • [000-002-01].数据库调优相关学习
  • [100天算法】-不同路径 III(day 73)
  • [BJDCTF 2020]easy_md5
  • [C]整形提升(转载)
  • [Docker]十.Docker Swarm讲解
  • [ESP32 IDF]web server
  • [java][代码]DateUtil用于处理日期和时间