标签: xuggle

Xuggle无法打开内存输入

我正在开发一个将Hadoop的MapReduce框架与Xuggle集成的程序.为此,我正在实现一个IURLProtocolHandlerFactory从内存Hadoop数据对象读取和写入的类.

您可以在此处查看相关代码:https: //gist.github.com/4191668

我的想法是 用UUID 注册类中的每个BytesWritable对象,IURLProtocolHandlerFactory这样当我稍后在打开文件时引用该名称时,它返回一个IURLProtocolHandler附加到该BytesWritable对象的实例,我可以从内存中读写内存.

问题是我得到这样的例外:

java.lang.RuntimeException: could not open: byteswritable:d68ce8fa-c56d-4ff5-bade-a4cfb3f666fe
at com.xuggle.mediatool.MediaReader.open(MediaReader.java:637)
Run Code Online (Sandbox Code Playgroud)

(另见发布的链接)

在调试时,我看到在工厂中正确找到了对象,而且甚至可以在协议处理程序中读取它们.如果我从输出文件中删除侦听器,则会发生同样的情况,因此问题已经出现在输入中.深入挖掘Xuggle的代码我到达JNI代码(试图打开文件),我不能比这更进一步.这显然会返回错误代码.

XugglerJNI.IContainer_open__SWIG_0
Run Code Online (Sandbox Code Playgroud)

我真的很感激一些暗示下一步该怎么做,我该如何继续调试.也许我的实现有一个缺陷,但我看不到它.

java xuggle

6
推荐指数
1
解决办法
341
查看次数

Xuggler:IContainer.open()阻止

我试图用xuggle打开一个视频文件,如下所示:

    if (container.open(in,  null) < 0) {  
        throw new IllegalArgumentException("could not open file: ");
    }
Run Code Online (Sandbox Code Playgroud)

当我使用mp4文件并且我传递给打开一个InputStream时,问题就出现了:

       InputStream in = new FileInputStream(filename);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,IContainer.open仍然被阻止,并且不返回任何内容.
但是,如果我将文件名传递给open方法或者我使用flv格式,它可以正常工作.我必须使用带有mp4文件的InputStream.
有人可以帮我找到问题吗?

java mp4 xuggle xuggler

5
推荐指数
1
解决办法
711
查看次数

Java库,用于从视频创建缩略图

我们正在尝试从视频创建缩略图。我们尝试了两个第三方库。那些是

  1. https://github.com/bytedeco/javacv

  2. http://www.xuggle.com/xuggler/

那些工作正常。但是我们正在尝试Java内置库。我们找到了一个Java库,那就是

javax.media。*

但是该库已贬值。我们无法使用它。

我们是否有针对此问题的Java内置库?

java video ffmpeg xuggle javacv

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

使用 xuggler 从文件中读取视频时抛出“EXCEPTION_ACCESS_VIOLATION”

我正在编写 java 代码以接收 mp4 格式的视频文件,对其应用效果,然后将其保存到一个新文件中。代码应该将给定的视频拆分为其帧并将它们存储在一个数组中,以便每个帧都可以用于构建效果。这部分代码由xuggler处理,所以我很难确定哪里出了问题。

问题是,甚至在阅读视频的一张图片之前,错误就会被抛出,我不知道它指的是什么,广泛的谷歌搜索告诉我它与内存访问错误有关。

更奇怪的部分是它只发生在一些 mp4 文件上,即使它们都是 mp4 格式并且都应该以相同的方式运行。

我已经尝试了许多来自不同来源的不同 mp4 文件,其中一些有效,一些无效,似乎是随机的。我对应用效果最感兴趣的 mp4 是不起作用的 mp4 之一。

在下面的代码中,我在各个点使用打印语句进行了识别,导致错误的代码部分位于具有变量名称 media 的 IMediaListener 中的某处。侦听器本身由while(reader.readPacket()==null);ActionListener 内部的行调用,特别是在按“子”按钮触发的部分中。这是唯一被称为它的地方。

我应该注意,所有与 xuggler 相关的代码都不是我自己的,因为我在网上的代码演示中找到了它。我不会假装了解 xuggler 的工作原理。

