太原城市建设招标网站,天津网站建设举措,上海发布公众号下载安装,视频制作方法如何在armv6 armv6 armv8 aarch64 嵌入式板子上面安装nginx服务器支持推送H265的视频流 开始吧 一#xff0c;准备工作二#xff0c;configure时遇到的出错问题1、checking for C compiler … found but is not working2#xff0c;error: can not detect int size3#xf… 如何在armv6 armv6 armv8 aarch64 嵌入式板子上面安装nginx服务器支持推送H265的视频流 开始吧 一准备工作二configure时遇到的出错问题1、checking for C compiler … found but is not working2error: can not detect int size3解决完上面两处报错后继续执行configure命令。 三make前的需要修改的地方四注意支持拉H265的rtmp的VLC播放工具 为什么要在板子瑞芯微rv1126核心板上面安装nginx服务器是因为我的项目需要用到拉到连接在板子上面的摄像头由于是摄像头是直连摄像头的只能通过板子上面的wifi热点设备先连接这个热点才能获取到这个网络摄像头那么就需要板子做一个推流的服务器让摄像头的画面能够被手机和电脑访问到。
我这边是在代码里面获取rtsp网络摄像头然后通过nginx的rtmp模块推送出去
开始吧
一准备工作 先准备上面的这些资源文件还有就是安装好你的交叉编译工具arm-buildroot-linux-gnueabihf我这边是用在rv1126arm32上面的如果你是arm64像3588的这种就选择相对应的交叉编译工具即可
二configure时遇到的出错问题
解压完成先进入nginx-1.18.0-code/nginx-f8052414dbe9/auto把configure文件拷贝到nginx-f8052414dbe9目录下再回到nginx-f8052414dbe9目录执行以下命令。
./configure --with-cc/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc --with-cpp/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g --prefix/home/erics/Desktop/nginx/20230722a5gFlHUe/nginx-1.18./nginx_install --without-http_gzip_module --with-http_ssl_module --without-http_upstream_zone_module --with-http_auth_request_module --add-module/home/erics/Desktop/nginx/20230722a5gFlHUe/nginx-1.18./nginx-http-flv-module-master --with-pcre/home/erics/Desktop/nginx/20230722a5gFlHUe/nginx-1.18./pcre-8.44 --with-zlib/home/erics/Desktop/nginx/20230722a5gFlHUe/nginx-1.18./zlib-1.2.11 --with-openssl/home/erics/Desktop/nginx/20230722a5gFlHUe/nginx-1.18./openssl-1.1.1f1、checking for C compiler … found but is not working 解决办法找到auto/cc/name文件并打开找到如下并修改代码
if [ $ngx_found no ]; thenechoecho $0: error: C compiler $CC is not foundecho#exit 1 // 这行注释掉
fi2error: can not detect int size 解决方法找到auto/types/sizeof文件并打开找到如下代码
if [ -x $NGX_AUTOTEST ]; thenngx_size$NGX_AUTOTESTecho $ngx_size bytes
fiarmv6 armv7 (arm32)改成如下
if [ -x $NGX_AUTOTEST ]; thenngx_size4echo $ngx_size bytes
fi这里要注意如果你是arrch64 armv8(aarch64)的需要修改成下这样
if [ -x $NGX_AUTOTEST ]; thenngx_size8echo $ngx_size bytes
fi32位目标平台是464位的话是8
3解决完上面两处报错后继续执行configure命令。 三make前的需要修改的地方
找到objs/底下的Makefile文件打开后找到如下两处地方修改成跟如下一样即可开始执行make 然后会遇到openssl编译出错 解决方法 去到openssl-1.1.1f源码目录下找到Makefile并打开搜索m64有两处都删除掉其中有一行整行删除注意然后直接在openssl-1.1.1f源码目录下执行make和make install都成功后回到nginx源码目录继续执行之前未执行完的make。
又会遇到如下的问题
解决方法 找到objs/目录底下的ngx_auto_config.h文件并打开到文件末尾增加如下代码后继续执行make
#ifndef NGX_SYS_NERR
#define NGX_SYS_NERR 132
#endif#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif
如图 即成功了 再make install 会生成如下文件 然后板把这个文件夹打包放到板子里面 我是用的rtmp所以需要配置rtmp修改nginx.conf文件修改成如下 重新启动nginx如果板子里面又有ffmpge的环境可以ffmpge推流试试 或者在浏览器里面输入ip ffmpeg -rtsp_transport tcp -i rtsp://admin:admin123192.1
68.3.13:554/h265/ch1/main/av_stream -vcodec copy -acodec copy -f flv rtmp://192.
168.3.127:1935/rtmplive/home上面的ip修改成了你自己的摄像头ip和推流地址然后用拉流工具查看
四注意 需要注意的是有些工具它不支持rtmp H265的码流像官方的vlc我之前推过很多次每次都提示未知的编码格式。我会把支持的H265的rtmp vlc工具放到文章最后 还有一点需要注意的是你放到板子里面运行nginx程序会报错提示跟你ubuntu编译configure prefix路径一致文件夹路径你可以创建这个路径或者在编译的时候设置一个和板子里面一样的文件路径把编译好的nginx文件放到相同路径下即可。 还有一点如果你是用ffmpeg推流的 ffmpge必须得支持H265 如果不支持你的重新编译ffmpeg修改ffmpeg的源码 具体修改地方是这里 自己可以搜索看看有很多照着修改就行
支持拉H265的rtmp的VLC播放工具
https://download.csdn.net/download/kingzhou_/88075282
参考文章 https://blog.csdn.net/qq_22633333/article/details/128942787 https://blog.csdn.net/whahu1989/article/details/101567517