我有一个 java servlet api,当被请求时,它会使用 ffmpeg 启动视频文件的实时转换并将其通过管道传输到 mediastreamsegmenter 以将其分段以用于 http 实时流。我想要的是java servlet在生成索引文件后立即返回索引文件的url(在写入第4个传输流文件之后),这样用户就可以开始观看视频而无需等待它完全完成转换。
我想实现这一点的方法是将命令传递给 mediastreamsegmenter 的 -file-complete-command 参数,并让它调用某种命令,如果最后完成的文件是索引文件。
我的另一个想法是只分割视频的前 30 秒左右,然后返回响应,并将视频的其余部分添加到 servlet 中的某种后台任务中。我不确定如何做到这一点。我可以创建一个单独的线程来执行此转换,该转换将在 servlet 返回后继续运行吗?我确信必须有更好的方法来做到这一点。任何想法将不胜感激。