0

我的问题基本上来自我有 2 个不同的视频播放流,并且必须在内存中实时混合它们。一个用于视频,另一个用于音频。

我的目标是创建一个代理,它可以从它们的 URL 中复用 2 个不同的 webm 流,同时支持范围请求(需要知道编码文件的大小)。这可能吗?

这就是我使用 ffmpeg 手动混合音频和视频流的方式:

ffmpeg -i video.webm -i audio.webm -c copy output.webm

但是,这需要我完全下载视频来处理它,不幸的是我不想这样做。

提前致谢!

4

2 回答 2

0

出 ffmpeg 管道

此外,由于您已标记 go - 我假设您将使用 os/exec - 在这种情况下还要检查Cmd.ExtraFiles。这使您可以使用标准 0、1 和 2 之外的其他管道(文件) 。

因此,假设您有一个视频流和一个音频流,分别连接到34。您的命令的 ffmpeg 位变为:

ffmpeg -i 管道:3 -i 管道:4 -c 复制 output.webm

于 2020-11-23T06:25:25.293 回答
0

如果您正在寻找可以在 go 中使用的功能,您可以查看

github.com/at-wat/ebml-go/webm

这提供了一个使用缓冲区BlockWriter写入文件的接口;webm您可以查看测试文件以检查如何使用它

https://github.com/at-wat/ebml-go

于 2020-11-23T04:13:49.017 回答