技术背景
我们在对接Linux平台RTSP播放模块的时候,遇到这样的技术需求,开发者需要把Linux RTSP播放器拉取的数据,除了实时播放外,还要投递给python,用于视觉算法分析。
技术实现
Linux平台RTSP、RTMP直接播放不再赘述,这块我们非常成熟,python需要数据,我们可以在播放的同时,直接把数据回上来。回上来的数据,跟python交互,有多种方式,比如共享内存、或者写bitmap文件,然后python实时读取就好。
本文以写bitmap为例,介绍下大概的实现:
开始播放之前,设置videoframe回调(本文以rgb32为例),videoframe回调,我们有两组接口,一组是原始数据回调,另外一组,是回调缩放后的数据,这里考虑到算法识别对分辨率的要求,我们以缩放的接口为例。
开始播放后,video frame数据回调处理如下:
video frame回调后的数据,直接调研save_bitmap_file()实现bitmap文件写入即可,写bitmap非常简单,这里不再赘述,整体效果如下:
python程序,只需要到指定的文件夹下,读取生成的bitmap即可,实现视频数据视觉算法分析。
总结
Linux平台RTSP、RTMP播放器数据跟python交互,两种方式均可,bitmap实现,也不麻烦,需要注意的时候,由于解码后的单帧数据比较大,建议适当控制导出的bitmap文件数。