| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> imx6ull开发板 ffmpeg nginx buildroot 摄像头推流实验 -> 正文阅读 |
|
[系统运维]imx6ull开发板 ffmpeg nginx buildroot 摄像头推流实验 |
主要难点是 1、如何编译出ffmpeg和nginx 2、编译好ffmpeg和nginx如何移到开发板 3、usb摄像头缺少设备节点怎么处理 参考资料:1、buildroot构建IMX6ULL文件系统(含QT5)_风轻云淡的博客-CSDN博客_buildroot qt??????2 2、百问网韦东山老师【物联网实战项目】手把手教你如何从0搭建智慧家居中的视频监控系统 3、【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6 4、100ask_imx6ull视频监控项目-流媒体方案的实现之Nginx(四)_Jocelin47的博客-CSDN博客_imx6ull项目 准备工作硬件:韦东山 imx6ull pro开发板、USB免驱摄像头(非韦东山店铺所售那个,随便买的) 交叉编译链:确保已经配置好交叉编译环境,基础内容此处不赘述 源码:正点原子提供的buildroot 2019.2源码,可在下列链接里找到 i.MX6ULL Linux阿尔法开发板 — 正点原子资料下载中心 1.0.0 文档 【正点原子】阿尔法Linux开发板(A盘)-基础资料\01、例程源码\08、buildroot源码 一、配置buildroot1、解压源码????????复制源码到ubuntu中,然后解压tar -vxjf?buildroot-2019.02.6.tar.bz2 2、打开配置界面进入buildroot目录,然后make clean 然后 make menuconfig打开图形配置界面 3、配置 Target options配置后如下图所示 ?4、配置Toolchain跟着下图进行配置
4.1先把第一项Tooolchain type配置成External toolchain,才会出现其他选项 4.2其中有差异的主要是Toolchain path,这个需要根据自己用的交叉编译链设置对应路径 , 4.3 然后gcc version 和 kernel headers series我的ubuntu环境分别是6.x和4.6.x,需要根据自己的环境来配,如果配错了,编译时会报错提示说希望是什么版本,但是实际检测到什么版本,根据提示检测到的实际版本,回去配置修改即可 5、配置 System configuration
6、配置 Filesystem images
7、禁止编译 Linux 内核和 uboot主要为了提高编译速度,默认我看了是没有选的,可以去看看确认下
8、ffmpeg和需要用到的依赖ffmpeg用于处理输入视频数据和推流,功能强大 8.1 选中alsa-lib音频相关库 Target packages → Libraries → Audio/Sound? ?8.2 选中alsa-utils音频相关应用 Target packages → Audio and video applications ?选中后回车进去把能选的都选上 ?8.3 选中ffmpeg视频处理核心应用 Target packages → Audio and video applications ?选中后,回车进去,把能选的都选上 ?9、nginx配置Target packages → Networking applications? 9.1需要下拉找到nginx后选中 9.2 选中后回车进去nginx配置,把里面所有配置项,都选中 9.3 然后在additional modules项回车 添加http-flv模块:$(TODIR)/dl/nginx/nginx/nginx-http-flv-module 9.4 去掉lighttpd服务 默认已经去掉了,主要是防止和nginx并存,可以看看确认下 Target packages → Networking applications? 10 保存配置,再退出不要直接退出,万一操作失误没保存,1234上面的配置再来一次 11 创建nginx路径并下载模块在buildroot下创建目录? dl/nginx,在该目录下,输入下列命令获取模块源码
?二、编译buildroot和处理编译出来的文件编译在buildroot源码根目录下 sudo make 编译时常见错误1、Toolchain中编译工具路径弄错 2、Toolchain中g编译链或者kernel版本弄错 解压文件系统编译后,在output/images目录下会有rootfs.tar 复制rootfs.tar 到ubuntu某个路径下并解压tar -vxf rootfs.tar,准备复制需要的文件 解压后,得到下列文件 三、复制执行文件到开发板这一步是简单且繁琐的 复制ffmpeg1、先检查开发板有没有自带ffmpeg ? ? ? ? 输入ffmpeg,如果提示命令搜不到就是没有,如果出来一堆使用说明的话,说明自带了那2步可跳过 2、假设开发板没有自带ffmpeg,那就需要复制了 2.1复制 usr/bin 目录下的ffmpeg到开发板/usr/bin目录下 2.2运行ffmpeg ? ? ? ? 此时会报错缺少库文件或其他依赖 2.3 报错提示缺少文件后,从解压出来的rootfs中find -name "*xxxx*"查找,xxx是文件的名称,找到后,复制到开发板相同的目录下 2.4 复制后然后运行ffmpeg,还提示缺少其他库文件的话,继续重复2.3步骤,直到命令正常运行出现下列信息 配置nginx可能有的开发板会自带nginx,但是因为缺少对RTMP推流的支持,所以我们还是用自己编译好的? 1、复制nginx相关文件在解压出来的rootfs的usr/sbin/路径下找到nginx,复制到开发板/usr/sbin/路径下 执行nginx,会报错提示找不到需要的文件 可以用下面提供的命令复制,也可以自己从解压出来的rootfs中find -name "*xxxx*"查找,xxx是文件的名称,找到后,复制到开发板相同的目录下?
2、修改nginx配置文件vi /etc/nginx/nginx.conf 2.1 修改worker_processes改为auto ?2.2 增加下列代码
2.2 http 里面添加红色框选项 注意这里复制进去运行时经常提示unkonw错误,对有问题的提示行可手动敲到配置文件里
3? 重启nginx服务/etc/init.d/S50nginx restart 如果修改的配置文件格式异常,就会报错,请根据提示修改或者百度下 我遇到的错误 1)提示unknown directive "?",好像和编码格式有关,好像是因为复制WINDOW 的txt文件就会出现 2)提示格式不对,这种需要根据提示处理了,可能复制的过程多些额外的符号 ?4 疑惑网上看其他教程,这个时候在浏览器上输入IP地址,就会出现nginx的信息,我测试只有404 四、推流测试验证nginxRTMP服务是否正常1、开发板输入:ffmpeg -re -i 123.mp4 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/wei 其中123.MP4是我的测试视频 2、启动VLC media player(百度后下载) 打开网口串流,输入:rtmp://192.168.1.3/live/wei 或者:http://192.168.1.3/test?app=live&stream=wei ?然后点击左下角的播放,即可看到画面 摄像头推流1、插入USB免驱摄像头检查是否有video1节点 ? ? ? ? ls /dev/video* ? ? ? 如果?插入摄像头后没有设备节点video1,按以下方法处理: 原因是因为内核没有自动加载相关驱动,我的方法是重新配置linux内核,把USB Video Class(UVC)从M改为* 进入linux源码,make menuconfig打开图形界面 路径Device Drivers → Multimedia support → Media USB Adapters? ?make zImage -j4 编译好linux内核后把arch/arm/boot/zImage替换到开发板/boot/zImage 2、开发板对摄像头数据推流 ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 -f flv rtmp://127.0.0.1/live/wei 3、启动VLC media player(百度后下载) 打开网口串流,输入:rtmp://192.168.1.3/live/wei 或者:http://192.168.1.3/test?app=live&stream=wei ?然后点击左下角的播放,即可看到画面 浏览器观看参考以下文章 使用flv.js快速搭建html5网页直播_impingo的博客-CSDN博客_flv html 根据上面文章提供的百度网盘链接下载测试网页 链接:?百度网盘 请输入提取码 解压后打开里面的index.html 在Stream URL栏输入http://192.168.1.3/test?app=live&stream=wei 点击右边按钮Swotch URL后,再点击左下角的Load按钮,正常的话即有视频。建议这里先用视频文件测试不要用摄像头,因为摄像头比较卡 我自己弄的时候一开始总是显示不了,发现是添加到nginx.conf的命令敲错了,请重点检查下图位置 测试用摄像头推流,浏览器显示一直不成功,研究中。。。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:29:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |