i.MX6ULL - 远程视频监控方案实现(nginx-rtmp流媒体服务器、ffmpeg推流)

news2025/1/1 22:49:33

i.MX6ULL - 远程视频监控配置(nginx-rtmp流媒体服务器、ffmpeg推流)


目录

  • i.MX6ULL - 远程视频监控配置(nginx-rtmp流媒体服务器、ffmpeg推流)
      • 1、前言
      • 2、buildroot文件系统构建
        • 2.1 勾选alsa-utils(选做:如果你需要推音频就勾选上)
        • 2.2 勾选ffmpeg
        • 2.3 勾选mjpg-streamer(选做)
        • 2.4 勾选nginx
      • 3、编译测试
      • 4、后记


1、前言

         ~~~~~~~~         该远程视频监控实现主要是参考了正点原子和韦东山老师的教程,再加上我自己的偷懒融合而成。(<_>:其实是我自己的目的是为了快速实现,用以验证方案,后续有一个项目需要用到。。。)

         ~~~~~~~~         正点原子的视频监控项目是手动移植ffmpeg、nginx、alsa-utils(处理音频的软件)到开发板上,我自己尝试移植了一下,虽移植成功,但步骤比较繁琐且不一定会遇到什么问题要去解决,所以也没法写一个固定步骤的文档教程。

         ~~~~~~~~         后来看到韦东山老师的教程,发现用buildroot构建文件系统的时候,buildroot的工具包内ffmpeg和nginx都包含了,那么索性直接用buildroot文件系统就得了,不需要自己手动移植了。


2、buildroot文件系统构建

基本构建:参考正点原子《I.MX6U嵌入式linux驱动开发指南》Buildroot根文件系统构建这一章节,当然,我自己也手把手做了一遍并写了一个博客,见此:https://blog.csdn.net/qq153471503/article/details/127017247

基于此基本文件系统,我们开始添加ffmpeg、nginx、alsa-utils的编译。

2.1 勾选alsa-utils(选做:如果你需要推音频就勾选上)

Target packages > Audio and video applications > alsa-utils

全部勾选。

如下图所示:

Target packages > Libraries > Audio/Sound > alsa-lib

全部勾选,如下图:

2.2 勾选ffmpeg

Target packages > Audio and video applications > ffmpeg

全部勾选,如下图所示:

2.3 勾选mjpg-streamer(选做)

Target packages > Networking applications

勾选: mjpg-streamer

如下图所示:

2.4 勾选nginx

Target packages > Networking applications > nginx

全部勾选,如下图所示:

由于nginx本身是没有rtmp功能的,是依靠第三方模块支持的,所以需要将模块一同编译进nginx。

additional modules就是用于指定第三方模块的目录。

填上:/opt/yijie/buildroot-2022.02.5/dl/nginx/nginx-http-flv-module

这是我下载的nginx-http-flv-module。

建议是放到buildroot-2022.02.5/dl/nginx/目录下,如果没有nginx目录则创建。

可以在buildroot-2022.02.5/dl/nginx/目录下使用git直接下载:

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

说明:nginx-http-flv-module是基于nginx-rtmp-module的二次开发,比nginx-rtmp-module支持的功能更多了,详细介绍可见:https://github.com/winshining/nginx-http-flv-module


3、编译测试

以上配置完之后就可以编译了,启动测试见:https://blog.csdn.net/qq153471503/article/details/127017247。

启动后,开发板打印:

可以看到自动打印 start nginx,默认开机启动。

修改buildroot文件系统中nginx默认配置文件:/etc/nginx/nginx.conf

在该文件末尾加入:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;#上传flv文件块儿的大小
        application live {
             live on;#开启live的应用
             allow publish 127.0.0.1;
             allow play all;
        }
    }
}

保存退出后,重启nginx:

/etc/init.d/S50nginx restart

此时,推流的地址就是:rtmp://127.0.0.1:1935/live/xxxxx

其中,xxxxx可以自定义。

