Last active
July 11, 2016 10:15
-
-
Save crayfishapps/a766f5ebbfcced39ba07fd27ba5204e2 to your computer and use it in GitHub Desktop.
Acess live video stream from Axis cameras using Xuggler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>com.crayfishapps</groupId> | |
<artifactId>Test_Xuggler</artifactId> | |
<version>1.0-SNAPSHOT</version> | |
<packaging>jar</packaging> | |
<properties> | |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
<maven.compiler.source>1.7</maven.compiler.source> | |
<maven.compiler.target>1.7</maven.compiler.target> | |
</properties> | |
<repositories> | |
<repository> | |
<id>xuggle repo</id> | |
<url>http://xuggle.googlecode.com/svn/trunk/repo/share/java/</url> | |
</repository> | |
</repositories> | |
<dependencies> | |
<dependency> | |
<groupId>xuggle</groupId> | |
<artifactId>xuggle-xuggler</artifactId> | |
<version>5.4</version> | |
</dependency> | |
</dependencies> | |
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.crayfishapps.test_xuggler; | |
import com.xuggle.mediatool.IMediaListener; | |
import com.xuggle.mediatool.IMediaReader; | |
import com.xuggle.mediatool.MediaListenerAdapter; | |
import com.xuggle.mediatool.ToolFactory; | |
import com.xuggle.mediatool.event.IVideoPictureEvent; | |
import com.xuggle.xuggler.IError; | |
import com.xuggle.xuggler.demos.VideoImage; | |
import java.awt.image.BufferedImage; | |
public class Test_Xuggler { | |
private static VideoImage mScreen = null; | |
private static IMediaListener mediaListener = new MediaListenerAdapter() { | |
@Override | |
public void onVideoPicture(IVideoPictureEvent event) { | |
try { | |
BufferedImage bi = event.getImage(); | |
if (bi != null) | |
updateJavaWindow(bi); | |
}catch(Exception ex){ | |
ex.printStackTrace(); | |
} | |
} | |
}; | |
public static void main(String[] args) { | |
IMediaReader mediaReader = ToolFactory.makeReader("rtsp://192.168.0.90/axis-media/media.amp?videocodec=h264"); | |
mediaReader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR); | |
mediaReader.setQueryMetaData(false); | |
mediaReader.addListener(mediaListener); | |
openJavaWindow(); | |
while(true){ | |
IError err = null; | |
if (mediaReader != null) { | |
err = mediaReader.readPacket(); | |
} | |
if(err != null ){ | |
System.out.println("Error: " + err); | |
break; | |
} | |
} | |
closeJavaWindow(); | |
} | |
private static void updateJavaWindow(BufferedImage javaImage) | |
{ | |
mScreen.setImage(javaImage); | |
} | |
private static void openJavaWindow() | |
{ | |
mScreen = new VideoImage(); | |
} | |
private static void closeJavaWindow() | |
{ | |
System.exit(0); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment