VLC的ACtiveX插件使用方法

深入axvlc.dll:手动注册VLC ActiveX插件,打造无需安装VLC播放器的浏览器RTSP播放环境 本文深入解析了如何通过axvlc.dll手动注册VLC ActiveX插件,实现在无需完整安装VLC播放器的情况下,构建浏览器RTSP播放环境。详细介绍了插件架构、最小化文件组合、注册表配置及自动化部署脚本,特别适合工业监控和智能安防等专业领域的轻量级部署需求。 阅读详情

在Roger看来对VLC的二次开发 包括把VLC嵌入自己的应用 ,以及修改VLC本身的功能和特性。本文主要讲前者。总的来说把VLC内嵌入自己的应用有4种途径:
直接调用VLC进程(喂喂喂…这也算?)
VLC的plugin for Mozilla
VLC的ActiveX插件
调用libvlc

    当然,理论上也可以把VLC的源码 直接扣出一部分来放到自己的程序 中,不过这种方法难度太大没多大意义,可以yy一下,嘿嘿。

    先说第一种办法,别怀疑,这是非常有用的一种解决方案 ,特别是对于转码、流转发等应用,通常直接调用VLC就可以了。VLC有HTTP和Telnet的Interface模块(就是和用户交互的界面 ),也很方便和远程交互。Roger做过一个用VLC进行多路直播控制的Web 系统 ,就是用了VLC的HTTP界面,非常方便。而且跨平台 应 用也非常方便,只需要安装不同平台的VLC就行了。直接调用VLC的话最重要的就是参数,可以从 vlc.exe -H 中获取比较详细的命令行参数介绍。对于转码、转发的,命令行参数会比较复杂,可以用GUI先试一下,然后把界面上的Generated stream output string拷下来。

    VLC的Mozilla plugin除了用于Firefox的web页之外,还可以用于任何XUL-base的应用,这种应用通常使用xulrunner来启动。XUL是一种用 XML来写界面的语言,有点像HTML而且也兼容大部分HTML标记,Firefox就是用XUL来写的。VLC的Mozilla插件通常用 Javascript来控制,详细的接口 文档可以参考这里:http://www.videolan.org/doc/play-howto/en/ch04.html#id310965 这 个接口有比较老的第一版和比较新的第二版,建议用新的,功能多一些。用VLC的Mozilla插件的应用并不少,例如比较出名的Miro、 Songbird。因为这个好处是显而易见的:跨平台、可控性强、使用简单;限制也很明显:专为Mozilla设计,应用的范围很窄。

    VLC的ActiveX插件只能用于Windows 平台,当然这是因为ActiveX只是微软 的东西。但是不得不说这个还是很好用的。无论是C++、C#、VB还是网页,都可以轻松地将这个ActiveX利用起来。关于这个的VLC官方文档在这里http://wiki.videolan.org/ActiveX_Controls 开发、使用之前别忘了先要注册ActiveX控件,方法是运行 regsvr32 axvlc.dll。Roger 之前写的 SimpleTV 就是调用了VLC的ActiveX控件,所以这也可以作为一个示例 的代码 ,可以主要看看怎么调用这个控件来做串流的代码:

//Create Option for the plugin bool bIPv6 = false;

if (strstr (szMRL, "::")) { bIPv6 = true; }

tagVARIANT opt,var,ip6;

CString sout, ipv6 = "ipv6=1";

SAFEARRAY *psa;

long index;

SAFEARRAYBOUND bound[1] = {0};

bound[0].cElements = bIPv6 ? 2 : 1;

if (m_cfg.bDisplayWhenRecording)

