告诉Javaservlet何时从外部命令行调用返回

告诉Javaservlet何时从外部命令行调用返回,java,ffmpeg,video-streaming,mediastreamsegmenter,Java,Ffmpeg,Video Streaming,Mediastreamsegmenter,我有一个JavaServletAPI,当被请求时,它会使用ffmpeg启动视频文件的实时转换,并将其传输到mediastreamsegmenter,以将其分割为http实时流。我希望Javaservlet在生成索引文件后(在写入第四个传输流文件之后)立即返回该文件的url,这样用户就可以开始观看视频,而无需等待它完全完成转换 我想如何实现这一点是将一个命令传递到mediastreamsegmenter的-file complete命令参数中,并让它调用某种命令,如果最后完成的文件是索引文件,该命

我有一个JavaServletAPI,当被请求时,它会使用ffmpeg启动视频文件的实时转换,并将其传输到mediastreamsegmenter,以将其分割为http实时流。我希望Javaservlet在生成索引文件后(在写入第四个传输流文件之后)立即返回该文件的url,这样用户就可以开始观看视频,而无需等待它完全完成转换

我想如何实现这一点是将一个命令传递到mediastreamsegmenter的-file complete命令参数中,并让它调用某种命令,如果最后完成的文件是索引文件,该命令可以告诉java servlet返回其响应


我的另一个想法是只分割视频的前30秒左右,然后返回响应,并将视频的其余部分添加到servlet中的某种后台任务中。但我不确定这将如何实现。我是否可以创建一个单独的线程来执行此转换,该转换将在servlet返回后继续运行?我相信一定有更好的办法。如有任何想法,将不胜感激

我想说,对于这样的任务,您肯定需要一个单独的线程。为什么“必须有”更好的方法?

我想说,对于这样的任务,您肯定需要一个单独的线程。为什么“必须有”更好的方法?

我不太喜欢视频流,但你能启动一个线程(称为PARSE_线程)进行解析,并告诉servlet(生活在servlet_线程中)等待一段合理的时间吗?我认为ffmpeg转换需要大约相同的时间来解析前30秒,因此启动parse_线程,然后休眠SERVLET_线程,然后让SERVLET启动流


使用一个单独的线程是解决这个问题的好办法。

我不太喜欢视频流,但是你能启动一个线程(称为PARSE_线程)进行解析,并告诉servlet(生活在servlet_线程中)等待一段合理的时间吗?我认为ffmpeg转换需要大约相同的时间来解析前30秒,因此启动parse_线程,然后休眠SERVLET_线程,然后让SERVLET启动流


使用单独的线程是解决这个问题的好方法。

这似乎不像mediastreamsegmenter支持的行为。在我所有的测试中,当我分割文件的第一部分,然后用不同的命令分割第二部分时,它会覆盖由第一个命令生成的索引文件。理论上,我可以创建自己的mediastreamsegmenter来支持这种行为,但如果可能的话,我宁愿不走这条路。这看起来不像mediastreamsegmenter支持的行为。在我所有的测试中,当我分割文件的第一部分,然后用不同的命令分割第二部分时,它会覆盖由第一个命令生成的索引文件。理论上,我可以创建自己的mediastreamsegmenter来支持这种行为,但如果可能的话,我宁愿不走这条路。