使用ffmpeg推流测试:

成功推流。

在windows上使用vlc播放器拉流查看视频:

成功拉流播放:


4、后记

本编文章快速验证了方案可行性,后续的视频监控项目即可以此来做。

imx6ull的性能太拉胯了,使用uvc的usb摄像头需要经过转码,所以vlc播放器拉流播放会异常的卡!

后续打算使用全志的SOC来做此方案。


ends…

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

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

相关文章

桥接模式与NAT模式的区别以及设置静态IP

概述 日常我们都会使用到虚拟机&#xff0c;本文章以VMware虚拟机为例&#xff0c;主要介绍下虚拟机设置桥接模式与NAT模式的区别&#xff0c;并通过示意图进行讲解。并且会介绍如何去设置静态IP。 模式介绍 NAT模式NAT模式下 &#xff0c;创建出来的虚拟机只能访问当前主机…

基于ensp的跨地区的校园网组网方案

本博客是基于模拟器ensp的校园网组网方案&#xff0c;有总校区和分校区&#xff0c;主要用了vlan划分、dhcp、nat、ospf、acl、bgp等技术。首先说一下本博客的局限性&#xff1a; 总校区和分校区之间只是使用的传统的bgp建立连接&#xff0c;这样可以在运营商上看到内网的明细&…

HTTP1.1(七)内容协商和资源表述

一 内容协商和资源表述 ① 铺垫 1) 由于一种资源对应许多种状态,所以客户端接收资源表述的转移时需要进行协商比如&#xff1a;[1]、一个来自中国的用户他的浏览器访问一个页面时得到中文页面[2]、一个其它国家的用户访问同一个页面时得到的是他本国的页面补充&#xff1a;…

在线协作助力团队合作:解析多种高效工具实现团队协同

在线协作是通过网络为平台&#xff0c;将团队成员连接起来&#xff0c;使其共同创作、共享讯息&#xff0c;进行团队合作。这种协作方式突破了线下的空间限制性&#xff0c;使团队合作更加及时便捷。因此&#xff0c;越来越多的团队选择了在线协作。 在线协作为团队带来了什么帮…

IDEA 2019.1 与 apache-maven-3.6.3 版本不兼容解决办法

-------IDEA 2019.1 与 apache-maven-3.6.3 版本不兼容 解决办法&#xff1a;降低 Maven版本为 3.3 到底得踩过多少坑&#xff0c;才能让你不再流泪&#xff0c;

接初识HTML中的基础知识,简单明了!!!

续——HTML的基础知识&#xff01;&#xff01;&#xff01; 一、表格 关于HTML中用table表示一个表格&#xff0c;用tr来表示一行&#xff0c;用td来表示一列。 Demo&#xff1a;表示一个二行三列的表格 <!--根--> <html><!--头--> <head><…

瑞吉外卖 - 文件上传与下载功能(15)

某马瑞吉外卖单体架构项目完整开发文档&#xff0c;基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成&#xff0c;有需要的胖友记得一键三连&#xff0c;关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料&#xff1a;https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

pandas dataframe 中 explode()函数用法及效果

最近在使用pyspark处理数据&#xff0c;需要连接各种各样的表和字段&#xff0c;因此记录相关函数的使用情况。今天介绍explode(). 1. explode()函数简介 explode 函数是 pandas.DataFrame 类的一个方法&#xff0c;能够通过pyspark间接调用。 它可以将一个包含list或者其它可…

【零基础学JS - 7 】javaScript 中的8大数据类型

&#x1f468;‍&#x1f4bb; 作者简介&#xff1a;程序员半夏 , 一名全栈程序员&#xff0c;擅长使用各种编程语言和框架&#xff0c;如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个…

Python之selenium关于Chrome驱动位置,闪退的问题和安装路径

