问题标签 [libvlcsharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
160 浏览

unity3d - VLC for Unity 免费版是否存在编辑限制?

我想将视频从 YouTube 流式传输到 Unity 应用程序。这对于 Unity 插件的 VLC 来说似乎很简单。我从视频实验室网站下载了免费试用版,并尝试将脚本中Media对象的 URL 简单地交换minimalPlayback.cs为 YouTube 视频,但没有播放。还有什么我需要配置的,还是免费版本的限制,它旨在向我展示什么是可能的,而不让我以不同的方式使用它。我猜是后者,但我希望在购买完整版之前得到一些确认。

0 投票
1 回答
192 浏览

winforms - 为什么 16 通道的 libvlcsharp winform 马赛克占用大量 CPU

设置如下:一个 winform 应用程序,visual studio 2019,创建 16 个 videoview/mediaplayer 实例,每个实例从多播摄像机流式传输 960 X 540 30fps 摄像机流。

CPU i7 2.67GHz,GPU NV GTX 1650。

GPU 加载高达 44% 的解码和 3d 大致相同。该应用程序使用了惊人的 75% 到 90% 的 CPU。从一次测试运行到另一次测试运行时,它跳了很多。GPU非常稳定。

这里还有一些有趣的信息。如果我使用一个视频流运行此应用程序的单个副本,则 CPU 使用率约为 CPU 的 5/10%。如果我运行 16 个应用程序实例,每个实例使用大约 4/10 到 8/10% 的 CPU。一旦我有 16 个视频流,GPU 与上面相同(44%),CPU 是标称的。

在添加摄像头时,一个实例中 CPU 使用率的增加不是线性的,它在 9 之后会有很大的跳跃。从下面的诊断图像中,您可以看到使用情况几乎完全隔离在 Native 代码中。其他图表显示大约 2/3 在内核中和 1/3 在系统 IO 中。CPU 非常均匀地分布在所有内核上。

在此处输入图像描述

要点上的代码

我已经尝试了很多变体,但无论我尝试什么,一旦我达到 16 个通道,CPU 使用率就会非常稳定。我尝试在自己的线程中运行每个实例。那没什么区别。我真的很想了解这一点并找到一种降低 CPU 使用率的方法。我有一个使用这项技术的应用程序和一个需要超过 16 个通道的客户。

0 投票
1 回答
76 浏览

android - libvlcsharp MediaPlayerElement 是否支持非触摸设备?

我在 Xamarin 上使用 libvlcsharp,在 Android 上使用(相当)新的 MediaPlayerElement UI。对于 Android TV 等设备,没有触摸界面,因此您必须使用遥控器之类的东西。

对于这种情况,我最终在 DispatchKeyEvent 中捕获按键并通过 MessagingCenter 将它们发送到我的应用程序。我想知道 MediaPlayerElement 是否可以自动支持非触摸设备,或者如果不能,在应用程序中处理按键的最佳方法是什么。我必须“突出显示” MediaPlayerElement 的各种控件,然后在按下“DpadCenter”时能够选择它们。

我的问题是:

  1. MediaPlayerElement 是否已经支持非触摸手势?此处的此站点似乎暗示它可能带有您可以关闭它们的评论。

  2. 如果它不支持它们(并且您必须自己滚动),是否有一种编程方式来突出显示(例如更改背景颜色)各个控件/按钮(例如暂停或播放)并调用它们?

0 投票
2 回答
483 浏览

c# - 我无法使用 LibVLCSharp 播放 UDP 视频流

我开始学习如何使用LibVLCSharp 库。现在我正在尝试以多播 UDP 224.XX.XX.XX:PORT 播放流媒体视频。问题是我收到的视频没有格式。

我可以使用以下命令在 cmd 中重现它: vlc udp://@224.XX.XX.XX:PORT --demux=mp4v --rawvid-fps=12

这是mi代码:

执行时它不会显示任何错误。

我必须显示视频的视频视图显示黑屏。

我了解问题可能是我没有正确输入 AddOption 或选项不同。但是在与代码斗争并查看文档之后,我找不到一个可以澄清的答案。

有人能帮我吗?

问候和谢谢。

0 投票
0 回答
113 浏览

libvlc - LibVLCSharp MediaPlayer 音频文件的字幕文本?

我一直在搞乱 LibVLCSharp 并注意到使用 MediaPlayer 时有一个显示文本的选项。您可以使用 SetMarqueeString(设置文本)和 SetMarqueeInt(启用要显示的文本)来执行此操作。

这适用于视频文件。我发现如果您正在播放音频文件,这根本不起作用。这是故意的,如果是这样,有没有办法在播放音频文件时显示文本?

0 投票
1 回答
363 浏览

libvlc - 将播放列表文件传递给 LibVLCSharp?

是否可以将播放列表文件传入 LibVLCSharp?我尝试了 .pls 文件和 .m3u8 文件,并为它们提供了一个网络服务器,但没有成功。

我这样创建媒体:

test.m3u8的内容:

查看调试日志,我可以看到它将其解释为播放列表:

通过转到“打开网络流”并将其指向相同的 URL(“http://192.168.1.100/test.m3u8”),我可以成功地在 Windows 的 VLC 应用程序中打开播放列表。

这是 libvlcsharp 中的一个错误,还是我错误地使用了 API?

0 投票
2 回答
571 浏览

c# - 解析从流加载的 libvlcsharp 视频不起作用

我想在 WinForms 中使用 C# 播放带有 libvlcsharp 的视频 (mp4)。

我使用 Stream 加载媒体,因为文件将被加密,然后我将设法在将其加载到媒体对象之前对其进行解密。

我成功加载并播放了视频,但我无法解析它。

我想解析它,以便在播放之前能够获取 Duration、AudioChannels、FrameRate、Width 等信息。

我调用 Parse(尝试使用每种选项组合),IsParsed 属性更改为 True,但 ParsedStatus 不是 Done 而是 Skipped。

如果我直接加载文件(不使用 srtream)它可以解析。

我的代码:

(我知道这很危险,我稍后会改进它)。

有人知道如何解析通过流加载的视频吗?

0 投票
1 回答
122 浏览

xamarin - 为什么 MediaPlayerElement 在 ContentView 中托管时不播放视频?

我在这里有一个关于我的问题的工作示例。基本上:当我将 LibVLCSharp MediaPlayerElement 直接放入 MainPage.xaml 时,我可以播放。当我尝试通过将 MediaPlayerElement 托管在可以在应用程序的多个部分中使用的 ContentView 中来创建可重用控件时,我得到的只是黑屏。唯一的区别似乎是将它托管在 ContentView 中。

最终,我的目标是创建一个可重用的单一类,我可以在 Xamarin 应用程序的多个部分中使用它来呈现视频,而无需复制和粘贴代码。我发现在 XAML 中设置我想要设置的属性(清除播放/停止等控件)是最稳定的。所以我倾向于将我的可重用组件实现为 ContentView 并在多个地方引用它。

有没有人知道为什么我在这个例子中会出现黑屏?

0 投票
1 回答
321 浏览

vlc - 强制 libvlc/libvlcsharp 为 chromecast 转码视频?

我目前正在使用 libvlcsharp 并尝试使用流式传输到 chromecast 的能力。它适用于“大多数”情况,特别是在它发送视频并且 chromecast 已经支持视频格式(例如 AVI)的情况下。如果我执行 x265 之类的更新操作,则会出现黑屏,因为 chromecast 不支持该格式。

在 VLC Android 应用程序中,它足够聪明地告诉您它将对视频进行转码,因为它以 chromecast 不支持的格式检测到它(这是一个弹出的对话框,说电池可能会受到影响,因为它转码)。在 libvlcsharp 中,我想总是转码。有没有办法从 libvlcsharp API 或我可以传递给 libvlc 的东西中做到这一点?

0 投票
1 回答
187 浏览

android - Xamarin Forms VLC 自动音频延迟

有没有办法自动让音频延迟在视频播放器中设置?每次手动修复它真的很烦人。

Exoplayer(yt 中使用的谷歌原生播放器)使用 getLatency 方法,不是公共 SDK 的一部分(https://github.com/google/ExoPlayer/blob/b5beb32618ac99adc58b537031a6f7c3dd761b9a/library/core/src/main/java/com/ google/android/exoplayer2/audio/AudioTrackPositionTracker.java#L172)所以我不能复制这个,因为 xamarin 没有在 c# 包装器中包含这个方法

(从https://developer.amazon.com/docs/fire-tv/audio-video-synchronization.html#section1-2尝试过的东西)

我还尝试在 vlc 中找到原生绑定 android 音轨以获取 getTimestamp 或 getPlaybackHeadPosition,但我没有成功。

有什么方法可以在 android 上的 xamarin.forms 中获取由蓝牙耳机引起的音频延迟?

有什么方法可以从 libvlc 中获取 android AudioTrack(如果使用的话)?