{

    sout.Format(”sout=#duplicate{dst=display,dst=std{access=file,mux=ts,dst=/”%s/”}}”, strName);

}

 else

{

    sout.Format(”sout=#duplicate{dst=std{access=file,mux=ts,dst=/”%s/”}}”, strName);

}

var.vt = VT_BSTR;

var.bstrVal = sout.AllocSysString();

psa = SafeArrayCreate (VT_VARIANT, 1, bound);

index = 0;

SafeArrayPutElement (psa, &index, &var);

if (bIPv6)

{

    ip6.vt = VT_BSTR;

    ip6.bstrVal = ipv6.AllocSysString();

    index = 1;

    SafeArrayPutElement (psa, &index, &ip6);

}

opt.vt = VT_ARRAY | VT_BSTR; opt.parray = psa;

tagVARIANT nul;

nul.vt = VT_NULL;

m_vlc.GetPlaylist ().add (szMRL, nul, opt);

m_vlc.GetPlaylist ().next ();

m_vlc.GetPlaylist ().play ();

     很多人调用VLC的ActiveX控件都会遇到一个问提就是,播放没有反应。大部分的原因都是因为plugins的问题。VLC作为exe运行时会递归搜 索当前目录下的modules和plugins目录来寻找plugin,但是当以ActiveX控件运行时,默认只会检查注册表的 HKLM_Software_VideoLan_VLC_InstallDir,并添上plugins作为模块 搜 索路径,如果这个路径没有设置或者设置不对,VLC将找不到大部分的模块,导致大部分功能缺失而无法运行。如果需要修改这一特性可以修改 /activex/plugin.cpp (0.8.6i)中的 VLCPlugin::getVLC函数。在SimpleTV中,Roger修改的一个片段是

char p_pluginpath[MAX_PATH+1];int iTmp = 0;

/* 得到SimpleTV.exe的全路径 */DWORD dwLen = GetModuleFileNameA (NULL, p_pluginpath, MAX_PATH);for (iTmp = strlen(p_pluginpath) - 1; iTmp >= 0; -- iTmp){ if (p_pluginpath[iTmp] == ‘//’) { p_pluginpath[iTmp] = 0; break; }}

/* 将模块路径设为SimpleTV下的 player/modules */strcat (p_pluginpath, "//player//modules");ppsz_argv[ppsz_argc ++] = “–plugin-path”;ppsz_argv[ppsz_argc++] = p_pluginpath;

 

    还有一点是配置文件vlcrc的路径,如果需要修改的话,可以修改 src/misc/configuration.c 中的 GetDir 函数 , 在Windows下这个目录默认返回 %APPDATA% ,以上两步做好的话其实就可以做出一个Portable的绿色版VLC了。

    和其他ActiveX的播放器,例如WMP、QuickTime、RealPlayer相比,VLC的优点也很明显:自带所需解码器、开源 、功能强大。

    当然ActiveX方式和Mozilla 插件 的方式也是有局限性的,这样的方式功能还不够强大,例如没有截屏的接口…如果需要更多完整的功能,可以考虑直接调用libvlc的接口,VLC官方提供了一些文档和例子http://wiki.videolan.org/Libvlc

    这种方法Roger没有做过,就不多说了。这里还有一个用C#调用libvlc的例子http://jeremiah.blog.51cto.com/539865/116981

    在Windows下libvlc可能默认是不编译的(0.8.6i),可以在configure中开启这一选项 –enable-shared-libvlc

    完整的VLC体积还是不小的,如果只需要VLC一部分功能的话,可以最后做一下精简。这个可以参考Roger的上一篇关于VLC的文章 《VLC(六) 精简》

————————————————————————

作者: roger

Blog:http://rogerfd.cn

Email:roger99707@163.com

本文欢迎转载和引用,请保留本说明并注明出处

————————————————————————

本文转自http://rogerfd.cn/?p=227

老系统里的VLC插件:从ActiveX调用到HTTP接口迁移指南 浏览器插件机制曾是网页播放本地视频的重要通道,NPAPI与ActiveX一度是主流方案。随着Chrome、Firefox和Edge陆续关闭插件接口,ActiveX和NPAPI逐步退出历史舞台,但在内网监控、教学终端和点播系统中,基于VLC插件的RTSP流播放依然稳定运行。VLC ActiveX插件通过classid实例化,依赖axvlc.dll与解码器完整注册,CAB打包解决了批量分发难题;而HTTP控制接口则让浏览器通过VLC进程的status.xml实现播放控制,甚至可结合H.264转码输出,以HTML 阅读详情

相关推荐

浏览器集成VLC插件:IE8下ActiveX播放RTSP视频方案

网络视频监控系统普遍面临老浏览器与RTSP流的兼容问题:现代video标签只支持HLS/DASH,无法直接播放RTSP;而工厂内网、安防大屏等场景仍锁定IE8浏览器。这类环境最稳定的落地方式,是利用VLC浏览器插件通过ActiveX机制把播放器嵌入HTML页面,由客户端本地解码RTSP流,服务器无需转码。实现时需选择带Web插件组件的VLC 2.2.x版本,注册axvlc.dll,通过object标签的classid和param参数完成mrl地址传递,并用ActiveXObject做状态检测。该方案在降低服

weixin_29007243的博客 140

VLC播放器使用技巧

VLC播放器使用技巧

weixin_44357071的博客 1万+

浏览器播放RTSP流:VLC插件ActiveX实战与HTML5替代方案

RTSP 是安防监控领域最常用的实时视频流协议,但浏览器原生不支持它,HTML5 的 video 标签也无法直接播放。要实现网页端播放,早期最可靠的方案是借助 VLC 播放器的 ActiveX 插件,在 IE 兼容模式中通过 COM 接口加载流并控制播放。本文从 ActiveX 控件原理、VLC 参数体系、页面嵌入与多路切换等工程实践要点出发,完整还原了从环境注册到避坑排查的落地路径。同时,针对插件在新浏览器中受限的现状,介绍了基于 ffmpeg 和 nginx 的 RTSP 转 HLS 替代方案,并对比了

weixin_29011993的博客 245

VLC使用教程(一):使用VLC录制屏幕

1、打开VLC,选择媒体->打开捕获设备; 2、选择捕获设备,捕获模式选择桌面,捕获期望的帧率以及更多选项中的缓冲根据需求设置; 3、点击播放按钮右侧的下拉三角,选择转换; 4、点击目标文件右侧的浏览,选择文件放置路径,填写MP4文件的名字,点击保存; 5、点击开始; 6、录制结束完成后,回到VLC界面,右键选择停止;保存的文件在目标文件选择的地址中可以看到。 ...

zhuyunier的博客 4万+

组播VLC使用方法(含图解)

组播VLC使用方法,包含图片说明,操作步骤很详细,按说明执行就可以完成视频点播

VS2010“未能正确加载包”问题解决方法小汇

本文按照由简至繁的顺序详述了借助网络获知的四种解法,主要面向重装 VS2010 后遭遇题述问题的网友,相关包尤指 VSTS、RadLangSvc、Language、Bootstrap 及 MicrosoftDataEntityDesign。

虚有其表的博客 1万+

vlc详细使用说明

vlc的全名是Video Lan Client,是一个开源的、跨平台的视频播放器。VLC支持大量的音视频传输、封装和编码格式,完整的功能特性列表可以在这里获得http://www.videolan.org/vlc/features.html,下面给出一个简要的不完整的列表: 操作系统:Windows、WinCE、Linux、MacOSX、BEOS、BSD 访问形式:文件、DVD/VCD/CD、...

我是唐 2万+

卫星图像检测,分割,跟踪,超分辨率,数据集调研,以及论文笔记

目标检测,针对物体有很多类如桥,烟囱,罐子等,有静态图像下的检测,也就是图像源头多来自谷歌地图,但是前后帧没有任何联系,并且谷歌地图相对来说比较清楚,难度小一点,也有粗粒度以及较细粒度的检测,然后卫星视频的数据集较少,则可以通过前后帧的联系来辅助检测,并且卫星帧基本上只对车,船,飞机,火车进行检测,没有进行细粒度的检测即将车辆分类为卡车,皮卡,小轿车,但是关船,则可以分类为货船以及军舰,因为目前的卫星视频中小车实在太少了,难以进行更细粒度的检测。luojia 三号卫星。

zhangzhao147的博客 4707

如何使用VLC进行视频录像

使用VLC进行视频录像

qq_20067273的博客 6217

NY8A053E 例程 之 PWM Ouput

更多关于NY8A053E的相关例程请留言!

倪彬笑阳的博客 2924

如何使用C#自带的GDI+双缓冲类BufferedGraphics实现双缓冲功能

小白摸索着编写一个上位机界面,将遇到的问题及解决方法记录下,以供后来的小白使用哈。这篇文章解决的问题是在绘图时候的闪烁问题。其中网上有些介绍的设置控制方式controlstyle的方法,这个方法我的理解是比较适合于在一个完整的窗口当中绘图。如果要在一个窗口当中的内部容器或者控件内画图的话就不太适合,通常按照前述的方法设置后没有任何效果。对于在窗口内部的绘图的来说,比较有效的方法是在内存当中开辟一块

z20110411的博客 4794

VLC工具使用指南

VLC(VideoLAN Client)是一款功能强大的免费开源跨平台多媒体播放器和框架,能够播放大多数多媒体文件以及DVD、音频CD、VCD和各种流媒体协议。无论是本地视频文件还是网络视频流,VLC都能轻松应对。本文将详细介绍VLC工具的基本用法和高级功能。VLC作为一款功能强大的多媒体播放器,不仅支持多种媒体格式和流媒体协议,还提供了丰富的音视频调整选项和字幕支持功能。通过本文的介绍,相信读者已经掌握了VLC的基本用法和高级功能,能够更好地享受多媒体内容带来的乐趣。

qq_42670672的博客 3959

保姆级教程:用Wireshark抓包分析10M汽车以太网PLCA轮询机制(附pcap文件)

本文详细介绍了10M汽车以太网PLCA轮询机制的抓包分析与性能优化方法。通过Wireshark实战教程,解析PLCA协议的时分多址特性、总线型拓扑结构及带宽优化策略,帮助工程师提升车内网络的可靠性和实时性。附赠pcap文件供实践参考。

wdx01234567的博客 239

如何让IE11自动下载安装ActiveX插件并使用网页VLC播放视频

背景 最近在整一个VLC网页插件,遇到的一些问题,在此记录下。 问题描述 从网上获取了一个VLC的SDK包,打开ActiveX文件夹下的test.html,网页加载出来后,播放不了文件,折腾了很久,才知道是ActiveX控件并未安装,所以无论怎么弄都是没办法播放文件的。 问题解决 如果检测到插件没有安装,怎样让IE自动从指定位置下载插件并自动安装呢? 很简单,在VLC的sdk\activex\te...

RzzZ的博客 4930

编译zlib库给IOS平台用

在弹出的下面对话框中选择Unix Makefiles ,然后点击(Done)完成。使用 lipo与otool查看库类型为arm64,现在可在ios平台使用该库了。zlib自带CMakeLists.txt 所以用CMake-GUI来生成。修改为与系统当前安装的cmake版本 (如:3.22.1)选择zlib源码目录及输出目录,输入下图的CMAKE参数。点击Configure,在弹出的对话框中选择Yes。cmake --install . 进行安装。cmake --build . 进行编译。

994

【网络与爬虫 53】Scrapy-Prometheus实战指南:打造企业级爬虫监控体系的终极解决方案

本文深入探讨Scrapy-Prometheus集成技术,通过费曼学习法从监控痛点出发,详细讲解如何在Scrapy爬虫中集成Prometheus指标收集系统。涵盖从基础配置到企业级监控体系的完整实战指南,帮助开发者构建可观测性强、可维护性高的分布式爬虫监控平台,实现爬虫性能的精准监控和智能告警。

熵数实验室 1584

VLC media player ActiveX控件制作

昨天折腾折腾这个折腾了一天。大致干了这几件事: 一,重新制作VLC安装包,去掉一些不必要的东东,设置一些必要的东东 二,制作ActiveX cab包 三,给CAB包加数字签名 四,调用代码 一,重新制作VLC安装包,去掉一些不必要的东东 到VLC 官网FTP下载7Z包:http://download.videolan.org/pub/videolan/vlc/1.1.5/win32

暂时为空 1万+

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 100

vlc插件怎么用 wpf_c# – 具有WPF WebBrowser控件的本地网页中的VLC ActiveX

所以我尝试在WPF WebBrowser控件下运行VLC ActiveX v.2并在本地加载它.并且VLC ActiveX无法正常工作……C#void MainWindow_Loaded(object sender, RoutedEventArgs e){var file = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDir...

weixin_39546747的博客 125

msicleanup.zip

Windows Install clean up

爆破字典中常用的用户名

爆破字典中常用的用户名,用户名数量不多,但都是使用频率较高的,具有相当高的价值。请务必下载爆破字典中常用的用户名,用户名数量不多,但都是使用频率较高的,具有相当高的价值。请务必下载

vlc web 登录账号_使用VLC Activex插件做网页版视频播放器

网上找的一个小例子,包括时长播放时间等等都有。mrl可以设置本地文件,这样发布网站后只能播放本地有的文件,如果视频文件全在服务器上,其他电脑想看的话,则可以IIS上发布个视频文件服务器,类似http://192.168.1.1:8000/video/1.flv 这样可以访问到视频文件,然后这个http路径可以设置为mrl但这样的话经测试支持的格式不多,flv是可以的测试可以使用 使用vlc播放...

weixin_35356909的博客 834

AI实战-分析预测实例(含11个源代码+10.97 MB完整的数据集).zip

AI实战-分析预测实例(含11个源代码+10.97 MB完整的数据集)代码手工整理,无语法错误,可运行。包括:11个代码,共73.54 KB;数据大小:7个文件共10.97 MB。使用到的模块:pandasmatplotlib.pyplotseabornwarningssklearn.metrics.classification_reportsklearn.metrics.accuracy_scoresklearn.metrics.confusion_matrixsklearn.preprocessing.StandardScalersklearn.model_selection.train_test_splitxgboost.XGBClassifiersklearn.ensemble.RandomForestClassifiersklearn.tree.DecisionTreeClassifiertensorflow.keras.models.Sequentialtensorflow.keras.layers.Densetensorflow.keras.optimizers.Adamtensorflow.keras.metrics.Accuracysklearn.preprocessing.LabelEncoderscipy.stats.chi2_contingencysklearn.linear_model.LogisticRegressionsklearn.metrics.roc_curvesklearn.metrics.roc_auc_scoresklearn.model_selection.learning_curvesklearn.naive_bayes.GaussianNBtensorflow.keras.layers.Dropoutgc.callbackstensorflow.keras.callbacks.ModelCheckpointnumpyplotly.expresswordcloud.WordCloudwordcloud.STOPWORDScollections.Counteroswolta.data_tools.col_typeswolta.data_tools.seek_nullwolta.data_tools.unique_amountswolta.data_tools.make_nullwolta.feature_tools.list_deletingswolta.data_tools.make_numericswolta.data_tools.stat_sumwolta.data_tools.corr_analysewolta.model_tools.compare_modelswolta.model_tools.get_best_modelsklearn.metrics.ConfusionMatrixDisplayrandomscipy.statsitertools.combinationssklearn.metricssklearn.svm.SVCsklearn.neighbors.KNeighborsClassifiertorchtorch.nntorch.nn.functionaltorch.utils.data.DataLoadertorch.utils.data.TensorDatasetaltairvegafusionbokeh.plotting.figurebokeh.plotting.showbokeh.transform.factor_cmapbokeh.palettes.Spectral6bokeh.io.output_notebookpsynlig.plot_correlation_heatmapsklearn.tree.plot_treesklearn.tree.export_textoptunacatboost.CatBoostClassifiersklearn.neural_network.MLPClassifierscipy.stats.pointbiserialr

最简单的VLC网页播放器

我们用VLC播放器安装VLC的active插件后,默认情况下liang

gsls200808的专栏 5244

STM32_W5500_stm32_w5500_w5500_

This program is based on STM32F407 W5500 chip Websever

使用VLC Activex插件做网页版视频播放器

网上找的一个小例子,包括时长播放时间等等都有。 mrl可以设置本地文件,这样发布网站后只能播放本地有的文件,如果视频文件全在服务器上,其他电脑想看的话,则可以IIS上发布个视频文件服务器,类似http://192.168.1.1:8000/video/1.flv 这样可以访问到视频文件,然后这个http路径可以设置为mrl但这样的话经测试支持的格式不多,flv是可以的测试可以使用 使用vlc播...

weixin_34289454的博客 1104
上一篇: Wine是什么-Wine能什么-Wine 工作原理
下一篇: VLC in firefox
BlueBirdssh
博客等级 码龄21年 231粉丝 198原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值