appro的ipnc中只实现了英文的osd叠加,就连小小的ascii码表都没有覆盖全,而且该swosd架构灰常凌乱。
其实无非就是两个功能,一是叠加文字,而是叠加图片,由于考虑到兼容不同的分辨率的视频流,所以处理的分支相对校对。
图片的叠加暂不实现,用途最多的是中文的叠加,实现中文osd叠加的方法也非常简单,如下:
1、了解中文字库的分布,通过汉字的内码计算出该汉字在字库中的位置。
2、同上,了解ascii字库的分布,通过字母的ascii码值计算对应的字符在字库中的位置(这个相对简单,汉字的也不难)
3、在pc上将想要的中英文字体转换成点阵字库数据(或者直接转换成YUV格式的数据也可以,我采用的是点阵)
4、了解YUV格式的存储模式(这个也不难)
5、最后将中文字符串转换成的点阵数据叠加到yuv的指定位置就实现了中文的叠加,如果是叠加时间,实时的获取系统时间,将时间再转换成字符串,然后动态的叠加到yuv上就好了。
下图是叠加后的效果,是不是还可以。