java - 告诉 java servlet 何时从外部命令行调用返回

标签 java ffmpeg video-streaming mediastreamsegmenter

我有一个 java servlet api,当收到请求时,它会使用 ffmpeg 启动视频文件的实时转换,并将其通过管道传输到 mediastreamsegmenter 以将其分段以进行 http 实时流传输。我想要的是 java servlet 在生成索引文件后立即返回索引文件的 url(在写入第 4 个传输流文件之后),以便用户可以开始观看视频,而无需等待它完全完成转换。

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

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

最佳答案

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

关于java - 告诉 java servlet 何时从外部命令行调用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579732/

相关文章:

java - 替换日志消息中的参数并在 Log4j 2 中添加 Throwable

java - 类Foo包含对象Bar,Foo表没有指向Bar对象的指针,Bar对象有指向Foo的FK。

android - 如何从 background.png 和 *.png 中的图像列表(每个 image001.png、image002.png)创建视频?

video - 如何在编码期间暂停和恢复ffmpeg?

Android java.lang.UnsatisfiedLinkError - 找不到 "libffmpeg.so"

video-streaming - 使用视频工具箱在 iOS 8 中解码 h264

android - 我如何以字节 block 播放视频?

java - 提交页面并没有更新我的模型?

video-streaming - 英特尔H264硬件MFT不支持GOP设置

java - 使用前瞻表达式匹配组