I have used xuggle library
in my project to trans code the video from mp4 to flv
.
I have used slf4j libraries
also to support logging end.
import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.mediatool.ToolFactory;
public class TranscodingExample {
private static final String inputFilename = "E:\\VIDEO\\Facebook.mp4";
private static final String outputFilename = "E:\\VIDEO\\Facebook.flv";
public static void main(String[] args) {
// create a media reader
IMediaReader mediaReader =
ToolFactory.makeReader(inputFilename);
// create a media writer
IMediaWriter mediaWriter =
ToolFactory.makeWriter(outputFilename, mediaReader);
// add a writer to the reader, to create the output file
mediaReader.addListener(mediaWriter);
// create a media viewer with stats enabled
IMediaViewer mediaViewer = ToolFactory.makeViewer(true);
// add a viewer to the reader, to see the decoded media
mediaReader.addListener(mediaViewer);
// read and decode packets from the source file and
// and dispatch decoded audio and video to the writer
while (mediaReader.readPacket() == null) ;
}
}
Here I am getting an error
"Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError.".
I have used both jar files as libraries in order to solve logging problems. Does any one faced the same problem.If so kindly write suggestion or solution to come out of this mess. Thanks in advance.
For gradle
compile('org.xxx:xxx:1.0-SNAPSHOT'){
exclude module: 'log4j'
exclude module: 'slf4j-log4j12'
}
You asked if it is possible to change the circular dependency checking in those slf4j classes.
The simple answer is no.
static
initializer block ... so you can't override the implementation, and you can't stop it happening.So the only way to change this would be to download the source code, modify the core classes to "fix" them, build and use them. That is probably a bad idea (in general) and probably not solution in this case; i.e. you risk triggering the stack overflow problem that the message warns about.
Reference:
The real solution (as you identified in your Answer) is to use the right JARs. My understanding is that the circularity that was detected is real and potentially problematic ... and unnecessary.
I got the solution
download Xuggler 5.4 here
and some more jar to make it work...
commons-cli-1.1.jar
commons-lang-2.1.jar
logback-classic-1.0.0.jar
logback-core-1.0.0.jar
slf4j-api-1.6.4.jar
You can check which dependencies xuggler needs from here:
Add this jars and xuggle-xuggler-5.4.jar to your project's build path and it s ready.
**version numbers may change
Encountered a similar error, this how I resolved it:
Access Project explorer view on Netbeans IDE 8.2. Proceed to your project under Dependencies hover the cursor over the log4j-over-slf4j.jar to view the which which dependencies have indirectly imported as shown below.
Right click an import jar file and select Exclude Dependency
4. Initiate maven clean install and run your project. Good luck!
SBT solution stated above did not work for me. What worked for me is excluding slf4j-log4j12
//dependencies with exclusions_x000D_
libraryDependencies ++= Seq(_x000D_
//depencies_x000D_
).map(_.exclude("org.slf4j","slf4j-log4j12"))
_x000D_
And for SBT : excludeDependencies += "log4j" % "log4j"
Source: Stackoverflow.com