libVLC教程

时间:2022-07-26
本文章向大家介绍libVLC教程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

libVLC教程

  • 1 libVLC教程
    • 1.1 安装SDK
      • 1.1.1 Windows
      • 1.1.2 Linux
    • 1.2 链接到libVLC
    • 1.3 示例libVLC代码
  • 2 关于libVCL的一些参考资料

1 libVLC教程

1.1 安装SDK

此代码是为libVLC 1.1.0或更高版本编写的。 无法使用旧版本进行编译。

较旧的版本分别在libVLC指南0.9libVLC指南086c中提供,仅出于历史目的。

1.1.1 Windows

Windows的VLC二进制安装程序不包含libVLC SDK。 对于大多数用户而言,这将浪费带宽和空间。

您可以从sdk目录中的普通7-ZIP包中找到SDK文件,即开发头文件和导入库。 或者,您可以从源代码构建VLC。

有关使构建正常工作的更多说明,请参见libVLC教程086c

1.1.2 Linux

您应该在名为libvlc-dev(Debian,Ubuntu …),libvlc-devel(RPM发行版)或类似文件的二进制包中找到必要的文件(libvlc.so,libvlc.pc,头文件…)。 确保版本足够新,然后再继续。

1.2 链接到libVLC

cc example.c -lvlc -o example

在Linux / BSD上,您可能更喜欢使用pkg-config:

pkg-config --print-errors 'libvlc >= 1.1.0'
cc -c example.c -o example.o $(pkg-config --cflags libvlc)
cc example.o -o example $(pkg-config --libs libvlc)

1.3 示例libVLC代码

此示例代码将(尝试)播放URL。 还有一个使用SDL进行视频输出的示例

#include <stdio.h>
 #include <stdlib.h>
 #include <vlc/vlc.h>
 
 int main(int argc, char* argv[])
 {
     libvlc_instance_t * inst;
     libvlc_media_player_t *mp;
     libvlc_media_t *m;
     
     /* Load the VLC engine */
     inst = libvlc_new (0, NULL);
  
     /* Create a new item */
     m = libvlc_media_new_location (inst, "http://mycool.movie.com/test.mov");
     //m = libvlc_media_new_path (inst, "/path/to/test.mov");
        
     /* Create a media player playing environement */
     mp = libvlc_media_player_new_from_media (m);
     
     /* No need to keep the media now */
     libvlc_media_release (m);
 
 #if 0
     /* This is a non working code that show how to hooks into a window,
      * if we have a window around */
      libvlc_media_player_set_xwindow (mp, xid);
     /* or on windows */
      libvlc_media_player_set_hwnd (mp, hwnd);
     /* or on mac os */
      libvlc_media_player_set_nsobject (mp, view);
  #endif
 
     /* play the media_player */
     libvlc_media_player_play (mp);
    
     sleep (10); /* Let it play a bit */
    
     /* Stop playing */
     libvlc_media_player_stop (mp);
 
     /* Free the media_player */
     libvlc_media_player_release (mp);
 
     libvlc_release (inst);
 
     return 0;
 }

2 关于libVCL的一些参考资料