gpt4 book ai didi

c# - 如何使用 C# 编码/解码视频?

转载 作者:可可西里 更新时间:2023-11-01 08:09:55 25 4
gpt4 key购买 nike

一些背景知识,我的任务是修复一些“小”错误并维护这个解决方案,以便在我们的应用程序的两个实例之间通过网络流式传输视频。该解决方案是由不再在这里的人编写的,因此代码中存在一些神秘之处以及一些非常有趣的陷阱。该解决方案是使用 ffmpeg 和 C++ 代码编写的,用于包装编码/解码相关代码以及一些流代码。这个 C++ 然后用 SWIG 包装,以便它可以与 C# 互操作,并将视频帧传递到使用 VideoRendererElement 渲染的位置。它位于 WPF 控件中。帧被传递的主要原因是因为我们有一些自定义协议(protocol),我们需要发送视频数据,这些协议(protocol)是使用 C# 编写的,因此当视频帧被传递时,我们将它们包装在我们自己的数据包中并通过网络发送出去.这个解决方案有效,我们可以使用我们的自定义协议(protocol)流式传输视频,尽管维护和使用它是一场噩梦。

我的问题是有没有更好的方法来解决这个问题?我正在寻找在较低级别处理视频数据(在 C# 中)的方法,以便我可以获取视频帧并将它们打包在我们自己的数据包中并发送出去,并能够接收和重建视频对方。 ffmpeg 似乎是常见的解决方案,但我遇到了很多问题,我认为 GPL/LGPL 是个问题。

我希望实现的基本流程,视频文件 -> 编码 -> 包裹在数据包中 -> 通过协议(protocol) X 发送 -> 从数据包中获取视频数据 -> 解码 -> 渲染/保存到磁盘

最佳答案

DirectShow 是您的 friend 。 DirectShow 是大多数 Windows“多媒体”应用程序(如媒体播放器、音频编码器等)使用的底层。

即使这个库是为本地开发人员制作的,您也可以通过 DirectShow.net 从托管世界访问它。 http://directshownet.sourceforge.net这是一个众所周知且稳定的 DirectShow 托管包装器。

您唯一需要做的就是学习一点 DirectShow 以了解图形和过滤器的概念,然后创建您自己的过滤器和图形以使用 DirectShow 的强大功能!

关于c# - 如何使用 C# 编码/解码视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834667/

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