如何将RGB图像编码为H264帧(关键帧+一些依赖帧)?
所以我创建了图像生成器(非常简单的生成 RGB 的图像),我希望能够将一定数量的图像转换为 H264 关键帧+相关帧(lats 说 100),因此在生成的每 100 帧中,我需要将它们编码为 H264。这样的事该怎么办呢?
So I created images generator (quite simple onewhich generates RGBs) I want to be able to turn some amount of images into H264 KeyFrame+dependent frames (lats say 100) So on each 100 frames generated I need to encode them into H264. How to do such thing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你有几个选择。最好的可用编码器可能是 x264,但它没有 C# 接口。您需要定义 C 风格的互操作调用才能从 C# 程序中使用它。
另一个选择是 MSFT 的表达式编码器 SDK,它支持 H264。我不确定它要花多少钱。还有一些其他编码器实现,例如 Mainconcept 和 Dicas,它们可能具有 C# 接口,但这些会花费您的费用。
最后一个选择是使用 DirectShow.NET 和 this filter 使用 directshow 进行编码。您应该能够通过 C# 完成所有操作,并且是通过 COM 互操作实现的,因此界面更加简洁。
最后,几乎所有编码器都在 YUV 色彩空间中工作,因此您可能需要一些东西来转换 RGB 图像 - x264 和 Monogram 滤镜都在 YV12 上工作。
You have a couple options. Probably the best available encoder is x264, but it doesn't have a C# interface. You'd need to define C-style interop calls to use it from a C# program.
Another option would be MSFT's expression encoder SDK, which supports H264. I'm not sure how much it costs. Then there's a few other encoder implementations, such as Mainconcept and Dicas, that may have C# interfaces, but those are going to cost you.
One last option is to use DirectShow.NET and this filter to do the encoding with directshow. You should be able to do everything from C#, and it's through COM interop so the interface is a bit cleaner.
Lastly, almost all encoders work in the YUV colorspace, so you'll likely need something to convert your RGB images--x264 and the Monogram filter both work on YV12.