gpt4 book ai didi

c# - 移动实时视频编码

转载 作者:行者123 更新时间:2023-11-30 12:37:07 25 4
gpt4 key购买 nike

有谁知道实时视频重新编码的好方法(目标格式是 3GP s263 AMR 窄带和 MP4 mp4v mp4a,但当然不是同时的。输入文件是 WMV,但输入的越多支持的格式越好)?

目前,我们使用调用 ffmpeg 命令行的 C# 服务进行异步处理,但为同步请求执行此操作的想法有点次优,因为用户最终会在播放开始之前等待很长时间 (不过,如果这是最好的情况,请告诉我,我想我会接受的)。

如果我们可以同时提供文件并保存它(以便我们可以存储它以备将来请求),那就太棒了,但如果我们不能这样做也不会是一场灾难。

作为旁注,我宁愿避免流媒体解决方案,因为支持它的设备较少,但如果没有好的方法来做我想做的事情,我很乐意听到替代方案,即使它们涉及流媒体。

更新

只是为了让你们了解我所处的最新状态我目前正在考虑编写一个直接调用 FFmpeg 的 DLL 而不是 exe 的包装器的想法,开始认为我可能是能够以这种方式获得我想要的功能(逐步捕获数据而不是一旦完成就可以让我足够接近实时就足够了)。

仍在研究这是否可行,并试图找到如何执行此操作的良好示例(即使是那些用 c 而不是 c# 编写的示例,因为它会显示如何与 DLL 交互)。

最佳答案

至于流媒体解决方案,我们使用了 StreamCoders' MediaSuite.net .我们可以将任何基于 MPG 的视频流式传输到 3GP/H263。但是,您应该在规范、格式、编码等方面确切地知道自己在做什么。这是一个广阔的领域,他们的产品不会“解释”一些基本术语,他们假设您已经知道自己在做什么。此外,据我所知,您必须手动同步音频和视频 channel 。他们的演示应用程序展示了如何做到这一点(但话又说回来,它只是一个演示应用程序,因此您最终可能会进行优化)。

我认为您可以将它用于重新编码和流式传输,我最近没有自己尝试过。你打算如何输出结果?作为 System.IO.MemoryStream?

另一种流媒体解决方案是拥有一个众所周知的流媒体服务器,例如 Xenon ,并使用它执行“背靠背”技术:您的处理程序获取请求并创建对流服务器的请求。流式服务器的响应被流式传输到客户端。这有点像 hack,但它在一段时间内对我们很有用。

您的 ffmpeg 解决方案很好,您可能会发现它比低级别的几乎实时转换更容易实现。如果你能“容忍”这一点,也许还是让它保持原样更好。

更新:如果您最终用 .Net 库包装 ffmpeg,这似乎是一个很好的解决方案,因为 ffmpeg 是一个很棒的图书馆,如果你能分享你的解决方案就太好了。我们尝试玩它,但时间不够。

关于c# - 移动实时视频编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1831071/

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