RK3399PRO 硬件H264编码,RTSP推流笔记

平台: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

 

你可能感兴趣的:(嵌入式开发)