live555移植到hi3516开发板推流

  • live555下载
    • 1:下载live555源码
      • 出现错误include/TLSState.hh:34:25 fatal error: openssl/ssl.h: No such file or directory
      • 解决:加入-DNO_OPENSSL=1(方法不可行)

      • 进行配置
        • ./config no-asm no-async shared --prefix=/home/alientek/tool/openssl-1.0.2q/output --cross-compile-prefix=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-
          • no-asm,在交叉编译过程中不使用汇编代码代码加速编译过程
          • shared,生成动态库
          • no-async: 交叉编译工具链没有提供GNU C的ucontext库
          • –prefix,指定生成文件安装路径
          • –cross-compile-prefix,指定交叉编译工具
        • 修改makefile,去除掉 -m64和-m32选项

        • # make && make install
        • 成功
    • 2:解压live555-2020-02.tar.gz与libssl-himix200.tar.gz
    • 3:进入live目录,执行:cp config.armlinux config.hi3516d拷贝一份,cat config.hi3516d查看内容
    • 4:修改交叉编译。为arm-himix200-linux-

      • 对config.hi3516d修改:添加OpenSSL的include

    • 5:在live555/live2021目录下编译:./genMakefiles hi3516d
      • 再make
      • live555移植ARM过程_live555 移植_知止而后安的博客-CSDN博客

        • 软链接:sudo ln -s /home/alientek/tool/openssl-1.0.2q/output/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so

          • sudo find / -name libssl.so:/usr/lib/x86_64-linux-gnu/libssl.so

        • 软链接:sudo ln -s /home/alientek/tool/openssl-1.0.2q/output/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so
          • sudo find / -name libcrypto.so:/usr/lib/x86_64-linux-gnu/libcrypto.so

      • 错误信息
        • 报错

        • 报错找不到ssl和lcrypto

          • 解决:尝试了两种方法,1是在配置文件中-L指定缺少的动态库的目录;2是创建软连接放到了交叉编译器的库路径下:COMPILE_OPTS = -L/home/wang/mylinux/live555/armlive/openssl-1.0.2q/output/lib

          • 解决二,添加以下两个内容: -DLOCALE_NOT_USED和-DNO_OPENSSL=1。屏蔽

    • 6:编译完成生成:在 mediaServer目录下找到live555MediaServer可执行程序,
      • 拷贝至板端,将测试文件stream_chn1.264和audio_chn0.aac拷贝至板端,与live555MediaServer同一目录
      • 执行live555MediaServer
      • 拷贝网络串流连接到VLC查看,如:
      • rtsp://192.168.100.75/stream_chn1.264
        • 通过VLC可以点播rtsp://192.168.1.41:8554/test.264视频,
        • (注意:test.264所在的目录要和live555MediaServer执行目录相一致,若test.264放在live目录下,则需要在live目录下执行./mediaServer/live555MediaServer)
  • 安装openssl
    • 进入:/source/index.html
      • 下载:

      • 解压:tar -zvxf openssl-1.1.1u.tar.gz
      • 进入:cd openssl-1.1.1u/
      • 执行:./config no-asm no-async shared --prefix=/home/alientek/openssl/ --cross-compile-prefix=arm-himix200-linux-

        • no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程
        • no-async 没有提供GNU C的ucontext库,避免如下报错:
        • no-shared 生成静态链接库
        • --prefix 指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录
    • 执行make

      • 报错
        • 修改Makefile ,若有-m32或-m64 字段,直接删除即可

    • 安装:make install

    • 完成安装后,你可以在/home/alientek/openssl/发现include和lib。其中include包含头文件集合,lib是生成的静态库(.a.1.1)和动态库文件(.so.1.1)。
  • 移植使用官方的live555文件
    • 解压

    • 将libssl-himix200.tar.gz解压出的_install/lib/目录下的 .a与.so文件全部拷贝至交叉编译器target/usr/lib/目录下,
      • 如:/opt/hisi-linux/x86-arm/arm-himix200-linux/target/usr/lib
    • ./genMakefile hi3516
    • make

      • 报错

      • 解决:系统问题
        • 添加以下两个内容: -DLOCALE_NOT_USED和-DNO_OPENSSL=1(可以不用添加)。屏蔽

        • 解决

    • 在 mediaServer目录下找到live555MediaServer可执行程序,拷贝至板端

    • 将测试文件stream_chn1.264和audio_chn0.aac拷贝至板端,与live555MediaServer同一目录

    • 执行live555MediaServer:./live555MediaServer
      • 报错:libssl.so.1.1: cannot open shared object file:

      • 解决报错libssl.so.1.1: cannot open shared object file: No such file or directory_沙漏无语的博客-CSDN博客
        • 下载 openssl
          • #从官网下载
          • # wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
          • #腾讯云提供的镜像
          • wget https://mirrors.cloud.tencent.com/openssl/source/openssl-1.1.1g.tar.gz
        • 编译 openssl
          • tar -xvf openssl-1.1.1g.tar.gz
          • cd openssl-1.1.1g
          • ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
          • sudo make && make install
          • 编译完成后,使用 openssl version 来查看一下当前 openssl 版本号时,你会发现还是 1.0.2,所以这里需要做一些额外的配置工作
        • 配置
          • echo "/usr/local/lib64/" >> /etc/ld.so.conf
          • ldconfig
          • 再次使用 openssl version 验证版本就可以了,如果不行,可以尝试下面的方式,依次执行(先备份老版本,再从新版本安装位置创建软连接)
          • mv /usr/bin/openssl /usr/bin/openssl.old
          • mv /usr/lib/openssl /usr/lib/openssl.old
          • ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
          • ln -s /usr/local/openssl/include/openssl /usr/include/openssl
          • echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
          • ldconfig -v
    • 拷贝动态库.a文件和.so文件到开发板的跟文件目录下:/usr/lib

      • 成功

    • 执行live555MediaServer:./live555MediaServer
    • 拷贝网络串流连接到VLC查看,如:
    • rtsp://192.168.100.75/stream_chn1.264
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值