平台:fedora(测试通过),debian(理论上差不多)
1,按照《RK3399Pro入门教程(10)RTSP推流介绍》配置好环境,安装好官方驱动,其中需要对rga降低版本到1.0.1-10(sudo dnf install librockchip_rga-devel后执行dnf downgrade librockchip_rga-devel)。
2,DD_H264VideoFileServerMediaSubsession.cpp文件里面getAuxSDPLine函数
char const* DD_H264VideoFileServerMediaSubsession::getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource)
{
char const* auxSDPLine = rtpSink->auxSDPLine();
if (auxSDPLine != NULL)
{
return auxSDPLine;
}
else
{
char const* fmtpFmt = "a=fmtp:%d packetization-mode=1"
";profile-level-id=000000"
";sprop-parameter-sets=H264\r\n";
unsigned fmtpFmtSize = strlen(fmtpFmt)+3/* max char len */;
char* fmtp = new char[fmtpFmtSize];
delete[] fAuxSDPLine;
//新增下面这一句
memcpy(fmtp,fmtpFmt,fmtpFmtSize*sizeof(char));
fAuxSDPLine = fmtp;
return fAuxSDPLine;
}
}
3,以上就应该能够跑起来了,如果想要源码安装MPP库的话继续看下面。
4,源码安装mpp库:git clone -b release https://github.com/rockchip-linux/mpp.git下载源码
git checkout 9cea46485932ae72b2b2e5332f0f79b29cd55a9b
切换到2019年5月份的一个版本上,在源码根目录上执行
cmake -DRKPLATFORM=ON -DHAVE_DRM=ON -DCMAKE_INSTALL_PREFIX=/usr && make
sudo make install
6,源码安装live555库
注意这里使用sudo dnf install live555-devel安装的live555是旧版本的,推流的时候当视频size稍微大一点就会出现live555: The input frame data was too large for our buffer size 这样的bug,参考,源码安装新版live555库就没有问题。
git clone https://github.com/xanview/live555
cd live555
./genMakefiles linux-with-shared-libraries
make -j8
mak DESTDIR=/usr install
#我是想把库安装到/usr目录下的,用make install的话安装到了/usr/local,
#用了上面的命令居然安装到了/usr/usr/local,暂时还没有搞明白如何直接装到
#/usr下面,现在指定一个目录先把需要的库文件放出来,再把他们拷贝到/usr相应目录下。
#照着我的做的话,还需要下面步骤:
cp /usr/usr/local/include/* /usr/include
cp /usr/usr/local/bin/* /usr/bin
cp /usr/usr/local/lib/* /usr/lib64
7,重新编译RTSP推流项目就OK了
8,附一个推流例程
参考:
RK3399Pro入门教程(6)硬件编解码器MPP库的使用
RK3399Pro入门教程(10)RTSP推流介绍
RK3399Pro入门教程(7)RTSP库的使用
wiki_Mpp