com.xuggle.xuggler.IContainer Java Examples
The following examples show how to use
com.xuggle.xuggler.IContainer.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HLSStreamWriter.java From red5-hls-plugin with Apache License 2.0 | 6 votes |
public void setup(final SegmentFacade facade, ISimpleMediaFile outputStreamInfo) { log.debug("setup {}", outputUrl); this.outputStreamInfo = outputStreamInfo; this.facade = facade; // output to a custom handler outputStreamInfo.setURL(outputUrl); // setup our mpeg-ts io handler MpegTsIoHandler outputHandler = new MpegTsIoHandler(outputUrl, facade); MpegTsHandlerFactory.getFactory().registerStream(outputHandler, outputStreamInfo); // create a container container = IContainer.make(); log.trace("Container buffer length: {}", container.getInputBufferLength()); // create format containerFormat = IContainerFormat.make(); containerFormat.setOutputFormat("mpegts", outputUrl, null); }
Example #2
Source File: StreamWriter.java From StormCV with Apache License 2.0 | 5 votes |
/** * Make a video writer for the given path and dimensions * @param path * @param width * @param height */ private void makeWriter(String path, int width, int height){ writer = IContainer.make(); writer.open(path, IContainer.Type.WRITE, null); ICodec videoCodec = ICodec.findEncodingCodec(codec); IStream videoStream = writer.addNewStream(videoCodec); coder = videoStream.getStreamCoder(); IRational fr = IRational.make(frameRate, 1); coder.setWidth(width); coder.setHeight(height); coder.setFrameRate(fr); coder.setTimeBase(IRational.make(fr.getDenominator(), fr.getNumerator())); coder.setNumPicturesInGroupOfPictures(frameRate); if(bitrate > 0) coder.setBitRate(bitrate); //coder.setBitRateTolerance(100000); coder.setPixelType(Type.YUV420P); //coder.setFlag(IStreamCoder.Flags.FLAG2_FAST, true); //coder.setGlobalQuality(0); if(ffmpegParams != null){ IMetaData options = IMetaData.make(); for(int i=0; i<ffmpegParams.length; i+=2){ options.setValue(ffmpegParams[i], ffmpegParams[i+1]); } coder.open(options, null); }else{ coder.open(null, null); } writer.writeHeader(); this.frameTime = 0; }
Example #3
Source File: HLSStreamWriter.java From red5-hls-plugin with Apache License 2.0 | 5 votes |
public void open() { log.debug("open {}", outputUrl); // create metadata IMetaData meta = IMetaData.make(); meta.setValue("service_provider", "Red5 HLS"); meta.setValue("title", outputUrl.substring(outputUrl.indexOf(':') + 1)); meta.setValue("map", "0"); meta.setValue("segment_time", "" + facade.getSegmentTimeLimit() / 1000); meta.setValue("segment_format", "mpegts"); //meta.setValue("reset_timestamps", "0"); // 1 or 0 IMetaData metaFail = IMetaData.make(); // open the container if (container.open(outputUrl, IContainer.Type.WRITE, containerFormat, true, false, meta, metaFail) < 0) { throw new IllegalArgumentException("Could not open: " + outputUrl); } else { if (log.isTraceEnabled()) { if (metaFail.getNumKeys() > 0) { Collection<String> keys = metaFail.getKeys(); for (String key : keys) { log.trace("Failed to set {}", key); } } } // Properties props = new Properties(); // props.setProperty("map", "0"); // //props.setProperty("segment_list type", "m3u8"); // //props.setProperty("segment_list", "E:\\dev\\server\\red5-server-1.0\\playlist.m3u8"); // //props.setProperty("segment_list_flags", "+live"); // props.setProperty("segment_time", "4"); // props.setProperty("segment_format", "mpegts"); // //props.setProperty("reset_timestamps", "0"); // 1 or 0 // int rv = Configuration.configure(props, container); // if (rv < 0) { // throw new RuntimeException("Could not configure the container for " + outputUrl + " " + getErrorMessage(rv)); // } } }
Example #4
Source File: VideoPlayerController.java From ShootOFF with GNU General Public License v3.0 | 4 votes |
private void playFromBeginning() { lastTimestamp = 0; mediaReader.open(); mediaReader.getContainer().seekKeyFrame(0, 0, 0, 0, IContainer.SEEK_FLAG_ANY); playVideo(); }
Example #5
Source File: RTMPReader.java From red5-hls-plugin with Apache License 2.0 | 4 votes |
public void init() { log.debug("Input url: {}", inputUrl); /* IContainerFormat format = IContainerFormat.make(); format.setInputFormat("flv"); IContainer container = IContainer.make(format); container.setReadRetryCount(0); container.setInputBufferLength(0); container.setProperty("strict", "experimental"); container.setProperty("analyzeduration", 0); // int = specify how many microseconds are analyzed to probe the input (from 0 to INT_MAX) if (container.open(inputUrl, IContainer.Type.READ, null, false, false) < 0) { throw new RuntimeException("Unable to open read container"); } reader = ToolFactory.makeReader(container); */ // url only reader = ToolFactory.makeReader(inputUrl); reader.setCloseOnEofOnly(false); reader.setQueryMetaData(true); reader.setAddDynamicStreams(false); // get the container IContainer container = reader.getContainer(); container.setReadRetryCount(0); container.setInputBufferLength(0); container.setProperty("analyzeduration", 0); // int = specify how many microseconds are analyzed to probe the input (from 0 to INT_MAX) // container.setProperty("probesize", 1024); // int = set probing size in bytes (from 32 to INT_MAX) // container.setProperty("fpsprobesize", 4); // int = number of frames used to probe // container.setPreload(1); // IContainerFormat format = container.getContainerFormat(); // format.setInputFormat("flv"); // container.setFormat(format); if (videoEnabled) { // have the reader create a buffered image that others can reuse //reader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR); } else { reader.setBufferedImageTypeToGenerate(-1); } //add this as the first listener reader.addListener(this); }