Ubuntu 18.04.5 LTS
Hi3519AV100_SDK_V2.0.1.0
Hi3519AV100开发板
IMX347 2688x1520(4M)@30fps
ortp库移植网上有很多关于hi3518e的参考,这里不多介绍,可以参考这位大佬的。ORTP库局域网图传和VLC实时预览
这里重点讲解一下不同之处。
修改的是这个文件
mpp/sample/smp_linux.mak
添加
-lortp
-L/tmp/ortp/lib
$(TARGET):$(COMM_OBJ) $(OBJS)
#@$(CC) $(CFLAGS) -lpthread -lm -o $(TARGET_PATH)/$@ $^ -Wl,--start-group $(MPI_LIBS) $(SENSOR_LIBS) $(AUDIO_LIBA) $(REL_LIB)/libsecurec.a -Wl,--end-group
@$(CC) $(CFLAGS) -lpthread -lm -lortp -o $(TARGET_PATH)/$@ $^ -Wl,--start-group $(MPI_LIBS) $(SENSOR_LIBS) $(AUDIO_LIBA) $(REL_LIB)/libsecurec.a -Wl,--end-group -L/tmp/ortp/lib
注意此IP指的是主机的IP,并且与主机上VLC的sdp配置文件c=IN IP4一致。
#define LOCAL_HOST_IP "192.168.1.16"
m=video 8080 RTP/AVP 96
a=rtpmap:96 H264
a=framerate:25
c=IN IP4 192.168.1.16
进行配置安装的时候提示无权限,使用sudo编译、安装成功,但在venc make时提示file not recognized: File format not recognized。通过file libortp.so.9.0.0查看发现文件为ELF 64-bit LSB relocatable, x86-64,并非我们需要的arm。主要是使用sudo进行编译时会切换到root账户,环境变量也会跟着切换,而我root的环境变量并没有设置交叉编译路径,导致找不到需要的gcc,此时会切换到Ubuntu本身的x86-64 gcc上编译。
此时需要删除原先编译的内容
sudo make clean
sudo make uninstall
通过sudo -s切换到root账户,但不改变环境变量的方式解决;
sudo -s
./autogen.sh
./configure --prefix=/tmp/ortp --host=arm-himix200-linux
make && make install
sudo su 和 sudo -s都是切换到root用户,不同的是:
sudo su 环境用的是目标用户(root)的环境
sudo -s 环境用的是当前用户本身的环境