【发布时间】:2021-03-11 19:03:04
【问题描述】:
我正在尝试拍摄两个视频并使用 ffmpeg 将它们转换为一个视频。如果您拍摄这两个视频,通过 ffmpeg 运行它们,然后通过 API 提供该文件,效果会很好。不幸的是,这些视频的上限约为 20 分钟,而这种方法需要很长时间才能创建完整的视频(约 30 秒 w/超快)。
我有一个想法,将 ffmpeg 命令的输出流式传输到客户端,这样就无需等待 ffmpeg 创建整个视频。我试图自己证明这一点,但并没有取得太大的成功。这可能是我对流的缺乏经验,或者这可能是不可能的。
有谁知道我想流式传输 ffmpeg 正在进行的输出的想法是否可行/可行?
【问题讨论】:
-
“我正在尝试拍摄两个视频并使用 ffmpeg 将它们转换为一个视频。” 显示您的命令和完整的日志。可能有更快的方法来做到这一点。
-
是的,这是可能的——只需一点代码......已经有一篇好文章on using FFMPEG in .NET
-
@llogan 这是我编写的将 4 个视频组合在 2x2 网格中播放的命令:
.\ffmpeg.exe -i .\input1.mp4 -i .\input2.mp4 -i .\input3.mp4 -i ./input4.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2[row1]; [2:v][3:v]hstack=inputs=2[row2]; [row1][row2]vstack=inputs=2[outv]" -map "[outv]" -preset ultrafast out.mp4 -
您要使用哪种输出协议?你需要支持什么格式?客户端是本地的还是联网的?
-
不确定输出协议指的是什么,但我希望输出文件是 mp4。客户端已联网,我想以某种方式将 ffmpeg 的进行中输出流式传输到客户端。我的 stream-foo 还不够先进,无法知道您是否可以这样做
标签: asp.net-core .net-core video ffmpeg video-streaming