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

本文介绍了一种在视频流中实现实时中文OSD(On Screen Display)叠加的技术方案。主要内容包括理解中文字库分布、将中英文转换为点阵字库数据、掌握YUV格式存储模式,并最终实现中文字符串的叠加。
2121

被折叠的 条评论
为什么被折叠?



