如何在 C# 中通过 VLC api 流式传输视频

2024-01-04

我正在从事视频广播的小型家庭项目。我找到了一些例子Example http://csharpmagics.blogspot.com/,但它不起作用,因为需要旧版本的库0.8.6。所以我找到了它,但是当我尝试从 API 获取组件时,我对非托管代码有例外。因此,也许有人使用 VLC 进行视频广播,如果您愿意的话,我希望提供一些示例。


我找到了一个解决方案并使用Vlc.DotNet https://github.com/ZeBobo5/Vlc.DotNet包装纸 我已经安装了 nuget 软件包并编写了控制台应用程序:

 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 == 4 ? "win-x86" : "win-x64"));

        using (var mediaPlayer = new Vlc.DotNet.Core.VlcMediaPlayer(libDirectory))
        {

            var mediaOptions = new[]
            {
                ":sout=#rtp{sdp=rtsp://192.168.1.162:8008/test}",
                ":sout-keep"
            };

            //mediaPlayer.SetMedia(new Uri("http://hls1.addictradio.net/addictrock_aac_hls/playlist.m3u8"),
            //    mediaOptions);

            mediaPlayer.SetMedia(file, mediaOptions);

            mediaPlayer.Play();

            Console.WriteLine("Streaming on rtsp://192.168.1.162:8008/test");
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
}

然后我运行 VLC 媒体播放器并输入我的链接。我得到了我的视频流

rtsp://192.168.1.162:8008/测试

您可以在我的 GitHub 存储库中查看我的测试应用程序:视频广播 https://github.com/Ledrunning/VideoBroadcast

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中通过 VLC api 流式传输视频 的相关文章

