gpt4 book ai didi

c# - 如何用C#.Net和DirectX编写音视频播放引擎(综合分析)?

转载 作者:行者123 更新时间:2023-11-30 12:33:39 32 4
gpt4 key购买 nike

前提:

我在一家广播解决方案公司工作,我们从外部供应商那里购买播放 sdk,这减轻了我们在视频加载、渲染、播放等方面的负担。它为我们提供了许多功能,如字符生成器、叠加图像、文本、 flash (*.swf) 文件、流媒体等。我们主要专注于应用程序开发(而非技术开发)。因此,我们从 C# 代码对 SDK DLL 进行简单的 API 调用,如播放、暂停、搜索、覆盖等,这让我们的生活变得轻松。

与此同时,我们也面临一些问题,因为 sdk 由另一个国家/地区的第三方提供,因此支持质量取决于他们。此外,他们所做的功能添加具有通用性,并且他们每两周发布一次新版本。他们的代码有很多错误。即使我们购买了他们的完整产品,我们也面临许可问题。


要求:

  1. 我们想评估编写我们自己的播放/渲染引擎的选项 - 最初只有最少的功能,但从长远来看,我们会添加更多功能,例如覆盖图像或文本或 flash swf 文件、搜索、快进等
  2. 我们还从硬件设备获取实时输入源,并通过硬件设备将视频源发送到电视,并将实时源记录在磁盘上。我们在实时输入和本地存储的视频文件之间切换。
  3. 我们需要播放各种视频(quick time、mp4、flv 等),因此我们还将依赖第 3 方编解码器。
  4. 我们可以使用不同的硬件卡进行输入和输出,并且需要迭代并获得可用的硬件配置。
  5. 我们在 C# 上工作,我们有经验丰富的 C# 开发人员,我们不想使用 C++ 进行开发,因为我们公司目前没有 C++ 专家。

问题:

  1. 我们的方法应该是什么 - 我们能否使用纯 C# 和 DirectX 11 编写具有上述功能的播放(这是正确的方法还是存在其他更好的方法)?
  2. 实现相同目标的难易程度如何(这是一个主观问题 - 主观回答就足够了)?
  3. 编写良好的 C# 代码是否比 C++ 代码慢(关于 DirectX 和媒体播放,我可能需要为 NTSC 标准每秒传送多达 30 个视频帧)?
  4. 开始它(包括概念和编码)的好方法(资源)是什么?

这是一个综合问题,但您的专家建议将使我的方向和进步变得容易。

最佳答案

在我使用 C# 和 .NET 构建 3D 电 View 形系统的项目中,我不得不说是的,这绝对是可能的。

回答您的具体问题,

  1. C# 和 DX 11 (SlimDX) 绝对可以完成这项工作,我已经使用 DX 9 和功能较差的硬件完成了这项工作。
  2. 我想说的是,如果您以产生很少甚至不产生垃圾(GC 产生图形打嗝)的观点来解决这个问题,并且对动画采用非常数据驱动的方法(我们称之为模板),您将看到我指的路。
  3. 是的,C# 代码有编码(marshal)处理开销,但可以通过减少对 DX 的调用次数和传递给它的数据量来降低成本。
  4. 参见答案#2

希望这对您有所帮助!

关于c# - 如何用C#.Net和DirectX编写音视频播放引擎(综合分析)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770466/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com