hi3518移植librtmp
一:编译openssl
下载:openssl:
https://www.openssl.org/source/
tar -zxvf openssl-1.0.2l
解压后进入目录,运行
./config no-asm shared –prefix=/home/chy/share/rtmp/openssl –cross-compile-prefix=arm-hisiv100nptl-linux-
参数说明:
no-asm : Do not use assembler code.
shared : In addition to the usual static libraries, create shared
libraries on platforms where it‘s supported. See “Note on
shared libraries” below。(编译连接成动态库)
–prefix : 指定之后make install后生成的执行文件跟库的存放位置。
–cross-compile-prefix :指定交叉编译工具。
最后,运行make,make install
在 /home/chy/share/rtmp/openssl目录下就可以生成 openssl相关的库文件了
二:编译zlib:
下载:zlib
http://www.zlib.net/
tar -zxvf zlib-1.2.11
解压后进入目录:
运行
export CC=arm-hisiv100nptl-linux-gcc
./configure –prefix=/home/chy/share/rtmp/zlib
make
make install
在/home/chy/share/rtmp/zlib下就可以得到zlib的相关文件。
三:编译librtmp
直接git下载:git clone git://git.ffmpeg.org/rtmpdump
两种方法可以设置相关库和头文件的路径:
1:把openssl和zlib的相关文件复制到安装海思的交叉编译工具的目录下,具体的要看你hi318的交叉工具链的安装路径;
2:直接用绝对路径来进行设置的;
我是直接使用第二种的。
librtmp有两个Makefile文件,根目录下和librtmp目录下,把两个文件都加上如下:
XLDFLAGS=-L/home/chy/share/rtmp/rtmpdump/openssl/lib
XLDFLAGS+=-L/home/chy/share/rtmp/rtmpdump/zlib/lib
INC=-I/home/chy/share/rtmp/rtmpdump/openssl/include
INC+=-I/home/chy/share/rtmp/rtmpdump/zlib/include
修改完成后,运行如下命令
make SYS=posix CROSS_COMPILE=arm-hisiv100nptl-linux-
编译成功,即可得到librtmp相关的文件;
接下来就可以进行简单的测试了
#include "rtmp.h"
#include "rtmp_sys.h"
#include "amf.h"int main()
{ RTMP *rtmp;rtmp = RTMP_Alloc();RTMP_Init(rtmp);RTMP_SetupURL(rtmp, "localhost");RTMP_EnableWrite(rtmp);RTMP_Connect(rtmp, NULL);RTMP_ConnectStream(rtmp, 0);char *buf = (char *)malloc(1024*1024);RTMP_Read(rtmp,buf,1024*1024); return 0;
}
把相关的文件都拷到该文件目录下,运行下面的命令,编译成功,库可用了。
arm-hisiv100nptl-linux-gcc rtmp.c -I./openssl/include -I./zlib/include -L./ -lrtmp -L./openssl/lib -lssl -lcrypto -L./zlib/lib -lz -o rtmp
最后,就是运行了,但是如何使用动态链接库又是一个问题了,这个可以多看看其他的说明,这里,我把库在 /lib下做软连接,可以使用arm-hisiv100nptl-linux-readelf -d rtmp对应用程序进行查看依赖哪些库文件,arm-linux下没有ldd这个命令,可以用readelf查看;
如下:
使用命令 ln -s dst_file s_file
如:ln -s /home/chy/librtmp.so.1 /lib/librtmp.so.1
完成软连接后,就可以运行了。
hi3518移植librtmp相关推荐
- Android移植librtmp
一.前言 为了让android能够使用librtmp,我们需要下载它的源码并使用交叉编译工具编译成可以供android使用的库文件.我在网上参考了一些别人移植的文章,但到自己移植的时候缺踩了许多坑.还 ...
- Android 音视频开发实践系列-01-ndk-build编译rtmpdump
在上一篇Android开发实践之<NDK和JNI极速初体验>,留了一个坑: 独立工具链因官方已弃用不再介绍, ndk-build下一篇文章单独介绍,本文使用AndroidStudio新建的 ...
- u盘模式 linux hi3518,嵌入式 RT3070_STA驱动移植到hi3518c平台小结
首先在官方的驱动中不一定支持我们需要的平台,这样就需要我们对需要的平台进行相关的添加,主要修改下面两个文件: 1.根目录下的Makefile: PLATFORM = HI_3518C #add by ...
- 基于Hi3516DV300rtmp交叉编译移植
基于Hi3516DV300rtmp交叉编译移植 其实自己不太会写甚么博客,或者方法的,所以导致自己开发完一些功能后,后续再去看自己写的代码,去配置相关的功能也好,总是需要花费挺长时间重新回忆起来. 废 ...
- mysql移植海思_live555 交叉编译移植到海思开发板
1.首先到它的主页下载一个源码包: http://www.live555.com/liveMedia/public/ 我下载的是latest的,具体什么版本还真不清楚 2.放到linux目录下解压: ...
- 编译librtmp for Android
librtmp是一个强大的rtmp开源库,近期的一个Android项目涉及rtmp之类的技术,之前用ffmepg的时候也用到过它,那时候只是作为一个模块将librtmp作为第三方库编到ffmpeg里( ...
- ORTP移植到Hi3518e,h.264封包rtp发送
看到ORTP是纯C实现的rtp库,于是移植到3518e试用一下. 1.下载源码 http://www.linphone.org/technical-corner/ortp/downloads 里面有个 ...
- RV1109+hi3861L hichannel SD卡槽wifi驱动移植
移植平台:瑞芯微RV1109(kernel版本:4.19 SDK:RV1126_RV1109_LINUX_SDK_V1.8.0_20210224) 海思3861L(SDK:Hi3861V10 ...
- ffmpeg编译裁剪移植到arm-linux
源码裁剪参考: ffmpeg源码裁剪移植到arm-linux ffmpeg可以通过配置不同的编译选项来裁剪ffmpeg本身的大小,下面我基于2.1.3版本来说明. 至于支持哪些编译选项,可输入 ./c ...
最新文章
- mybatis使用注解开发
- Codeforces ECR50 div2题解
- 深入浅出深拷贝与浅拷贝
- 计算机视觉与深度学习 | TensorMask: A Foundation for Dense Object Segmentation(何凯明团队新作)近5年目标检测综述
- Junit 多线测试 问题
- ruby之添加当前文件路径到$LOAD_PATH
- python asyncio future_Python中的asyncio模块中的Future和Task的区别?
- mac配置supervisor笔记
- 【Oracle】恢复临时表空间数据文件
- WPF 最简方法使用自己定制的 WPF 框架
- java运行环境简称_java程序的运行环境简称为什么?
- vue手机号校验,邮箱校验
- 条码扫描模块通过什么编程才能使用呢?
- 用js写出水仙花数_JavaScript求取水仙花数
- 【Java】01 初识 Java
- 1-15 Burpsuite Sequencer介绍
- kafka集群kafka-eagle安装
- android自定义秒表,Android实现的秒表计时器示例
- wechatpy开发微信公众号(实现自定义菜单,翻译)
- FFmpeg源码分析:视频滤镜介绍(上)