首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏ccf19881030的博客

    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.9和libVLC指南086c中提供,仅出于历史目的。 1.1.1 Windows Windows的VLC二进制安装程序不包含libVLC SDK。 1.1.2 Linux 您应该在名为libvlc-dev(Debian,Ubuntu …),libvlc-devel(RPM发行版)或类似文件的二进制包中找到必要的文件(libvlc.so,libvlc.pc 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版) 仿迅雷播放器教程 – 基于VLC的C++播放器

    5.1K30发布于 2020-10-09
  • 来自专栏嵌入式项目开发

    采用libvlc做一个视频播放器

    一、libvlc介绍 VLC这个播放器(只要涉及到软件开发)基本应该都听过用过,其功能的强大就不多说了。 libvlc版本的下载地址。 并且libvlc也支持跨平台,主流的平台官方都提供了库文件,也提供了源码,嵌入式平台可以自己交叉编译。 实例 vlc_base=libvlc_new(0,nullptr); this->setWindowTitle("libvlc设计的视频播放器"); } Widget::~Widget *vlc_base=nullptr; libvlc_media_t *vlc_media=nullptr; libvlc_media_player_t *vlc_mediaPlayer

    1.7K00编辑于 2024-05-24
  • 来自专栏海之滨云视频和流媒体技术

    c#万能视频播放器(附代码)

    (IntPtr libvlc_media_inst); 28 29 // 创建libvlc_media_player(播放核心) 30 [DllImport("libvlc (IntPtr libvlc_instance); 33 34 // 将视频(libvlc_media)绑定到播放器上 35 [DllImport("libvlc", 所以,调用的步骤就是: 创建libvlc_instance 创建libvlc_media_player 开始播放时,创建libvlc_media,通知libvlc_media_player要播放的媒体文件 = LibVlcAPI.libvlc_media_new_path(libvlc_instance_, filePath); 28 if (libvlc_media ! (libvlc_media_player_, libvlc_media); 34 LibVlcAPI.libvlc_media_release(libvlc_media)

    3.9K120发布于 2018-05-11
  • 来自专栏海之滨云视频和流媒体技术

    基于ffmpeg和libvlc的视频剪辑、播放器

    [开源]基于ffmpeg和libvlc的视频剪辑、播放器 以前研究的时候,写过一个简单的基于VLC的视频播放器。 主要逻辑是:QT绘制界面,跟用户交互,通过调用libvlc,实现本地文件播放。在适当的地方设置剪辑参数,然后通过FFMPEG实现视频文件剪辑,完成后,反馈到QT界面。 开发计划 开发工具由VS2013切换为QtCreator 文件播放部分,由目前的调用libvlc,改为通过FFMPEG解码后,渲染播放。

    2.9K80发布于 2018-05-11
  • 来自专栏Qt项目实战

    Qt开源作品2-视频流播放vlc内核

    <libvlc_renderer_discoverer.h> #include <libvlc_media.h> #include <libvlc_media_player.h> #include < libvlc_media_list.h> #include <libvlc_media_list_player.h> #include <libvlc_media_library.h> #include <libvlc_media_discoverer.h> #include <libvlc_events.h> #include <libvlc_dialog.h> #include <libvlc_vlm.h > #include <libvlc_media_player.h> #include <libvlc_media_list.h> #include <libvlc_media_list_player.h > #include <libvlc_media_library.h> #include <libvlc_media_discoverer.h> #include <libvlc_events.h> #

    1.2K30发布于 2020-04-26
  • 来自专栏全栈程序员必看

    Vlc for Android 全面阐述

    +++ b/include/vlc/libvlc_media_player.h @@ -1628,6 +1628,121 @@ LIBVLC_API int libvlc_audio_set_delay 2.1.0 or later+ */+LIBVLC_API bool libvlc_media_player_is_recordable( libvlc_media_player_t *p_mi ); libvlc_media_player_has_vout+libvlc_media_player_is_recordable+libvlc_media_player_is_recording libvlc_media_player_is_seekable libvlc_media_player_pause libvlc_media_player_play libvlc_media_player_previous_chapter+libvlc_media_player_record_start +libvlc_media_player_record_stop libvlc_media_player_release libvlc_media_player_retain libvlc_media_player_set_agldiff

    4.9K10编辑于 2022-07-08
  • 来自专栏嵌入式项目开发

    QT应用编程:基于VLC开发音视频播放器(回调方式)

    (0, nullptr); //创建并初始化libvlc实例 if(! // libvlc_media_parse(vlc_media); /*获取媒体播放器事件管理器*/ libvlc_event_manager_t *em = libvlc_media_player_event_manager (vlc_mediaPlayer); libvlc_event_attach(em, libvlc_MediaPlayerTimeChanged, vlcEvents, this); libvlc_event_attach (em, libvlc_MediaPlayerEndReached, vlcEvents, this); libvlc_event_attach(em, libvlc_MediaPlayerStopped , vlcEvents, this); libvlc_event_attach(em, libvlc_MediaPlayerPlaying, vlcEvents, this); libvlc_event_attach

    1.5K20编辑于 2022-01-07
  • 来自专栏嵌入式项目开发

    QT软件开发:基于libVLC内核设计视频播放器

    libvlc-go使用 Go 编程语言。 */ libvlc_event_manager_t *em = libvlc_media_player_event_manager(vlc_mediaPlayer); libvlc_event_attach (em, libvlc_MediaPlayerTimeChanged, vlcEvents, this); //进度改变 libvlc_event_attach(em, libvlc_MediaPlayerEndReached /停止 libvlc_event_attach(em, libvlc_MediaPlayerPlaying, vlcEvents, this); //开始播放 libvlc_event_attach (em, libvlc_MediaPlayerPaused, vlcEvents, this); //暂停 libvlc_event_attach(em, libvlc_MediaParsedChanged

    4K70编辑于 2022-01-12
  • 来自专栏嵌入式项目开发

    音视频开发: VS2017编译器编译libVLC错误解决

    \VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符 \VLC\sdk\include include\vlc/libvlc_media.h(368): error C2143: 语法错误: 缺少“;”(在“(”的前面) \VLC\sdk\include\vlc/libvlc_media.h (368): error C2062: 意外的类型“void” \VLC\sdk\include\vlc/libvlc_media.h(478): error C2061: 语法错误: 标识符“libvlc_media_read_cb ” \VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符 \VLC\sdk\include include\vlc/libvlc_media.h(368): error C2143: 语法错误: 缺少“;”(在“(”的前面) \VLC\sdk\include\vlc/libvlc_media.h

    1.3K20编辑于 2022-01-12
  • 来自专栏嵌入式项目开发

    libVLC开发: vs2017编译器编译出错解决办法

    报错提示如下: \VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符 \VLC\sdk include\vlc/libvlc_media.h(368): error C2143: 语法错误: 缺少“;”(在“(”的前面) \VLC\sdk\include\vlc/libvlc_media.h > #include <vlc/libvlc_renderer_discoverer.h> #include <vlc/libvlc_media.h> #include <vlc/libvlc_media_player.h > #include <vlc/libvlc_media_list.h> #include <vlc/libvlc_media_list_player.h> #include <vlc/libvlc_media_library.h > #include <vlc/libvlc_media_discoverer.h> #include <vlc/libvlc_events.h> #include <vlc/libvlc_dialog.h

    67100编辑于 2024-05-24
  • 来自专栏嵌入式项目开发

    QtCreator里添加外部第三库、头文件路径的方法(.pro文件)

    下面就介绍常用的添加库、头文件的方法,以libvlc、ffmpeg、opencv等常用的第三方库作为示例,编译器分别选择VS2017(32位)、MinGW(32位)进行测试。 / \ 2.1 引用libvlc库示例 MSVC、MinGW编译器都可使用 在编译完成之后,需要把用到的动态库.dll文件拷贝到可执行文件exe同级目录下才能正常运行。 #引用的VLC库文件 LIBS +=$$PWD\VLC\sdk\lib\libvlccore.lib 小知识: MSVC编译器使用libvlc库编译时需要在#include <vlc/vlc.h 代码里引用libvlc需要包含的头文件: #include <vlc/vlc.h> libvlc的测试代码: 打印库的版本 qDebug()<<"libvlc版本:"<<libvlc_get_version (); //打印结果: libvlc版本: 3.0.12 Vetinari 2.2 引用ffmpeg库示例 (1).

    13.3K11编辑于 2022-01-11
  • 来自专栏嵌入式项目开发

    QT应用编程:基于VLC开发音视频播放器(句柄方式)

    (0, nullptr); //创建并初始化libvlc实例 if(! // libvlc_media_parse(vlc_media); /*获取媒体播放器事件管理器*/ libvlc_event_manager_t *em = libvlc_media_player_event_manager (vlc_mediaPlayer); libvlc_event_attach(em, libvlc_MediaPlayerTimeChanged, vlcEvents, this); libvlc_event_attach (em, libvlc_MediaPlayerEndReached, vlcEvents, this); libvlc_event_attach(em, libvlc_MediaPlayerStopped , vlcEvents, this); libvlc_event_attach(em, libvlc_MediaPlayerPlaying, vlcEvents, this); libvlc_event_attach

    1.8K31编辑于 2022-01-07
  • 来自专栏C++

    字符动画播放器,不止BadApple!

    * inst_ = nullptr; libvlc_media_t* media_ = nullptr; libvlc_media_player_t* player_ = nullptr ; libvlc_media_list_t* list_ = nullptr; libvlc_media_list_player_t* plist_ = nullptr; int _ = libvlc_media_list_new(inst_); plist_ = libvlc_media_list_player_new(inst_); libvlc_media_list_add_media (plist_, player_); libvlc_media_list_player_set_playback_mode(plist_, libvlc_playback_mode_loop); = nullptr) { libvlc_media_player_stop(player_); libvlc_media_player_release(player

    81420发布于 2020-04-08
  • 来自专栏嵌入式项目开发

    采用libvlc做一个视频播放器(续)-注册事件回调

    libvlc_MediaPlayerTimeChanged, libvlc_MediaPlayerLengthChanged, libvlc_MediaPlayerPaused , libvlc_MediaPlayerPlaying, libvlc_MediaPlayerStopped, libvlc_MediaPlayerEndReached / 事件列表 QList<libvlc_event_e> events = { libvlc_MediaPlayerPositionChanged, libvlc_MediaPlayerTimeChanged , libvlc_MediaPlayerLengthChanged, libvlc_MediaPlayerPaused, libvlc_MediaPlayerPlaying , libvlc_MediaPlayerStopped, libvlc_MediaPlayerEndReached, libvlc_MediaParsedChanged

    89100编辑于 2024-05-24
  • 来自专栏Qt项目实战

    Qt音视频开发5-vlc事件订阅

    ); libvlc_event_attach(vlcEvent, libvlc_MediaPlayerOpening, handleEvents, thread); libvlc_event_attach (vlcEvent, libvlc_MediaPlayerPlaying, handleEvents, thread); libvlc_event_attach(vlcEvent, libvlc_MediaPlayerPaused static void libvlc_event_release(libvlc_event_manager_t *vlcEvent, VlcThread *thread) { libvlc_event_detach ); libvlc_event_detach(vlcEvent, libvlc_MediaPlayerOpening, handleEvents, thread); libvlc_event_detach (vlcEvent, libvlc_MediaPlayerPlaying, handleEvents, thread); libvlc_event_detach(vlcEvent, libvlc_MediaPlayerPaused

    88840发布于 2020-08-07
  • 来自专栏编程学习基地

    C语言可变参数的原理和应用

    { LIBVLC_DEBUG = 0, //调试 LIBVLC_NOTICE = 2, //普通 LIBVLC_WARNING = 3, //警告 ) { printf("LIBVLC_ERROR:%s", message); return; } if (level >= LIBVLC_WARNING ) { printf("LIBVLC_WARNING:%s", message); return; } if (level >= LIBVLC_NOTICE ) { printf("LIBVLC_ERROR:%s", message); return; } if (level >= LIBVLC_DEBUG , "context", LIBVLC_WARNING); /*发送四个等级的消息*/ sendLog(callbackData, LIBVLC_DEBUG, NULL, "This should

    2.8K20发布于 2021-01-05
  • 来自专栏Qt项目实战

    Qt音视频开发4-vlc读取和控制

    你只需要在打开视频以前调用libvlc_event_attach订阅自己感兴趣的事件,在不需要的时候比如关闭的时候调用libvlc_event_detach注销订阅的事件即可。 = NULL) { int result = libvlc_media_player_is_playing(vlcPlayer); isPlaying = (result = NULL) { state = (VlcState)libvlc_media_player_get_state(vlcPlayer); } return state = NULL) { libvlc_audio_set_mute(vlcPlayer, mute ? = NULL) { track = libvlc_audio_set_track(vlcPlayer, track); } }

    1.4K30发布于 2020-08-06
  • 来自专栏全栈程序员必看

    Qt编写视频播放器(vlc内核)[通俗易懂]

    14:提供接口设置播放位置和音量及设置静音 #ifndef VLCTHREAD_H #define VLCTHREAD_H #include <QThread> class QLabel; class libvlc_instance_t ; class libvlc_media_t; class libvlc_media_player_t; class VlcThread : public QThread { Q_OBJECT lab; //显示播放视频标签 QString fileName; //文件名称 QString suffix; //文件拓展名 libvlc_instance_t *vlcInst; libvlc_media_t *vlcMedia; libvlc_media_player_t *vlcPlayer; public: //获取文件名称

    2.2K10编辑于 2022-09-19
  • 来自专栏Qt项目实战

    Qt音视频开发1-vlc解码播放

    ignore-config", "--no-video-on-top", "--no-video-title-show", "--no-snapshot-preview", tempArg}; vlcInst = libvlc_new (vlcPlayer); libvlc_event_new(vlcEvent, this); } //回调方式和句柄方式两种分别处理 if (callback) display, callbackData); //设置每帧格式 RV32-Format_RGB32 RGBA-Format_RGBA8888 YUYV I420 libvlc_video_set_format (vlcPlayer, (void *)playWidget->winId()); #elif defined(Q_OS_LINUX) libvlc_media_player_set_xwindow (vlcPlayer, playWidget->winId()); #elif defined(Q_OS_MAC) libvlc_media_player_set_nsobject(vlcPlayer

    1.5K00发布于 2020-08-02
  • 来自专栏Qt项目实战

    Qt音视频开发3-vlc录像存储

    vlc的录像功能是内置封装好的,在打开文件的前面设置相应的命令参数即可,如果只是要求整个过程保存成一个视频文件,这个很好办,网上方法一大堆,只要调用libvlc_media_add_option函数设置 (libvlc_media_player_t *vlcPlayer) { input_thread_t *input = NULL; if (vlcPlayer ! *vlcPlayer, const QString &fileName = "") { input_thread_t *input = libvlc_get_input_thread(vlcPlayer var_ToggleBool(input, "record"); vlc_object_release(input); } //停止录像 static void stopSave(libvlc_media_player_t *vlcPlayer) { input_thread_t *input = libvlc_get_input_thread(vlcPlayer); if (input == NULL)

    1.4K60发布于 2020-08-05
领券