我是 xuggle primer,我想将视频转码为各种格式/质量。作为新手,我想使用 Xuggle MediaTool。因为我需要高效地完成它,所以我想在一个单独的线程中处理每个目标格式。这种情况下正确的并发模式是什么?
假设我有 file.avi
,我想将它转码为 .flv
和 .mov
。我很好奇 xuggle 是否在以下情况下为每个 Writer 启动线程:
IMediaReader reader = ToolFactory.makeReader("file.avi");
reader.addListener(ToolFactory.makeWriter("file.flv", reader));
reader.addListener(ToolFactory.makeWriter("file.mov", reader));
while (reader.readPacket() == null){}
或者也许我应该在单独的线程中为每种格式开始转换?
(代码来自:MediaTool Introduction)
最佳答案
Xuggle 不会启动任何线程(1),由您来管理线程。此外,Xuggle 对象不是线程安全的——您必须自己控制访问。
然而,在您添加多个线程之前,开箱即用地测量性能可能是值得的。多核机器上的多个线程肯定会加快编码速度,但您可能不需要这种好处。
艺术
(1) 不完全正确,但在您的情况下,Xuggle 不会启动任何线程。 Xuggle 将(从 4.0 版开始)最多启动一个用于内存清理的其他线程。
关于java - xuggle并发转码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833883/