小编Aza*_*ath的帖子

Xuggler - 打开 mp4 文件会导致程序崩溃/阻塞

简洁版本:

使用 Xuggler 打开/读取 mp4 文件有时无法正常工作,但会导致程序崩溃。

长版:

在我的程序中,我读取、修改和写入视频文件。它适用于我测试的大多数格式(avi、flv、mpg、mkv)。我使用的Xuggler功能主要是:

//Example 1
IContainer container = IContainer.make();
int result = container.open(filename, IContainer.Type.READ, null);
Run Code Online (Sandbox Code Playgroud)

//Example 2
 IMediaReader filmReader = ToolFactory.makeReader(filename);
 filmReader.readPacket();
 filmReader.close();
Run Code Online (Sandbox Code Playgroud)

处理 mp4 文件就像抽奖一样。有些文件大部分工作正常。有些文件适用于示例 1,但不适用于示例 2,反之亦然。对于某些文件,程序在调试模式下运行,而对于某些文件,程序不在调试模式下运行。

我通常得到的效果是一个错误(查看帖子底部)。

我正在寻找的答案是为什么会发生这种情况,更重要的是是否可以修复?

问题对我来说特别难以调查,因为它看起来是半随机的。它在调试模式下的行为可能有所不同,有时甚至我在按“继续”之前在调试模式下等待的时间也可能导致程序正常运行或崩溃。

添加看似不相关的代码可能会导致程序停止处理某些文件。例如:

添加行:

 IContainer container1 = IContainer.make();
Run Code Online (Sandbox Code Playgroud)

节目前:

 IMediaReader filmReader = ToolFactory.makeReader(filename);
 filmReader.readPacket();
 filmReader.close();

 IContainer container = IContainer.make();
 int result = container.open(filename, IContainer.Type.READ, null);
 System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

导致之前正常工作的文件崩溃。

错误:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) …
Run Code Online (Sandbox Code Playgroud)

java video mp4 xuggler

5
推荐指数
0
解决办法
1997
查看次数

标签 统计

java ×1

mp4 ×1

video ×1

xuggler ×1