我正在为我的学生计划一个基于 Zynq Xilinx FPGA 的开源大学项目,该项目将捕获 CMOS 视频,将其编码为传输流并通过以太网将其发送到远程 PC。基本上我想设计另一个IP摄像机。我有丰富的 FPGA 经验,但缺乏有关编码和传输视频数据的知识。这是我的计划:
ffplay udp://localhost:5678
我的问题基本上是关于 2 步。如何将像素帧转换为传输流?我的选择是:
在这里,我怀疑它们是否可以免费使用,而且我们没有太多资金。
此外,我担心我可能在 FPGA 内部生成的流的格式兼容性以及 ffplay 实用程序在主机上预期的格式兼容性。任何帮助、提示、链接和书籍都会被应用!
最佳答案
我没有看到任何开源硬件 h.264 编码器,但我正在向正在将软件编码器的一些繁重计算部分移动到 FPGA 中的人提供建议。它可能是openh264。
我不会为这个项目推荐 ffmpeg,因为它实现了很多协议(protocol)。仅在 h.264 中有足够的选项,而不必担心其他标准。
至于容器格式,MPEG4 盒子非常简单,因此添加传输封装应该非常简单。我在考虑 Quicktime 4cc 封装。
我建议使用 MPEG DASH,因为您可以将每个视频帧封装到一个单独的框(MOOF 电影片段)中。然而,将编码数据包装在容器中并不是计算密集型的。以下是一些处理该容器格式的软件:
https://gpac.wp.mines-telecom.fr/mp4box/dash/
您可以专注于计算密集型部分,而不是在硬件中实现整个编码器,您可以通过在软件运行时对其进行分析来找到这些部分。去 block 滤波器就是这样一种功能,它既用于编码也用于解码。
祝你的项目好运!
关于video - 使用 FPGA 捕获 CMOS 视频,编码并通过以太网发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34352027/