2023-09-06

背景:

已有iOS项目中直播用了rtsp,但是在很多手机上第一次不能播放,有describe,但是setup的时候失败,continueAfterSETUP中resultCode返回-57,跟进去看发现subsession->initiate返回很慢,要5秒,setup这一步都没有成功发请求出去。所以一直在第一次不能播放,等大概6、7秒后再播放才可以。看了下live版本,发现是15年的.......所以果断更新吧。当然走了不少弯路,先是直接用源码替换,直接一大堆报错,有些还好解决,有些就无从下手,解决不完。后来用了19年的版本,好不容易编译通过了,又改通了中间层ourRTSPClient,在自己手机上可以播放了,可是换了个手机,发现第一次还是播放不了,问题依然存在!!!后面改来改去,竟然都不能编译通过了。于是又重新下载最新的2023.07.24版本,先是看了好多都说make编译,解决了问题编译过了,打成了4个库,说合并下库,然后倒出四个文件夹的include,应该也是可以的。但我还是钟情于用源码去编译,于是又开始用最新源码加入。

环境:

macOS Ventura 13.3.1

Xcode 14.3.1

iphone13 15.7

遇到常见报错:

1.'openssl/ssl.h' file not found

解决:在Preprocessor Macros中添加NO_OPENSSL=1

2.#include找不到

解决:直接将#include头引入从宏提出来,屏蔽宏里面的

3.Unknown type name 'NSString'

解决:在prefix文件中添加#ifdef __OBJC__  ##endif将自己项目的OC包起来,因为pch文件是.c\.cpp\.m编译公用的,后加的.c .cpp文件和oc编译不兼容。


弯路:

1.openssl头文件报错去加载openssl的头文件,然后又去下载它的库,引入到工程里还是继续报错,目前不用openssl,直接在预编译选项中添加NO_OPENSSL=1就OK;

2.make编译,然后头文件加库,这种方式更简单方便;源码编译要解决更多报错问题。

你可能感兴趣的:(2023-09-06)