随机推荐

  • 如何在 R 中创建条件虚拟对象?

    我有一个时间序列数据的数据框 其中包含每日温度观测值 我需要创建一个虚拟变量 对温度高于阈值 5C 的每一天进行计数 这本身很容易 但存在一个附加条件 仅在连续十天高于阈值后才开始计数 这是一个示例数据框 df lt data frame
  • 如何在酶中等待私人功能的承诺?

    我是 React 和任何 JavaScript 测试框架的新手 我有一个简单的组件 可以从 API 检索项目并将其显示在屏幕上 函数 getItems 是从 componentWillMount 调用的 是否可以等到 getItems 完成
  • Bitfinex 数据 API

    我正在尝试使用 bitfinex REST api 获取历史 OHLC 数据 文档如下 https bitfinex readme io v2 reference rest public candles https bitfinex rea
  • 如何在 C++ 中比较两个位图屏幕截图的字节到字节

    在问题的最后我的最后编辑 大家好 我必须实现一个功能来比较屏幕一部分的两个镜头 以便知道是否存在差异 变化 我写了类似下面的代码 但我无法让它工作 在代码中 COORDINATES RECT 是一个结构体 typedef struct CO
  • 当 Windows 进入睡眠模式然后唤醒时 setTimeout 不起作用

    我在 Chrome 中注意到了这一点 有人知道出了什么问题或解决方法吗 您可以使用setInterval相反 它继续运行 如果您需要一次性解决方案 请使用clearInterval删除计时器 setInterval如果计算机处于睡眠状态 而
  • 在视图模式中打开会话

    鉴于我选择的 JPA Hibernate 实现 Spring 和 开发框架 我问这个问题 我一直在思考实体层中的关系 例如 我有一个包含许多订单行的订单实体 我已经设置了我的应用程序 以便它急切地加载每个订单的订单行 您是否认为这是一种解决
  • C 使用信号同步进程

    好吧 我正在尝试自学如何发送信号 但我遇到了一个小问题 我不知道我做错了什么 现在发生的事情是 它正在执行父级 然后转到子级 然后返回父级 它没有执行我希望它执行的操作 即执行父级 用户定义其运行的时间量 然后杀死它然后转到子进程并在相同的
  • 使 tkinter 按钮大小相同

    我想让所有 tkinter 按钮的大小相同 无论文本如何 是否可以拉伸其他按钮以相互匹配或设置特定尺寸 因为我很难在文档中找到如何执行此操作 目前 按钮根据文本的大小进行拉伸 我的意思的例子 https i stack imgur com
  • 在 Selenium IDE 中使用 waitForCondition ( script,timeout )

    我使用 Firefox 的 Selenium IDE 扩展录制了一个脚本 我想添加命令 waitForCondition 我发现它需要两个参数 脚本和超时 在 Selenium IDE 中 每个命令都有 3 个文本字段 命令名称 我假设为
  • SendMessage(WM_COPYDATA) + 记录 + 字符串

    我想发送一条记录 现在只有一个字符串 但我将添加更多变量 这是我第一次处理记录 所以这可能是一个愚蠢的问题 但是 为什么这有效 type TDataPipe record WindowTitle String 255 end var Dat
  • Typescript 自动获取类中的接口属性

    你好 TypeScript 专家 我有以下代码 但我必须在类中重复接口属性 否则我会得到 类错误地实现了接口 使用接口时 是否有 TypeScript 简写可以执行此操作而无需声明Id number 以及该类中的所有其他属性 谢谢 inte
  • AffineTransform 不变换 Stroke?

    使用 Graphics2D 时scale 具有两个不同参数的函数 在 x 和 y 方向按不同比例缩放 稍后在此 Graphics2D 对象上绘制的所有内容也会缩放 这会产生奇怪的效果 即在一个方向上绘制的线条比在另一方向上绘制的线条更粗 下
  • EF Code First:获取 DbContext 的所有 POCO 类型

    有没有办法从指定的 DbContext 实例获取 POCO 的类型 您需要访问元数据工作区 http msdn microsoft com en us library system data metadata edm metadatawor
  • 如何在 Windows 上使 add_custom_command 配置特定?

    为了在我的一个项目中运行单元测试 我有一个自定义命令 它将可执行文件 库和其他相关文件复制到其他位置 以便它们可以使用特定的设置运行 而不是在它们所在的位置运行它们建造的 在 Linux 上 这非常简单 但在 Windows 上 我遇到了一
  • 如何同时编辑单词的所有突出显示实例?

    在 Notepad 中 每当您选择 HTML 文档 或 CSS 中的任何单词时 类似的单词都会自动突出显示 是否有一个快捷方式可以用来一次编辑所有这些突出显示的片段 目前 Notepad 6 9 2 版本中尚未内置选择所有相似文本并进行编辑
  • 如何使用 pubsub 模拟器在本地调用 firebase Schedule 函数

    我正在研究云功能 尤其是日程功能 我需要每 5 分钟定期触发一个函数 但仅在测试步骤中 我需要在 pubsub 模拟器上运行它而不部署它 怎么做 我尝试使用 firebase shell 但它只触发一次 exports scheduledF
  • 如何在 Windows 上安装和使用 cURL? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我无法在 Windows 上运行 cURL 我已经从以下位置下载了 cURL zip 文件here https curl haxx se
  • 通过 Firebase 动态链接传递多个参数 Android

    我使用了 Firebase Dynamics 链接 它可以打开我的应用程序 转到 Play 商店或转到 URL 但是当我通过链接传递一些参数时 我只能获取第一个参数 这是我的动态链接 https xx app goo gl link htt
  • 从其他库重新导出共享库符号 (OS X / POSIX)

    我的问题是 OS X on x86 64 特定的 但更值得赞赏的是适用于其他 POSIX 操作系统的通用解决方案 给定一些共享库 下面称为原始库 的符号名称列表 我希望我的共享库重新导出这些符号 重新导出 就像有人尝试根据我的库解析符号一样
  • 如何在 C# 中通过 VLC api 流式传输视频

    我正在从事视频广播的小型家庭项目 我找到了一些例子Example http csharpmagics blogspot com 但它不起作用 因为需要旧版本的库0 8 6 所以我找到了它 但是当我尝试从 API 获取组件时 我对非托管代码有