import java.util.*;
import java.util.concurrent.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.awt.image.*;
import com.xuggle.xuggler.*;
import com.xuggle.mediatool.*;
import com.xuggle.mediatool.event.*;
import java.awt.event.*;
public class mainClass {
    static JFrame win=new JFrame();
    static JPanel dis=new JPanel();
    static JButton sub=new JButton("Submit"),b1=new JButton("Browse"),b2=new JButton("Browse");
    static JTextField input=new JTextField(),output=new JTextField();
    static String savePath="",sourcePath="";
    static JLabel l1=new …
Run Code Online (Sandbox Code Playgroud)

java xuggle xuggler

5
推荐指数
1
解决办法
127
查看次数

解密Xuggle/ffmpeg错误(新手)

我最近开始使用Xuggle将各种格式的视频文件转换为相应的FLV(通过jwplayer在我们的网站上播放).我正在使用的代码非常简单; 基本上他们为基本视频转换教程展示了什么:

IMediaReader reader = ToolFactory.makeReader(file.getPath());
reader.addListener(ToolFactory.makeWriter(tempFileName, reader));

while (reader.readPacket() == null)
;
Run Code Online (Sandbox Code Playgroud)

这适用于我尝试过的约50%的视频.但是,我收到一些视频的以下错误(我遇到的所有.MP4s,以及一些.MOVs)

Caused by: java.lang.RuntimeException: Error Operation not permitted, failed to write header to container com.xuggle.xuggler.IContainer@-635072136[url:/tmp/1280786368521.flv;type:WRITE;format:com.xuggle.xuggler.IContainerFormat@-631842520[oname:flv;olongname:FLV format;omimetype:video/x-flv;oextensions:flv;];] while establishing stream com.xuggle.xuggler.IStream@-615272544[index:1;id:2;streamcoder:com.xuggle.xuggler.IStreamCoder@-677475184[codec=com.xuggle.xuggler.ICodec@-635131032[type=CODEC_TYPE_AUDIO;id=CODEC_ID_MP3;name=libmp3lame;];time base=1/48000;frame rate=0/0;sample rate=48000;channels=2;];framerate:0/0;timebase:1/90000;direction:OUTBOUND;]
        at com.xuggle.mediatool.MediaWriter.getStream(MediaWriter.java:1065)
        at com.xuggle.mediatool.MediaWriter.encodeAudio(MediaWriter.java:837)
        at com.xuggle.mediatool.MediaWriter.onAudioSamples(MediaWriter.java:1448)
        at com.xuggle.mediatool.AMediaToolMixin.onAudioSamples(AMediaToolMixin.java:89)
        at com.xuggle.mediatool.MediaReader.dispatchAudioSamples(MediaReader.java:628)
        at com.xuggle.mediatool.MediaReader.decodeAudio(MediaReader.java:555)
        at com.xuggle.mediatool.MediaReader.readPacket(MediaReader.java:469)
        ... 10 more
Run Code Online (Sandbox Code Playgroud)

我很难确定错误的根本原因是否与Xuggle/ffmpeg/lame/etc有关.安装,或者我的代码是否存在问题.

我认为第一步是解密错误日志并使用该信息尝试使用本机ffmpeg调用转换视频.如果可行,我认为相信这些组件安装正确是合理的吗?

所以对于日志消息,如:

Error Operation not permitted, failed to write header to container com.xuggle.xuggler.IContainer@-635072136
[url:/tmp/1280786368521.flv;type:WRITE;format:com.xuggle.xuggler.IContainerFormat@-631842520[oname:flv;olongname:FLV format;omimetype:video/x-flv;oextensions:flv;];] 

while establishing stream com.xuggle.xuggler.IStream@-615272544
[index:1;id:2;streamcoder:com.xuggle.xuggler.IStreamCoder@-677475184[codec=com.xuggle.xuggler.ICodec@-635131032[type=CODEC_TYPE_AUDIO;id=CODEC_ID_MP3;name=libmp3lame;];time base=1/48000;frame rate=0/0;sample rate=48000;channels=2;];framerate:0/0;timebase:1/90000;direction:OUTBOUND;]
Run Code Online (Sandbox Code Playgroud)

我怎么把它翻译成ffmpeg命令?

这个Xuggle新手的任何其他调试技巧?

debugging ffmpeg lame xuggle

4
推荐指数
1
解决办法
3531
查看次数

使用Xuggler进行音频转换

我正在尝试用Java中的Xuggler将aac/wav/wma音频文件转换为mp3.

不幸的是,我的质量大大降低.我的输入文件大小约为7MB,输出文件大小仅为1.5MB.

采样率设置为44100 Hz,是否还要设置其他参数?

谢谢您的回答.

  if (args.length <= 1)
        throw new IllegalArgumentException("must pass an input filename and output filename as argument");

    IMediaWriter writer = ToolFactory.makeWriter(args[1]);

    String filename = args[0];

    // Create a Xuggler container object
    IContainer container = IContainer.make();

    // Open up the container
    if (container.open(filename, IContainer.Type.READ, null) < 0)
        throw new IllegalArgumentException("could not open file: " + filename);

    // query how many streams the call to open found
    int numStreams = container.getNumStreams();

    // and iterate through the streams to …
Run Code Online (Sandbox Code Playgroud)

java audio converter xuggle xuggler

3
推荐指数
1
解决办法
6743
查看次数

ffmpeg什么时候终止?

我正在运行ffmpeg.exeJava代码来编码视频文件.当ffmpeg终止时(即视频文件被编码),我的程序将如何知道?

这是代码:

Runtime.getRuntime().exec("ffmpeg -ac 2 -i audio.wav -i video.flv -sameq out.flv");
Run Code Online (Sandbox Code Playgroud)

java video encoding ffmpeg xuggle

3
推荐指数
1
解决办法
1198
查看次数

Java Appcrash问题

当我启动Java程序时,我收到此错误(使用带有Webcam的Xuggle-library):


问题签名:
问题事件名称:APPCRASH
应用程序名:java.exe的
应用程序版本:6.0.260.3
应用程序时间戳:4dc11607
故障模块名称:libxuggle轮渡-4.dll
故障模块版本:0.0.0.0
故障模块时间戳:4b9493c5
异常代码: 0000005
异常偏移:0000822a
OS版本:6.1.7601.2.1.0.256.48
区域设置ID:1031
其他信息1:0a9e
其他信息2:0a9e372d3b4ad19135b953a78882e789
附加信息3:0a9e
附加信息4:0a9e372d3b4ad19135b953a78882e789


我已经发现,c0000005是一种访问冲突.有没有办法解决这样的错误?或者我如何跟踪此错误(Stacktrace或其他东西,或者可能是某些工具)?Java是否为此类错误创建了日志文件.我在哪里可以找到它们?我的Java程序不会抛出任何异常.我刚刚得到这个appcrash和"Java结果:-xxxxxxx"(其中xxxxxx是一个大数字).

谢谢.

java crash stack-trace jvm-crash xuggle

2
推荐指数
1
解决办法
6034
查看次数

标签 统计

xuggle ×8

java ×7

ffmpeg ×3

xuggler ×3

video ×2

audio ×1

converter ×1

crash ×1

debugging ×1

encoding ×1

javacv ×1

jvm-crash ×1

lame ×1

mp4 ×1

stack-trace ×1