在WPF中托管的VLC.DotNet控件
我已经托管了 vlc.dotnet Windows在WPF窗口内的Windows控件.这样做的原因,而不是使用vlc.dotnet WPF控件是因为Winforms版本的性能是WPF版本的两倍. 无论如何,除了一个令人讨厌的细节外,一切都很好.当使用 Winforms应用程序中的Winforms版本时,渲染的视频将完全适合控制;但是,使用WindowsFormsHost元素内部的相同控件,会导致视频呈现为原始大小而不适合控件. 这里有两件事要注意: Winforms控件完全相同,因此我认为,这种行为与之无关. 使用间谍++ 我设法查看了何时在Winforms应用程序中使用该控件,渲染视频的矩形与控件本身的矩形完全相同,但是,当在WPF应用程序中使用时,视频的重新播放(由VLC渲染,我对其没有控制)的大小与控件的尺寸不同.相反,它的大小与视频本身相同. 有人对为什么WPF显示这种奇怪的行为有任何特殊想法? 任何建议将不胜感激. 非常感谢很多人.
8 2024-04-26
编程技术问答社区
AvaloniaUI。无法在UserControl中嵌入VideoView控件(LibVlcSharp)。
我是Avaloniaui 0.10.5的新手.目前,我在MacOS上的应用程序中使用了视频控制(libvlcsharp.avalonia 3.5.0).该代码是Donadren示例2的副本: (/master/samples/libvlcsharp.avalonia.sample ). 视频播放器在窗口控制中工作正常,但是当我将代码复制到UserControl(为了在应用程序中的另一个位置重复使用播放器)时,我会听到视频的声音,但没有听到图像.在控制台中,我有一个错误: [h264 @ 0x7ff85e8d3600] get_buffer () failed [h264 @ 0x7ff85e8d3600] thread_get_buffer () failed [h264 @ 0x7ff85e8d3600] decode_slice_header error [h264 @ 0x7ff85e8d3600] no frame! 我试图通过网络搜索,但找不到任何东西.
8 2024-04-24
编程技术问答社区
nVLC中的sout选项
我正在尝试在我的C#应用​​程序中使用NVLC记录流. NVLC本质上是libvlc周围的C#包装器. libvlc中支持SOUT选项?以下是我的C#代码,但不能保存文件. 这是我的代码: `m_media = m_factory.CreateMedia("rtsp://"); List mediaOptions = new List(); mediaOptions.Add(@"sout=""#std{access=file,mux=ts,dst=C:\Users\hp\CCTV\Videos\\video.mpg}"""); m_media.AddOptions(mediaOptions); m_player.Open(m_media); m_media.Parse(true);` m_player.Play(); ` 非常感谢. 解决方案 NVLC支持SOUT选项(对
10 2024-04-24
编程技术问答社区
VLC播放器事件捕捉
在我的C#应用​​程序中,当VLC播放器(最好是)启动播放时,我需要触发某些事件(例如,在VLC中按下播放按钮).带有Microsoft Spy ++的Trinew Windows Media Player classic and Microsoft Spy ++以及在播放时发送的观察消息.启动\重复,但我不知道如何在C#代码中"捕获"这些消息.所以我的问题:有什么方法可以在VLC(或WMP)中连接事件并获得有关播放状态的通知(播放,停止,重复开始). 我的目标是创建一个C#函数,该功能在玩家中等待开始播放事件,然后在我的应用程序中触发一些操作(当播放结束并开始重复时,这也应该发生).我应该在这里采取什么方法? 只是为了澄清:我不想在我的应用中嵌入VLC的新实例,而是要控制/读取VLC的"真实"完整版,用户 seperatly启动 解决方案 以下链接的文章看起来很旧,但是如果不直接使用组件,也许您可​​以从中收集一些好的信息. .net接口到VLC 其他解决
10 2024-04-23
编程技术问答社区
VLC或WMP ActiveX控件是否接受Stream对象?
我有一个WCF服务,该服务介绍了媒体文件,并以流对象的形式将其返回到消费应用程序.当消费应用程序想要使用Medialement播放媒体时,就会出现问题.众所周知,媒体不接受流对象. 我可以使用VLC或WMP ActiveX控件解决此问题吗?这两个控件中的任何一个都可以允许我播放流媒体吗? 解决方案 这两个ActiveX控件中的两个都支持各种类型的流媒体,但都不会允许您使用C#流对象,即托管对象.据我所知,这两个ActiveX控件的niether完全使用任何托管代码. WMP可能可以,但无论如何都不会通过COM接口暴露. 如果内存提供,我认为您可以提供单个帧(甚至是H.264帧)的媒体,因此您可以自己提取流并将其馈送到MediaObject中.
10 2024-04-23
编程技术问答社区
无法用vlc ocx播放媒体
我想将VLC媒体播放器嵌入.NET应用程序中,我找到了很多解决方案 vlc .net接口 DLL功能的包装器 http://vlcdotnet.codeplex.com 这是不错的 VLC的ActiveX-我真的很喜欢使用它,它必须是更少的错误和错误,但是发现错误 我找到了2个控件" VLC ActiveX插件和IE Web插件V1"," VLC ActiveX插件和IE Web插件V2" 它们有什么区别? 我拖动了拳头,并使用了以下代码 axVLCPlugin1.addTarget(@"D:\video\English\10,000.b.c\10000bc.rmvb", null, AXVLC.VLCPlaylistMode.VLCPlayListAppendAndGo, -666); axVLCPlugin1.play(); 无效 我拖放了第二个,并使用了以下代码 axVLCPlugin21.playlist.add(@"D:\video\Englis
16 2024-04-23
编程技术问答社区
将VLCManager与VLC.Dotnet的最后版本一起使用
我正在尝试将vlc.dotnet库用于我的winforms c#应用程序.我不是要从vlc.dotnet库的Core.Interops使用VLCManager,但没有最近的文档.在较早的版本中,您可以创建一个VLCCONTROL和VLCMANAGER的实例,并将VLCManager设置为VLCCONTROL,但是在VLC.dotnet的最后一个版本中,这已不再可用. . 有人可以告诉我如何将(多个)vlccontrols添加到VLCManager中吗?这应该减少内存使用量,并有可能使用更多功能,例如NextFrame. 代码我可以在早期版本中使用: Vlc.DotNet.Forms.VlcControl vlcControl = new Vlc.DotNet.Forms.VlcControl(); Vlc.DotNet.Core.Interops.VlcManager vlcManager = new Vlc.DotNet.Core.Interops.VlcManag
6 2024-04-22
编程技术问答社区
VLC服务器与.NET C#的通信
我正在从事一个允许视频流或按需视频的项目.我正在寻找软件包,VLC看起来像是低成本需求的绝佳选择. 为了真正使用此应用程序,我需要一个可以与系统通信的API.在进行了一些研究之后,通过PHP和Java有一些绑定,但没有什么是真正的.NET.我看了进一步,发现我可以通过Telnet进行交流,这对于我需要的工作很可行. 我开始从事该项目,但首先进行了手动工作流程测试,因为我会创建的API以后是自动化.我能够启动VLC,但很难使其播放流媒体,并使Telnet Session活跃起来.这是在阅读文档中似乎不再起作用或有所不同的示例之后,因此我正在考虑该资源不可靠. 是否有使用当前的0.9.8 VLC发布的示例,实际上在那里有有效的通信示例?另外,我是否可以使用任何绑定来与.NET到VLC进行通信,这可能只是我在互联网上找到的东西吗? 解决方案 看起来像
10 2024-04-22
编程技术问答社区
C# LibVLCSharp播放器直接输入媒体
有一个C#应用程序,该应用程序通过Nuget软件包使用LIBVLC. 这些是包装: 使用这些软件包,很容易将某些媒体播放器放入您的Winforms应用程序中. 您要做的就是初始化玩家并给它新的Media: LibVLCSharp.Shared.LibVLC libVLC = new LibVLC(); LibVLCSharp.WinForms.VideoView videoView; videoView.MediaPlayer = new LibVLCSharp.Shared.MediaPlayer(libVLC) videoView.MediaPlayer.Play(new Media(libVLC, "URL", FromType.FromLocation)); 现在,我想用缓冲区的自定义数据为MediaPlayer提供喂食. 它可以是字节阵列,也可以是类似的东西. (数据应视为来自有效的MP4文件块. 在C#? 中如何实现这一目标 解决方案
10 2024-04-21
编程技术问答社区
通过TCP使用RTSP进行流媒体传输
VLC Media Player如何通过TCP流进行RTSP? 我知道,VLC Media Player可以用作流服务器和流媒体客户端. 我的要求是使用TCP(Over RTSP)数据从服务器流式传输到客户端,我对C/C ++代码不满意.我对C#感到满意.有人可以指向我在c#? 中的TCP流的实现 P.S-还有其他播放器支持使用RTSP通过TCP/UDP进行实时流式传输? 解决方案 回答您的原始问题:" VLC Media Player如何通过TCP流媒体实现RTSP?"简单的答案是,实现一个好的RTSP客户端非常非常复杂 - 甚至是一个不完整的客户端.除非您有大量的时间和资源来承诺它. ,您不应该尝试此任务. 但是,您可以使用VLC,而无需任何C/C ++.您只需要通过C#Interop与LIBVLC接口.另外,有关更详细的实现的出色代码示例,您可以看到 nvlc project . 如果您确定要创建自己的RTSP解决方案,则可以查看务实的现实是,
6 2024-04-21
编程技术问答社区
如何在C#中通过VLC api流媒体视频
我正在研究小型家庭项目以进行视频广播.我找到了一些示例 解决方案 我找到了一个解决方案,并使用了 class Program { static void Main(string[] args) { FileInfo file = new FileInfo(@"C:\Users\Jman\VideoMaker.avi"); var currentDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); // Default installation path of VideoLAN.LibVLC.Windows var libDirectory = new DirectoryInfo(Path.Combine(currentDirectory, "libvlc", IntPtr.Size
12 2024-04-20
编程技术问答社区
防止用DirectX捕获屏幕
我想使用DirectX渲染一个图像. 如果无法使用简单的屏幕捕获软件或PrintScreen-Key捕获框架,它应该类似于VLC播放器的" DirectX视频输出". 制作屏幕截图不可能(或非常困难)! 有人知道这在VLC播放器中的工作方式吗? 还有其他可能的解决方案吗? 也许有"输出保护经理"(请参阅​​ http://msdn .microsoft.com/en-us/library/dd388980(vs.85).aspx ) 我大约3年C#编程经验在学校赚钱. 我还完成了一些C ++编程,但是我可能会使用WPF或托管DirectX进行C#解决方案. 对不起,我的英语,感谢您提前的帮助!!! 解决方案 首先,当您使用PrintScreen或其他屏幕捕获技术时,VLC的内容不会被捕获,因为(至少在Windows的较旧版本上)他们使用"覆盖层"来展示视频.这是一种特殊的GPU结构,允许渲染到正常屏幕表面上方的虚拟"平面".由于这绕过其他所有内容并直接进入
14 2024-04-19
编程技术问答社区
ActiveX VLC Player事件不工作
我已经合并了 ActiveX VLC Pligin到WPF应用程序.和VLC插件工作正常. AxVLCPlugin vlc = new AxVLCPlugin(); vlc.MediaPlayerEncounteredError += vlc_MediaPlayerEncounteredError; vlc.MediaPlayerOpening += vlc_MediaPlayerOpening; vlc.MediaPlayerBuffering += vlc_MediaPlayerBuffering; vlc.MediaPlayerEndReached += vlc_MediaPlayerEndReached; // // Other code // like windowsFormsHost1.Child = vlc; and etc vlc.addTarget(videoURL, null, AXVLC.VLCPlaylistMode.VLCPlayListRe
10 2024-04-19
编程技术问答社区
libvlc_new在vlc 2.1.3中总是返回null
libvlc_new始终返回null.我已经复制了我解决方案目录的调试文件夹中的libvlc.dll和libvlccore.dll. 我们还尝试调用libvlc_new(0,null),并将环境变量设置为" vlc_plugin_path"插件目录,结果相同. 任何指针出了什么问题/或在.NET环境中通过编程访问LIBVLC API的最佳方法是什么. 请在C#,VS2010中的Deveopet下方找到代码段. IntPtr instance, player ; string[] args = new string[] { "-I", "dummy", "--ignore-config", @"--plugin-path=D:\plugins", "--vout-filter=deinterlace", "--deinterlace-mode=blend" }; instance = LibVlc.libvlc_new(args.length, args); Int
14 2024-04-17
编程技术问答社区
C#嵌入vlc控件
我尝试将VLC嵌入我的WPF项目中.我已经注册了axvlc.dll. 还下载了VLC夜间构建版本2.2.2 类型" system.windows.markup.xamlparseexception"的第一个机会例外发生在presentationframework.dll 中 其他信息:'构造函数在类型上的调用 与指定的绑定约束匹配的" proj1.mainwindow" 扔了一个例外.线号'3'和线位置'9'. 问题是我已经成功地将VLC嵌入了另一个项目中. 我还将呈现framework.dll更新为新版本. 为什么我会得到这个例外? 在我的项目中,我只是一个带有WindowsFormhost控件的窗口,仅此而已. 这是我的代码: AxVLCPlugin2 vlc = new AxVLCPlugin2(); winFormHost.Child = vlc; vlc.CreateControl(); 解决方案 请尝试VLC.DOTNET.您可以从 github
16 2024-04-17
编程技术问答社区
检查是否安装了VLC
我正在从C#应用程序调用VLC,以播放视频.我需要一种始终检查VLC是否安装的方法.我已经尝试检查注册表键,但是根据您的Windows版本或体系结构,它们似乎并不一致或可靠.任何人都有任何建议/建议? 解决方案 我最终只检查了机器上的hklm \ software \ videolan \ vlc \,我可以找到它,并在设置中为用户提供一个选项,以指定从该注册表中检测到的VLC的路径值. 其他解决方案 我会说您正在尝试检测到这一点时做不必要的工作.如果VLC是未安装,该怎么办?显示错误消息?然后,只需尝试启动它,并显示出错误消息,如果它无法启动.这样,您还可以捕获安装的情况,但由于任何原因仍然无法启动.两者都是程序的错误条件. 除此之外,还要确保您将设置程序与自动安装VLC的应用程序一起包含,因为您的应用程序要求其正常工作.然后,唯一不会安装的情况(因此,您的应用程序必须显示错误消息)是如果用户在安装后明确将其删除.由于他们必须故意这样做,因此当您的申请随后无法工作
10 2024-04-16
编程技术问答社区
用C#语言远程控制VLC
我正在尝试从C#控制VLC媒体播放器.我尝试使用.net的Findwindow()命令在窗口上获取一个句柄,但是当我发现每次播放文件时窗口的名称更改时.我遇到的最大问题是将WM_Commands发送到VLC ..这种方法与Winamp和Windows Media Player一起使用,但是使用VLC,它似乎无法正常工作. 我读到可以从浏览器控制VLC,但我不这样做...我在设置中看到它具有一些可以称为的热键..但是它们可以更改,如果我以某种方式从我的代码打电话给它们...用户更改它们.. bummer ... 我有点卡住了..任何帮助都很棒... 索林 解决方案 我有一些代码,可以使用sockets在 rc接口.这在一定程度上工作,但有很多怪癖.播放后几秒钟,全屏似乎无能为力.总体而言,这是一种作品. 其他选项是: 编写一个直接滤波器(非常困难),但是一旦完成,就可以使用VLC代替或与FFMPEG结合使用.驱动媒体播放器的现有代码可以使用VLC. 为
16 2024-04-15
编程技术问答社区
Libvlcsharp在任何平台上播放特定视频时都会卡住
播放以下视频将被卡住.在任何平台上,我都尝试过Winform,WPF,Xamarin.android,Xamarin.ios 在以下两个视频中,我陷入了Xamarin.forms,Android和iOS,并且播放不流畅,但是使用浏览器玩它们没有问题.我不知道为什么? 视频/2021083110332897820349837654.mp4 解决方案 main error: Timestamp conversion failed (delay 4929000, buffering 100000, bound 3000000) main error: Could not convert timestamp 64957762948 for faad main error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 19946 ms ignored) main error: Timestamp conversion fa
16 2024-04-12
编程技术问答社区
VLC媒体播放器有C#接口吗?
是否可以使用C#控制台应用程序中的包装器在VLC播放中读取当前播放文件的轨道统计信息(时间,标题等)?有人有什么建议供包装器使用吗? 解决方案 有 a .net界面to vlc 是 A .NET用户控制使用LIBVLC接口 vlc.dotnet 是 一个.NET库,该库托管VLC库的音频/视频功能.换句话说,这是一个.net包装器libvlc. codeplex上的实现 - dmediaplayer -simple vlc frontend. VLC媒体播放器的简单但不错的前端. 其他解决方案 也有 vlc.dotnet 项目有您需要的所有内容,并且它兼容所有版本的VLC> = 1.1 您可以在网站上找到样本.
16 2024-04-11
编程技术问答社区