主要要求是它是H.264编码的视频。如果开销不是太大(比如≥30ms),我宁愿选择更简单的解决方案,甚至是黑客。我不想使用为我读取和解码H.264流的框架,因为我需要访问编码的H.264视频数据。到目前为止,这些是我的想法:
我考虑过使用ffmpeg作为编码器并通过UDP读取流,但解包和处理丢弃的包可能需要一些工作。
也许我可以使用 tmpfs 将视频流写入内存,但我希望在Windows和Linux之间与平台无关。
ffmpeg还可以选择将文件写入 stdout ,但这是基于行的,因此可能不适合视频数据。我已经读过在管道标准输出时有办法禁用行缓冲,但我不确定它有多可靠。
另一个想法是将ffmpeg作为子进程启动并更直接地在RAM中访问输出,或者可以从标准输出连续访问输出而不使用行缓冲区(如果可能的话)。
另一种选择可能是直接使用libx264,但这似乎比通过UDP读取ffmpeg更有用。