C++ LibVLC 从帧/图像创建流

Posted

技术标签:

【中文标题】C++ LibVLC 从帧/图像创建流【英文标题】:C++ LibVLC Create Stream from Frames/Images 【发布时间】:2015-10-07 15:00:07 【问题描述】:

我想使用 LibVLC 从图像创建视频。至于现在我没有使用 LibVLC 的经验。

我已经实现了一个像这里(A simple C program to play mp3 using libvlc)这样的测试项目。

有什么方法可以创建“libvlc_media_t”的实例并将图像放入其中,而不是调用“libvlc_media_new_path”从文件中加载视频? 或者还有其他的可能吗?

【问题讨论】:

【参考方案1】:

在媒体播放器之外创建媒体列表和媒体播放列表:

media_list_ = libvlc_media_list_new(vlc_instance_);
media_list_player_ = libvlc_media_list_player_new(vlc_instance_);
libvlc_media_list_player_set_media_list(media_list_player_, media_list_);
libvlc_media_list_player_set_media_player(media_list_player_, media_player_);

您可以像添加视频一样将图像文件添加到 vlc 播放列表中。

libvlc_media_t* media = libvlc_media_new_path(vlc_instance_, "image file");

if (media) 
      libvlc_media_list_lock(media_list_);
      libvlc_media_list_add_media(media_list_, media)
      libvlc_media_list_unlock(media_list_);

然后您可以使用以下方法循环浏览图像:

libvlc_media_list_player_play_item_at_index(media_list_player_, index)

【讨论】:

谢谢,我有时会尝试一下.... 现在我通过 Workarround 解决了这个问题。我实现了自己的 MJPEG Streamer。 ***.com/questions/33064955/… 上述方法可以使用——我将它用于有时必须在视频播放列表之间显示图像文件的项目。可惜我没有早点看到它可能对你有用。 没问题 ;) 我通过硬编码学到了很多东西。但我认为无论如何我都会切换到 vlc,因为先进的流媒体和转换的东西......

以上是关于C++ LibVLC 从帧/图像创建流的主要内容,如果未能解决你的问题,请参考以下文章

从帧缓冲区对象读取时,OpenGL 纹理坐标是相反的

从图像创建实时 RTP 流

为啥从帧缓冲区创建的纹理没有正确映射

qt ip camera stream libvlc 返回值

libvlc播放m3u8流 无法获得视频长度问题[记录]

libvlc 和 dbus 接口