Monday, June 11, 2012

Java: Using VLC to play & record video data from webcam



1. Links

25 things you can do with VLC Media player!
http://www.unixmen.com/22-things-you-can-do-with-vlc/

http://gofree.com/Tutorials/VLCVideoWebcam.php
http://newcome.wordpress.com/2010/01/17/recording-webcam-videos-with-vlc-media-player/
Codec code
http://wiki.videolan.org/Codec

Sometimes Asked Questions
http://code.google.com/p/vlcj/wiki/SAQ

Chapter 3.  Advanced streaming using the command line
http://www.videolan.org/doc/streaming-howto/en/ch03.html

Play video in Java
http://www.informit.com/guides/content.aspx?g=java&seqNum=658

Sample java code
http://code.google.com/p/vlcj/source/browse/trunk/vlcj/src/test/java/uk/co/caprica/vlcj/test/basic

Sample using Theora encorder:
http://en.flossmanuals.net/ogg-theora/encoding/vlc/

                    .append("vcodec=theo,")
                    .append("mux=ps,"), //or ogg


2. Source

    private String buildTranscodeParams(){
        StringBuilder chain = new StringBuilder()
                .append("transcode{")
                    .append("vcodec=WMV2,")
                    .append("vb=").append(getBitrate()).append(",")
                    .append("fps=").append(getFramerate()).append(",")
                    .append("scale=1");
                    if(width > 0 && height > 0)
                        chain.append(",")
                             .append("width=").append(width).append(",")
                             .append("height=").append(height);
                chain.append("acodec=wma2,")
                .append("ab=128,")
                .append("channels=2");
                chain.append("}")
                .append(":standard{")
                    .append("access=file,")
                    .append("mux=asf,")
                    .append("dst=").append(getDestination()).append("}");
          return chain.toString();
    }




Wednesday, June 6, 2012

Java: Create tab in Property



1. Links
http://platform.netbeans.org/tutorials/nbm-nodesapi2.html#separate-property-groups


2. Example

public class ValueNode extends AbstractNode implements PropertyChangeListener, NodeListener {
...

    @Override
    protected Sheet createSheet() {
        Sheet sheet = super.createSheet();
        monitor = new Sheet.Set();
        monitor.setDisplayName("Monitor");
        monitor.setName("Monitor");
        sheet.put(monitor);

        control = new Sheet.Set();
        control.setDisplayName("Control");
        control.setName("Control");
        sheet.put(control);

        gui = new Sheet.Set();
        gui.setDisplayName("User interface settings");
        gui.setName("User interface");
        sheet.put(gui);

        signalFailure = new Sheet.Set();
        signalFailure.setDisplayName("Signal Failure");
        signalFailure.setName("SignalFailure");
//        sheet.put(signalFailure);

        if (ioSignal != null) { // IO signal {
            ioSignalScaling = new Sheet.Set();
            ioSignalScaling.setDisplayName("Scaling");
            ioSignalScaling.setName("Scaling");
            Properties.IOSignal(value, monitor, control, gui, signalFailure, ioSignalScaling, ioSignal);
            ioSignalScaling.setValue("tabName", "Scaling properties");
            sheet.put(ioSignalScaling);
            signalFailure.setValue("tabName", "Signal Failure properties");
            sheet.put(signalFailure);
        }else{
            if (value.getType().equals(Value.Type.SIGNAL)) {
                Properties.signal(value, monitor, control, gui, signalFailure);
            } else if (value.getType().equals(Value.Type.PARAMETER)) {
                Properties.parameter(value, monitor, control, gui, signalFailure);
            }
        }
      
        return sheet;
    }

...
}