要在工控机里实现播放rtsp海康摄像头视频,同时在屏幕上显示串口过来的信息,并且要保存。试验了很多方案,打算采用libvlc二次开发,mfc界面。这种方案工控机cpu占用率只有30%,opencv的方案有80%。现在如何在libvlc上显示动态实时字幕,请各位大拿发表高见。
8条回答 默认 最新
关注要在使用libvlc播放海康摄像头视频的同时,在屏幕上显示串口信息是可行的。为了在libvlc中实现动态字幕,可以使用libvlc的API来实现。
以下是一些基本步骤:
使用libvlc_media_player_new()函数创建一个媒体播放器对象。
使用libvlc_media_new_location()或libvlc_media_new_path()函数创建一个媒体对象。
将媒体对象添加到媒体播放器中,使用libvlc_media_player_set_media()函数。
使用libvlc_video_set_subtitle_file()函数将字幕文件添加到视频流中。
使用libvlc_video_set_marquee_int()函数设置字幕的位置和属性。
使用libvlc_video_set_logo_string()函数在视频流上添加标志。
下面是一些示例代码:// 创建媒体播放器对象
libvlc_instance_t* vlcInstance = libvlc_new(0, NULL);
libvlc_media_player_t* vlcMediaPlayer = libvlc_media_player_new(vlcInstance);// 创建媒体对象
libvlc_media_t* vlcMedia = libvlc_media_new_location(vlcInstance, "");// 设置媒体对象
libvlc_media_player_set_media(vlcMediaPlayer, vlcMedia);// 添加字幕
libvlc_video_set_subtitle_file(vlcMediaPlayer, "");// 设置字幕属性
libvlc_video_set_marquee_int(vlcMediaPlayer, libvlc_marquee_Enable, 1);
libvlc_video_set_marquee_int(vlcMediaPlayer, libvlc_marquee_Location, libvlc_marquee_Location_Bottom);
libvlc_video_set_marquee_int(vlcMediaPlayer, libvlc_marquee_Size, 20);
libvlc_video_set_marquee_string(vlcMediaPlayer, libvlc_marquee_Text, "");// 播放视频
libvlc_media_player_play(vlcMediaPlayer);
注意,以上代码仅供参考。您需要根据自己的需求来实现动态字幕的逻辑。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报