Last active
January 17, 2020 08:19
-
-
Save sarxos/03b1196b5d845687d5ba to your computer and use it in GitHub Desktop.
Xuggler RTSP Source Code
This file contains hidden or 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
| import com.xuggle.mediatool.IMediaListener; | |
| import com.xuggle.mediatool.IMediaReader; | |
| import com.xuggle.mediatool.IMediaWriter; | |
| 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; | |
| /** | |
| * Small test on the Xuggler library as we try and get the cameras | |
| * streaming video that we can access through java. | |
| * @author Ryan | |
| * @see http://workingwithcomputervision.blogspot.com/2012/11/xuggler-rtsp-source-code.html | |
| */ | |
| public class XugglerVideoTest { | |
| 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(); | |
| } | |
| } | |
| }; | |
| /** | |
| * @param args | |
| */ | |
| public static void main(String[] args) { | |
| IMediaReader mediaReader = ToolFactory.makeReader("rtsp://username:[email protected]/ch1-s1"); | |
| // IMediaReader mediaReader = ToolFactory.makeReader("cucina01.avi"); //file | |
| mediaReader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR); | |
| // mediaReader.setAddDynamicStreams(false); | |
| mediaReader.setQueryMetaData(false); | |
| mediaReader.addListener(mediaListener); | |
| // mediaReader.getContainer().setInputBufferLength(64000000); | |
| // mediaReader.getContainer().setProperty("probesize", 500000); | |
| // IMediaWriter mediaWriter = ToolFactory.makeWriter("receivedData.mp4", mediaReader); | |
| // mediaReader.addListener(mediaWriter); | |
| openJavaWindow(); | |
| while(true){ | |
| // System.out.println("reading packet"); | |
| IError err = null; | |
| if (mediaReader != null) | |
| err = mediaReader.readPacket(); | |
| // System.out.println("end packet"); | |
| if(err != null ){ | |
| System.out.println("Error: " + err); | |
| break; | |
| } | |
| } | |
| closeJavaWindow(); | |
| } | |
| private static void updateJavaWindow(BufferedImage javaImage) | |
| { | |
| mScreen.setImage(javaImage); | |
| } | |
| /** | |
| * Opens a Swing window on screen. | |
| */ | |
| private static void openJavaWindow() | |
| { | |
| mScreen = new VideoImage(); | |
| } | |
| /** | |
| * Forces the swing thread to terminate; I'm sure there is a right | |
| * way to do this in swing, but this works too. | |
| */ | |
| private static void closeJavaWindow() | |
| { | |
| System.exit(0); | |
| } | |
| } |
Can u help me for following error
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.RuntimeException: error Operation not permitted decoding video
at com.xuggle.mediatool.MediaReader.decodeVideo(MediaReader.java:513)
at com.xuggle.mediatool.MediaReader.readPacket(MediaReader.java:475)
at xuggler.XugglerVideoTest.main(XugglerVideoTest.java:55)
Thanks,
Its working
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thanks for this
you are god