在windows上运行标准输出到docker容器运行linux

我需要将只能在Windows上运行的程序的输出传送给另一个只能在Linux上运行的程序。 (这些程序在function上与FFMPEG非常相似,所以为了testing,我将Windows上的FFMPEG标准输出转换为Linux上的FFMPEG标准input。)

我正在使用Docker在Windows上运行Linux容器。 Docker支持从主机到Docker容器的pipe道数据,如下所示:

ffmpeg -i <input> -c:a copy -v:a copy -f mpegts - | docker run ffmpeg-container -f mpegts -i - -c:a copy -c:v copy <output> 

但是,Windows上的Docker运行在虚拟机上,没有本地客户端,这意味着我不能直接pipe道到容器。 到目前为止,我还没有find任何有关通过Windows上的虚拟机pipe道数据的例子或讨论。

我已经尝试了使用netcat替代解决scheme,但它的吞吐量太慢了:

视窗:

 ffmpeg -i <input> -c:a copy -v:a copy -f mpegts - | ncat <ip address> <port> 

Linux的:

 nc -l <ip address> <port> | ffmpeg -f mpegts -i - -c:a copy -c:v copy <output> 

纯粹在Windows中转码产生大约100 FPS,而netcat解决scheme运行在0.1 FPS。 我希望直接pipe道会有更好的结果。

我试过的其他解决scheme包括使用UDP将数据从FFMPEGstream式传输到FFMPEG – 只是为了让输出来自标准输出,但在传输过程中数据已损坏。 我怀疑问题是在数据包不按顺序到达。

任何类似的解决scheme将不胜感激。 内容是video数据,因此使用FFMPEG获取数据的解决scheme是可以接受的。