目录 零、查看Python的安装路径一、Chromedriver放置的位置二、浏览器闪退 零、查看Python的安装路径 一、Chromedriver放置的位置 背景&#xff1a;之前由于Chrome浏览器自动升级后&#xff0c;导致驱动与浏览器不匹配&#xff0c;自己也不知道问题出在哪儿&#xff0c;花费了…

hadoop和spark配置问题记录

hadoop和spark配置问题记录 Spark的WebUI访问不了 直接启动的start-all.sh是环境变量中配置的hadoop的脚本&#xff0c;不是spark的&#xff0c;因此启动spark的start-all.sh脚本即可。 Spark看不到Worker信息 启动Spark在UI界面上看不到worker节点的信息_潇洒哥WH3的博客-C…

【Java|基础篇】包和访问权限修饰符

文章目录 1. 前言2. 包的概念3. 包的创建以及优点4. 访问权限修饰符5. 总结 1. 前言 包和访问权限修饰符是Java中两个常用的概念&#xff0c;它们都与访问控制有关. 2. 包的概念 在面向对象体系中&#xff0c;提出了一个软件包的概念&#xff0c;即&#xff1a;为了更好的管…

代码随想录算法训练营第四十四天 | 完全背包、完全背包的遍历顺序

完全背包 理论基础 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;带你学透完全背包问题&#xff01; 和 01背包有什么差别&#xff1f;遍历顺序上有什么讲究&#xff1f;_哔哩哔哩_bilibili 完全背包和01背包问题唯一不同的地方就是&#xff0c;每…

品牌战略规划:如何让你的品牌脱颖而出

虽然很多国内企业家都非常重视战略&#xff0c;什么商业战略、渠道战略之类的一通研究&#xff0c;但惟独却缺乏对品牌战略的一个正确理解。 很多时候一把手不参与&#xff0c;也不关心品牌建设&#xff0c;经常上来就让团队实操动作&#xff0c;而自己只看最终结果&#xff0…

LeetCode20.有效的括号

题目 思路 每一个右括号应该与与在它左边最近的左括号相匹配&#xff0c;所以这道题可以通过栈实现 代码 &#x1f4ac;由于博主还没有学习到C&#xff0c;能力有限&#xff0c;所以只能自己实现一个栈&#xff0c;学过C的朋友可以直接使用CSTL中的栈来实现 #define _CRT_S…

深入理解事务的隔离性 —— 多版本并发控制( MVCC )

文章目录 一、数据库并发的三种场景二、多版本并发控制&#xff08;MVCC&#xff09;的初步认识三、事务的隐藏列字段四、UNDO 日志五、Read View 读视图六、深入理解 MVCC —— 隔离级别的实现原理七、RC 与 RR 的本质区别 一、数据库并发的三种场景 数据库并发指的是多个用户…

如何将Shapefile文件导入Sketch Up进行建模

涉及软件&#xff1a;ArcGIS10.4.1&#xff0c;Sketch Up Pro2022 1.shapefile的属性编辑 基于我们已有的shp文件&#xff0c;打开属性表&#xff0c;添加一个高度字段用于存放平面图形高度信息&#xff0c;为后期三维拉伸做好准备&#xff08;如果已有相关信息&#xff0c;请…

区间合并【pair、sort】

将有交集&#xff08;包括端点&#xff09;的区间进行合并 802. 区间和 - AcWing题库 例如&#xff0c;现在有这样一个数据 1 2 2 4 5 6 7 8 7 9最终合并的结果就是 1 —— 45 —— 67 —— 9 得到三个区间 第一步&#xff1a;按照区间左端点排序 第二步&#xff1a;扫描…

【C++初阶】:模板初阶

模板初阶 一.函数模板1.简单使用2.模板原理3.函数模板的实例化4.模板参数的匹配原则 二.类模板1.基本格式2.类模板实例化 一.函数模板 1.简单使用 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型产生函数的…

【OJ比赛日历】快周末了,不来一场比赛吗? #05.20-05.26 #10场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-05-20&#xff08;周六&#xff09; #4场比赛2023-05-21…