图灵转世 2023-05-29 09:17 采纳率: 75%
浏览 53
已结题

libvlc二次开发

要在工控机里实现播放rtsp海康摄像头视频,同时在屏幕上显示串口过来的信息,并且要保存。试验了很多方案,打算采用libvlc二次开发,mfc界面。这种方案工控机cpu占用率只有30%,opencv的方案有80%。现在如何在libvlc上显示动态实时字幕,请各位大拿发表高见。

  • 写回答

8条回答 默认 最新

  • 鱼弦 优质创作者: 编程框架技术领域 2023-05-29 14:00
    关注

    要在使用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);
    注意,以上代码仅供参考。您需要根据自己的需求来实现动态字幕的逻辑。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 5月29日