VLC实现中文OSD

    最近这几天有个OSD中文的需求,而libvlc没有,就到处查资料,看了好多英文资料,还厚着脸皮去irc.vidoelan.org去在线提问(本人英语确实不怎么好!)大笑,不过最后还是解决了,功夫不负有心人!

     进入主题首先列出我遇到的问题:第一:libvlc没有OSDTEXT接口;第二:能显示英文,中文却乱码。

    解决第一个问题:修改vlc源码lib/video.c 添加函数

int Libvlc_video_set_osd_text(libvlc_media_player_t *p_mi,int channel,int position, int64_t duration, const char *psz_text)
{
	vout_thread_t *p_vout = GetVout(p_mi,0);
	
	if(p_vout == NULL)
		return -1;
	vout_OSDText(p_vout,channel,position,duration,psz_text);

	vlc_object_release(p_vout);
	return 0;
}

对参数psz_text说明下,它必须是以空字符为结尾的UTF-8G格式的字串,然后重新编译vlc这样libvlc就有这个函数了.

    解决第二个问题:这个问题恶心了我很久,因为以前没有接触过字符集之类的问题,这样又去一个不是很了解的vlc里面要加这个汉字的功能,难上加难。只要你的显示出现全是乱码以后,这就是字体(font)没有这个字,或则是这个font里面没有包含全部的汉字,我试了很多font,最后得出了结论:(win7字体查看器)就是凡是简体字符集的都用不了,eg:微软雅黑,方正舒体;繁体font我没有全部试玩,列出两个MingLiU(win7 & Xp),DFKai-SB(Win7 only),这些都行,至于为什么有些字体用不了,网上有说是vlc font cache的问题,但是我还没有研究透,不知其具体原因,以后对vlc更加深入的了解以后,博文会做相应的更新,最后加一个命令行"--freetype-font=(+字体名)"搞定!

 

     心得:vlc很强大,很多功能在libvlc里面都没有写,要自己去实现它,多看看源码才好!以后我会逐步更新vlc的一些心得,作为我的学习笔记,有兴趣的朋友可以在这里一起学习,讨论,交流!------by唐玄奘

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值