Webcam und Java

Habt ihr die "JMF" Java-Media-Framework

  • ja

    Stimmen: 4 20,0%
  • nein

    Stimmen: 16 80,0%

  • Anzahl der Umfrageteilnehmer
    20
Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi,
ich hab schon öfters danach gegoogled,
und auch hier in diesem Forum einen Artikel dazu gefunden
http://www.java-forum.org/allgemeine-java-themen/78607-kamera-bild-echtzeit-auswerten.html

Man braucht:
-eine Webcam
-eine JMF Library
- und natürlich java
ich habe auch schon einen Quellcode zum starten der VideoAufnahmen gefunden, doch allerdings
habe ich diese nicht für Windows Vista gefunden, kann mir einer mal mit einem Code der für Vista geeignet ist klar machen wie man mit der Webcam dinge aufnehmen kann
 

Developer_X

Top Contributor
also hier ist der Code
David Fischer's Java Programming Examples: Capture Video from Logitech QuickCam Pro 3000 USB Camera with JMF
und hier die Fehlerausgabe
Code:
get list of all media devices ...
>>> capture audio device = DirectSoundCapture
>>> capture audio format = linear, 16000.0 hz, 8-bit, mono, unsigned
... list completed.
Exception in thread "main" java.lang.NullPointerException
	at Webcam.TestQuickCamPro.main(TestQuickCamPro.java:142)
Was in meinem COde diese Zeile ist:
Code:
		MediaLocator videoMediaLocator = captureVideoDevice.getLocator();
 

diggaa1984

Top Contributor
[HIGHLIGHT="Java"]
// serach for default video device
if (captureVideoDevice == null)
if (deviceFormat[y] instanceof VideoFormat)
if (deviceInfo.getName().indexOf(defaultVideoDeviceName) >= 0)
{
captureVideoDevice = deviceInfo;
Stdout.log(">>> capture video device = " + deviceInfo.getName());
}

// search for default video format
if (captureVideoDevice == deviceInfo)
if (captureVideoFormat == null)
if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultVideoFormatString) >= 0)
{
captureVideoFormat = (VideoFormat) deviceFormat[y];
Stdout.log(">>> capture video format = " + DeviceInfo.formatToString(deviceFormat[y]));
}[/HIGHLIGHT]

da diese ausgaben nicht erscheinen, wird wohl was passieren!?
man beachte die kommentare und klassendeklarationen

wie man das löst is ne andere Frage, aber fehler finden damit abgeschlossen, was keine minute gedauert hat !!

with some small modifications, this program will work with any USB camera.
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
äußere doch mal ne vermutung nachdem du meinen (wenn auch spärtlichen) hinweisen nachgegangen bist, sonst seh ich bald ne analogie zum Applet-thread ;)
 

Developer_X

Top Contributor
ja, der findet meine WEbcam höchstwahrscheinlich net
weil oben im String steht ja der Name der webcam
vielleicht findet er die net
 

diggaa1984

Top Contributor
jut, dann lass dir doch einfach mal alle gefundenen devices ausgeben, wenn deine Webcam drin is, String kopieren oben als default einfügen und beten

EDIT: eventuell muss man hier auch noch anpassen, aber da dürfest vielleicht nur über spezifikation des Web-Cam-Herstellers rankommen (oder sind die angaben universal .. würde ich aber vorerst mal nich von ausgehen)
defaultVideoFormatString = "size=176x144, encoding=yuv, maxdatalength=38016";
 
Zuletzt bearbeitet:

Developer_X

Top Contributor
da haben wir ein Problem, ich verstehs irgendwie nicht wie
ich hab mal rot markiert wie ich mir vorstelle das ich das ausgeben soll
Code:
import java.io.*;
import javax.media.*;
import javax.media.format.*;
import javax.media.protocol.*;


public class TestQuickCamPro
{

	private static boolean				debugDeviceList = false;

	private static String				defaultVideoDeviceName = "Logitech USB Video Camera";
	private static String				defaultAudioDeviceName = "DirectSoundCapture";
	private static String				defaultVideoFormatString = "size=176x144, encoding=yuv, maxdatalength=38016";
	private static String				defaultAudioFormatString = "linear, 16000.0 hz, 8-bit, mono, unsigned";

	private static CaptureDeviceInfo	captureVideoDevice = null;
	private static CaptureDeviceInfo	captureAudioDevice = null;
	private static VideoFormat			captureVideoFormat = null;
	private static AudioFormat			captureAudioFormat = null;


	public static void main(String args[])
	{
		// get command line arguments
		for (int x = 0; x < args.length; x++)
		{
			// -dd = debug devices list -> display list of all media devices - and exit
			if (args[x].toLowerCase().compareTo("-dd") == 0)
				debugDeviceList = true;
		}
[highlight]
		// get a list of all media devices, search default devices and formats, and print it out if args[x] = "-dd"
		// --------------------------------------------------------------------------------------------------------
[/highlight]
		Stdout.log("get list of all media devices ...");
		[highlight] java.util.Vector deviceListVector = CaptureDeviceManager.getDeviceList(null);[/highlight]
		if (deviceListVector == null)
		{
			Stdout.log("... error: media device list vector is null, program aborted");
			System.exit(0);
		}
		if (deviceListVector.size() == 0)
		{
			Stdout.log("... error: media device list vector size is 0, program aborted");
			System.exit(0);
		}

		for (int x = 0; x < deviceListVector.size(); x++)
		{
			// display device name
			CaptureDeviceInfo deviceInfo = (CaptureDeviceInfo) deviceListVector.elementAt(x);
			String deviceInfoText = deviceInfo.getName();
			if (debugDeviceList)
				Stdout.log("device " + x + ": " + deviceInfoText);

			// display device formats
			Format deviceFormat[] = deviceInfo.getFormats();
			for (int y = 0; y < deviceFormat.length; y++)
			{
				// serach for default video device
				if (captureVideoDevice == null)
					if (deviceFormat[y] instanceof VideoFormat)
					if (deviceInfo.getName().indexOf(defaultVideoDeviceName) >= 0)
				{
					captureVideoDevice = deviceInfo;
					Stdout.log(">>> capture video device = " + deviceInfo.getName());
				}

				// search for default video format
				if (captureVideoDevice == deviceInfo)
					if (captureVideoFormat == null)
					if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultVideoFormatString) >= 0)
				{
					captureVideoFormat = (VideoFormat) deviceFormat[y];
					Stdout.log(">>> capture video format = " + DeviceInfo.formatToString(deviceFormat[y]));
				}

				// serach for default audio device
				if (captureAudioDevice == null)
					if (deviceFormat[y] instanceof AudioFormat)
					if (deviceInfo.getName().indexOf(defaultAudioDeviceName) >= 0)
				{
					captureAudioDevice = deviceInfo;
					Stdout.log(">>> capture audio device = " + deviceInfo.getName());
				}

				// search for default audio format
				if (captureAudioDevice == deviceInfo)
					if (captureAudioFormat == null)
					if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultAudioFormatString) >= 0)
				{
					captureAudioFormat = (AudioFormat) deviceFormat[y];
					Stdout.log(">>> capture audio format = " + DeviceInfo.formatToString(deviceFormat[y]));
				}

				if (debugDeviceList)
					Stdout.log(" - format: " +  DeviceInfo.formatToString(deviceFormat[y]));
			}
		}
		Stdout.log("... list completed.");
		[highlight]System.out.println(deviceListVector);[/highlight]

		// if args[x] = "-dd" terminate now
		// --------------------------------
		if (debugDeviceList)
			System.exit(0);


		// setup video data source
		// -----------------------
		MediaLocator videoMediaLocator = captureVideoDevice.getLocator();
		DataSource videoDataSource = null;
		try
		{
			videoDataSource = javax.media.Manager.createDataSource(videoMediaLocator);
		}
		catch (IOException ie) { Stdout.logAndAbortException(ie); }
		catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }

		if (! DeviceInfo.setFormat(videoDataSource, captureVideoFormat))
		{
			Stdout.log("Error: unable to set video format - program aborted");
			System.exit(0);
		}


		// setup audio data source
		// -----------------------
		MediaLocator audioMediaLocator = captureAudioDevice.getLocator();
		DataSource audioDataSource = null;
		try
		{
			audioDataSource = javax.media.Manager.createDataSource(audioMediaLocator);
		}
		catch (IOException ie) { Stdout.logAndAbortException(ie); }
		catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }

		if (! DeviceInfo.setFormat(audioDataSource, captureAudioFormat))
		{
			Stdout.log("Error: unable to set audio format - program aborted");
			System.exit(0);
		}


		// merge the two data sources
		// --------------------------
		DataSource mixedDataSource = null;
		try
		{
			DataSource dArray[] = new DataSource[2];
			dArray[0] = videoDataSource;
			dArray[1] = audioDataSource;
			mixedDataSource = javax.media.Manager.createMergingDataSource(dArray);
		}
		catch (IncompatibleSourceException ise) { Stdout.logAndAbortException(ise); }


		// create a new processor
		// ----------------------

		// setup output file format  ->> msvideo
		FileTypeDescriptor outputType = new FileTypeDescriptor(FileTypeDescriptor.MSVIDEO);

		// setup output video and audio data format
		Format outputFormat[] = new Format[2];
		outputFormat[0] = new VideoFormat(VideoFormat.INDEO50);
		outputFormat[1] = new AudioFormat(AudioFormat.GSM_MS /* LINEAR */);

		// create processor
		ProcessorModel processorModel = new ProcessorModel(mixedDataSource, outputFormat, outputType);
		Processor processor = null;
		try
		{
			processor = Manager.createRealizedProcessor(processorModel);
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		catch (NoProcessorException e) { Stdout.logAndAbortException(e); }
		catch (CannotRealizeException e) { Stdout.logAndAbortException(e); }

		// get the output of the processor
		DataSource source = processor.getDataOutput();

		// create a File protocol MediaLocator with the location
		// of the file to which bits are to be written
		MediaLocator dest = new MediaLocator("file:testcam.avi");

		// create a datasink to do the file
		DataSink dataSink = null;
		MyDataSinkListener dataSinkListener = null;
		try
		{
			dataSink = Manager.createDataSink(source, dest);
			dataSinkListener = new MyDataSinkListener();
			dataSink.addDataSinkListener(dataSinkListener);
			dataSink.open();
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		catch (NoDataSinkException e) { Stdout.logAndAbortException(e); }
		catch (SecurityException e) { Stdout.logAndAbortException(e); }

		// now start the datasink and processor
		try
		{
			dataSink.start();
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		processor.start();

		Stdout.log("starting capturing ...");
		try { Thread.currentThread().sleep(10000); } catch (InterruptedException ie) {}	// capture for 10 seconds
		Stdout.log("... capturing done");

		// stop and close the processor when done capturing...
		// close the datasink when EndOfStream event is received...
		processor.stop();
		processor.close();

		dataSinkListener.waitEndOfStream(10);
		dataSink.close();

		Stdout.log("[all done]");
	}

}
@Edit
Ist es so richtig, hast du das gemeint?
 

Developer_X

Top Contributor
meine Ausgabe ist nun:
Code:
get list of all media devices ...
>>> capture audio device = DirectSoundCapture
>>> capture audio format = linear, 16000.0 hz, 8-bit, mono, unsigned
... list completed.
[DirectSoundCapture : dsound://
LINEAR, 48000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 48000.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 48000.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 48000.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 44100.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 44100.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 44100.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 32000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 32000.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 32000.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 32000.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 22050.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 22050.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 22050.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 16000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 16000.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 16000.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 16000.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 11025.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 11025.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 11025.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 11025.0 Hz, 8-bit, Mono, Unsigned
LINEAR, 8000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 8000.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 8000.0 Hz, 8-bit, Stereo, Unsigned
LINEAR, 8000.0 Hz, 8-bit, Mono, Unsigned
, JavaSound audio capture : javasound://44100
LINEAR, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 44100.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 22050.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 11025.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 11025.0 Hz, 16-bit, Mono, LittleEndian, Signed
LINEAR, 8000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
LINEAR, 8000.0 Hz, 16-bit, Mono, LittleEndian, Signed
]
Exception in thread "main" java.lang.NullPointerException
	at Webcam.TestQuickCamPro.main(TestQuickCamPro.java:115)
 

diggaa1984

Top Contributor
ohne zu wissen ob das n besseren nährwert hat :D gib mal das deviceFormat-array aus:
[HIGHLIGHT="Java"]
// display device formats
Format deviceFormat[] = deviceInfo.getFormats();
for (int y = 0; y < deviceFormat.length; y++) {
System.out.println("______"+deviceFormat[y]);
< if abfragen >
}
Stdout.log("... list completed.");
[/HIGHLIGHT]

wobei ich ma vermute das in deiner liste schon etwas web-cam / video-device-mäßiges häte auftauchen müssen
 

ice-breaker

Top Contributor
gabs bei JMF nicht noch nen Extra Tool dabei "JMF Studio", "JMF Registry" oder sowas wo alle Grafikgeräte gelistet waren und man es da schon ausprobieren konnte ?

Aber irgendwie hat das JMF immer mehr Probleme bereitet, als es gelöst hat :D
 

Developer_X

Top Contributor
Fehlermeldung
Code:
get list of all media devices ...
>>> capture audio device = DirectSoundCapture
>>> capture audio format = linear, 16000.0 hz, 8-bit, mono, unsigned
[Ljavax.media.format.AudioFormat;@15eb0a9
[Ljavax.media.Format;@1a05308
... list completed.
Exception in thread "main" java.lang.NullPointerException
	at Webcam.TestQuickCamPro.main(TestQuickCamPro.java:115)
Code
Code:
import java.io.*;
import javax.media.*;
import javax.media.format.*;
import javax.media.protocol.*;


public class TestQuickCamPro
{

	private static boolean				debugDeviceList = false;

	private static String				defaultVideoDeviceName = "Logitech USB Video Camera";
	private static String				defaultAudioDeviceName = "DirectSoundCapture";
	private static String				defaultVideoFormatString = "size=176x144, encoding=yuv, maxdatalength=38016";
	private static String				defaultAudioFormatString = "linear, 16000.0 hz, 8-bit, mono, unsigned";

	private static CaptureDeviceInfo	captureVideoDevice = null;
	private static CaptureDeviceInfo	captureAudioDevice = null;
	private static VideoFormat			captureVideoFormat = null;
	private static AudioFormat			captureAudioFormat = null;


	public static void main(String args[])
	{
		// get command line arguments
		for (int x = 0; x < args.length; x++)
		{
			// -dd = debug devices list -> display list of all media devices - and exit
			if (args[x].toLowerCase().compareTo("-dd") == 0)
				debugDeviceList = true;
		}

		// get a list of all media devices, search default devices and formats, and print it out if args[x] = "-dd"
		// --------------------------------------------------------------------------------------------------------

		Stdout.log("get list of all media devices ...");
		java.util.Vector deviceListVector = CaptureDeviceManager.getDeviceList(null);
		if (deviceListVector == null)
		{
			Stdout.log("... error: media device list vector is null, program aborted");
			System.exit(0);
		}
		if (deviceListVector.size() == 0)
		{
			Stdout.log("... error: media device list vector size is 0, program aborted");
			System.exit(0);
		}

		for (int x = 0; x < deviceListVector.size(); x++)
		{
			// display device name
			CaptureDeviceInfo deviceInfo = (CaptureDeviceInfo) deviceListVector.elementAt(x);
			String deviceInfoText = deviceInfo.getName();
			if (debugDeviceList)
				Stdout.log("device " + x + ": " + deviceInfoText);

			// display device formats
			Format deviceFormat[] = deviceInfo.getFormats();
			for (int y = 0; y < deviceFormat.length; y++)
			{
				// serach for default video device
				if (captureVideoDevice == null)
					if (deviceFormat[y] instanceof VideoFormat)
					if (deviceInfo.getName().indexOf(defaultVideoDeviceName) >= 0)
				{
					captureVideoDevice = deviceInfo;
					Stdout.log(">>> capture video device = " + deviceInfo.getName());
				}

				// search for default video format
				if (captureVideoDevice == deviceInfo)
					if (captureVideoFormat == null)
					if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultVideoFormatString) >= 0)
				{
					captureVideoFormat = (VideoFormat) deviceFormat[y];
					Stdout.log(">>> capture video format = " + DeviceInfo.formatToString(deviceFormat[y]));
				}

				// serach for default audio device
				if (captureAudioDevice == null)
					if (deviceFormat[y] instanceof AudioFormat)
					if (deviceInfo.getName().indexOf(defaultAudioDeviceName) >= 0)
				{
					captureAudioDevice = deviceInfo;
					Stdout.log(">>> capture audio device = " + deviceInfo.getName());
				}

				// search for default audio format
				if (captureAudioDevice == deviceInfo)
					if (captureAudioFormat == null)
					if (DeviceInfo.formatToString(deviceFormat[y]).indexOf(defaultAudioFormatString) >= 0)
				{
					captureAudioFormat = (AudioFormat) deviceFormat[y];
					Stdout.log(">>> capture audio format = " + DeviceInfo.formatToString(deviceFormat[y]));
				}

				if (debugDeviceList)
					Stdout.log(" - format: " +  DeviceInfo.formatToString(deviceFormat[y]));
			}
			[highlight]System.out.println(deviceFormat);[/highlight]
		}
		Stdout.log("... list completed.");

		// if args[x] = "-dd" terminate now
		// --------------------------------

		if (debugDeviceList)
			System.exit(0);


		// setup video data source
		// -----------------------
		MediaLocator videoMediaLocator = captureVideoDevice.getLocator();
		DataSource videoDataSource = null;
		try
		{
			videoDataSource = javax.media.Manager.createDataSource(videoMediaLocator);
		}
		catch (IOException ie) { Stdout.logAndAbortException(ie); }
		catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }

		if (! DeviceInfo.setFormat(videoDataSource, captureVideoFormat))
		{
			Stdout.log("Error: unable to set video format - program aborted");
			System.exit(0);
		}


		// setup audio data source
		// -----------------------
		MediaLocator audioMediaLocator = captureAudioDevice.getLocator();
		DataSource audioDataSource = null;
		try
		{
			audioDataSource = javax.media.Manager.createDataSource(audioMediaLocator);
		}
		catch (IOException ie) { Stdout.logAndAbortException(ie); }
		catch (NoDataSourceException nse) { Stdout.logAndAbortException(nse); }

		if (! DeviceInfo.setFormat(audioDataSource, captureAudioFormat))
		{
			Stdout.log("Error: unable to set audio format - program aborted");
			System.exit(0);
		}


		// merge the two data sources
		// --------------------------
		DataSource mixedDataSource = null;
		try
		{
			DataSource dArray[] = new DataSource[2];
			dArray[0] = videoDataSource;
			dArray[1] = audioDataSource;
			mixedDataSource = javax.media.Manager.createMergingDataSource(dArray);
		}
		catch (IncompatibleSourceException ise) { Stdout.logAndAbortException(ise); }


		// create a new processor
		// ----------------------

		// setup output file format  ->> msvideo
		FileTypeDescriptor outputType = new FileTypeDescriptor(FileTypeDescriptor.MSVIDEO);

		// setup output video and audio data format
		Format outputFormat[] = new Format[2];
		outputFormat[0] = new VideoFormat(VideoFormat.INDEO50);
		outputFormat[1] = new AudioFormat(AudioFormat.GSM_MS /* LINEAR */);

		// create processor
		ProcessorModel processorModel = new ProcessorModel(mixedDataSource, outputFormat, outputType);
		Processor processor = null;
		try
		{
			processor = Manager.createRealizedProcessor(processorModel);
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		catch (NoProcessorException e) { Stdout.logAndAbortException(e); }
		catch (CannotRealizeException e) { Stdout.logAndAbortException(e); }

		// get the output of the processor
		DataSource source = processor.getDataOutput();

		// create a File protocol MediaLocator with the location
		// of the file to which bits are to be written
		MediaLocator dest = new MediaLocator("file:testcam.avi");

		// create a datasink to do the file
		DataSink dataSink = null;
		MyDataSinkListener dataSinkListener = null;
		try
		{
			dataSink = Manager.createDataSink(source, dest);
			dataSinkListener = new MyDataSinkListener();
			dataSink.addDataSinkListener(dataSinkListener);
			dataSink.open();
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		catch (NoDataSinkException e) { Stdout.logAndAbortException(e); }
		catch (SecurityException e) { Stdout.logAndAbortException(e); }

		// now start the datasink and processor
		try
		{
			dataSink.start();
		}
		catch (IOException e) { Stdout.logAndAbortException(e); }
		processor.start();

		Stdout.log("starting capturing ...");
		try { Thread.currentThread().sleep(10000); } catch (InterruptedException ie) {}	// capture for 10 seconds
		Stdout.log("... capturing done");

		// stop and close the processor when done capturing...
		// close the datasink when EndOfStream event is received...
		processor.stop();
		processor.close();

		dataSinkListener.waitEndOfStream(10);
		dataSink.close();

		Stdout.log("[all done]");
	}

}

Wie wärs wenn mir einfach mal einer von euch einen ganz einfachen Quellcode gebt zum anzeigen der WEbcam?

muss man eigentlich angeben, wo sich die Webcam befindet?
oder sucht der die Festplatte allein durch bis er sie gefunden hat?
 
Zuletzt bearbeitet von einem Moderator:

diggaa1984

Top Contributor
hm war wohl n blöder vorschlag meinerseits :D
start ma so, vielleicht siehst da mehr:
java TestQuickCamPro -dd

(stand auf der HP die du gelinkt hast, hättst auch finden können ;))
 

Noctarius

Top Contributor
muss man eigentlich angeben, wo sich die Webcam befindet?
oder sucht der die Festplatte allein durch bis er sie gefunden hat?

WTF? Oo

Edit - Noch ein Tipp: Bevor du mit nem Java Buch anfängst werd dir über Grundlagen der PC Technik im klaren. Auch dazu gibt es tolle Bücher. Besonders interessant sind Themen wie: "Wie steuert ein Computer seine Peripherie an" (hab ich gehört ;))
 

Ark

Top Contributor
Hey, Developer_X, hast du überhaupt schon einmal irgendein Stück Code von über 100 Zeilen selbst geschrieben?

Ark
 

Developer_X

Top Contributor
so wie ihr hier sehen könnt funktionierts eigentlich,
aber der zeigt das bild irgendwie nicht an?
Wenigstens gibts keine FehlerException
Code:
ECHO ist eingeschaltet (ON).

F:\Java.Examples\webcam>set PATH=C:\Programme\Java\jdk1.6.0_11\bin;

F:\Java.Examples\webcam>javac TestQuickCamPro.java

F:\Java.Examples\webcam>java TestQuickCamPro -dd
get list of all media devices ...
device 0: DirectSoundCapture
>>> capture audio device = DirectSoundCapture
 - format: linear, 48000.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 48000.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 48000.0 hz, 8-bit, stereo, unsigned
 - format: linear, 48000.0 hz, 8-bit, mono, unsigned
 - format: linear, 44100.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 44100.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 44100.0 hz, 8-bit, stereo, unsigned
 - format: linear, 44100.0 hz, 8-bit, mono, unsigned
 - format: linear, 32000.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 32000.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 32000.0 hz, 8-bit, stereo, unsigned
 - format: linear, 32000.0 hz, 8-bit, mono, unsigned
 - format: linear, 22050.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 22050.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 22050.0 hz, 8-bit, stereo, unsigned
 - format: linear, 22050.0 hz, 8-bit, mono, unsigned
 - format: linear, 16000.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 16000.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 16000.0 hz, 8-bit, stereo, unsigned
>>> capture audio format = linear, 16000.0 hz, 8-bit, mono, unsigned
 - format: linear, 16000.0 hz, 8-bit, mono, unsigned
 - format: linear, 11025.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 11025.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 11025.0 hz, 8-bit, stereo, unsigned
 - format: linear, 11025.0 hz, 8-bit, mono, unsigned
 - format: linear, 8000.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 8000.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 8000.0 hz, 8-bit, stereo, unsigned
 - format: linear, 8000.0 hz, 8-bit, mono, unsigned
device 1: JavaSound audio capture
 - format: linear, 44100.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 44100.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 22050.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 22050.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 11025.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 11025.0 hz, 16-bit, mono, littleendian, signed
 - format: linear, 8000.0 hz, 16-bit, stereo, littleendian, signed
 - format: linear, 8000.0 hz, 16-bit, mono, littleendian, signed
... list completed.

F:\Java.Examples\webcam>pause
Drücken Sie eine beliebige Taste . . .
 

Noctarius

Top Contributor
Was ich eher meinte:

Definiere FehlerException!

Ich kenne Fehler => Error
und ich kenne Ausnahmen => Exception
 

diggaa1984

Top Contributor
naja was ich sehe is haufen sound-kram, was fehlt is ne auflistung von Video-Devices .. solange da nix erscheint siehts dunkel aus, ganz dunkel

aber woran das liegt keine ahnung, da musst dann wohl mal die homepage die du gelinkt hast durchforsten. (bin raus, kümmer mich wieder um meine kontextfreien Grammatiken) :)
 

Developer_X

Top Contributor
aso
Code:
keine "allfinished" nachricht system.out.printlned
keine video device dinge gefunden
nur audia device dinge gefunden
kein video nur audio gefunden
Ich glaub das liegt an meiner Webcam, aber das muss man doch mit jeder machen können oder?
 

Developer_X

Top Contributor
mal im Ernst, irgendjemand von euch wird doch wohl wissen, wie man mit Java einen Webcam Foto schuss macht oder?
Und das mit meiner Webcam oder?
 

Wildcard

Top Contributor
WTF? Oo

Edit - Noch ein Tipp: Bevor du mit nem Java Buch anfängst werd dir über Grundlagen der PC Technik im klaren. Auch dazu gibt es tolle Bücher. Besonders interessant sind Themen wie: "Wie steuert ein Computer seine Peripherie an" (hab ich gehört ;))
With few exceptions, all devices and some types of communications between processes are managed and visible as files or pseudo-files within the file system hierarchy. This is known as everything's a file.
Unix architecture - Wikipedia, the free encyclopedia

;)
 

Noctarius

Top Contributor
Danke wildcard, geb ihm auch noch Recht :)
Aber hey irgendwie glaube ich spontan (wie kommt das wohl) nicht, dass er mit Linux arbeitet - Ergo: Not everything's a file ^^
 

diggaa1984

Top Contributor
mal im Ernst, irgendjemand von euch wird doch wohl wissen, wie man mit Java einen Webcam Foto schuss macht oder?
Und das mit meiner Webcam oder?

ich sags nich gern, aber das driftet schon wieder in die falsche richtung, und wir sind leider auch nicht allwissend .. ich hab damit zB noch nix gemacht!!

hast denn schonmal die komplette Homepage gelesen versucht was da erwähnt wird (Configuration Hint)?
 

diggaa1984

Top Contributor
und was sagt JMF Registry Editor bei dir?

edit: oder es is total vergebens, wenn man dem hier Glauben schenken mag
Q: What platforms does JMF 2.1.1 run on?

JMF 2.1.1 will run on Windows 95/98/NT 4.0/2000, Solaris/SPARC, and any Java Compatible platforms. The pure Java version of JMF 2.1.1 will now run on Apple's MRJ 2.1.4; however there are a/v syncronization problems since Apple added a 6 second audio buffer to that MRJ.
oder is Vista nich java-kompatibel :D
 
Zuletzt bearbeitet:

hdi

Top Contributor
Hey Developer, ich glaub deine Webcam funzt doch.
Zumindest hab ich ein Bild von deinem Schreibtisch im Inet gefunden:

 

Mofi

Bekanntes Mitglied
klingt doof aber hast du auch die richtigen treiber für die cam installiert? :)
*nur mal so als gedanken einwerf*
 

Kerb_09

Mitglied
Hi,

Also zu aller erst - deine Device List zeigt schon das deine WebCam nicht registriert wurde!
-> Denn die hier oftmals angefragte "JMF Registry"(-Einträge) muß die Devices ersteinmal "suchen"!
Dann werden die auch aufgelistet! Und du kannst den String im Vektor ausfindig machen!

Des Weiteren, wie auch beim aufmerksamen lesen des Quellcodes oder im Vorfeld der Website hervorgeht, muß man die WebCam manuell anpassen! (Nicht nur den String, sondern auch die Werte!!!)

-> Das ganze ist zum einen von der Anpassung der Webcam und vom JMF abhängig!

Habe z.B. den Windows Treiber genutzt und bei mir sieht das dann wie folgt aus:


...
device 2: vfw:Microsoft WDM Image Capture (Win32):0
>>> capture video device = vfw:Microsoft WDM Image Capture (Win32):0
- format: size=640x480, encoding=MJPG, maxdatalength=921600
- format: size=176x144, encoding=MJPG, maxdatalength=76032
- format: size=320x240, encoding=MJPG, maxdatalength=230400
- format: size=352x288, encoding=MJPG, maxdatalength=304128
...

Die Pünktchen geben die von dir schon angegebenen Devices und noch nen paar andere Video-optionen meines Rechners an, die nicht von belang sind!

Wie du hier siehst mußt deine CAM ersteinmal anpassen, dafür ist die Ausführung mit -dd zu nutzen, insofern du die WEBCAM den registriert hast!

Bei mir sieht das Codetechnisch dann wie folgt aus:

Java:
	private static String				defaultVideoDeviceName = "vfw:Microsoft WDM Image Capture (Win32):0";//"Logitech USB Video Camera";
	private static String				defaultAudioDeviceName = "DirectSoundCapture";
	private static String				defaultVideoFormatString = "size=640x480, encoding=MJPG, maxdatalength=921600";
	private static String				defaultAudioFormatString = "linear, 16000.0 hz, 8-bit, mono, unsigned";

Nach der oben angegebenen Anpassung läuft der bei mir zumindest durch das "Auffinden" der Devices durch, was er nach deinem ersten LOG bei dir nicht tut!

Im Übrigen, auch auf der Autorwebsite zu finden:
If all works successfull, you will see an output like this:


get list of all media devices ...
>>> capture video device = vfw:Logitech USB Video Camera:0
>>> capture video format = size=176x144, encoding=yuv, maxdatalength=38016
>>> capture audio device = DirectSoundCapture
>>> capture audio format = linear, 16000.0 hz, 8-bit, mono, unsigned
... list completed.
starting capturing ...
... capturing done
datasink: ... end of stream reached.

Jedoch erhalte ich dann leider folgenden Fehler:

Java:
javax.media.CannotRealizeException: Unable to provide all requested tracks

Nun an die anderen Damen & Herren die sich hier beteiligt haben - kennt sich jemand mit der Erzeugung "Processors" aus ?
Im JFM steht folgendes beschrieben:

JMF 2.0 API (03/10/01): Class Manager
Creating Processors
Processors are created in the same way as Players as outlined above. Manager also provides an additional way to create a Processor via the createRealizedProcessor call. A ProcessorModel is used to fully identify the input and output requirements of a Processor. The createRealizedProcessor call takes a ProcessorModel as input and create a Processor that adheres to the given ProcessorModel. The returned Processor is in the Realized state. The method is a blocking call.

If the Manager fails to find a Processor that fits the ProcessorModel, a NoProcessorException is thrown. If there is a problem creating and realizing a Processor, it will throw an IOException or CannotRealizeException depending on the circumstances.

So, meiner Fehlermeldung zufolge kann er mir die Tracks nicht zur Verfügung stellen!
Kann damit leider nicht's Anfangen, auch googeln hat mir nicht weitergeholfen!

Wie oben aus der eng. Erläuterung hervorgeht, findet der Manager einen Processor, kann diesen aber scheinbar nicht erstellen bzw. verwirklicht!

Hat diesbezüglich einer von euch einen Tipp für mich ?

Arbeite auch das erste mal mit dem JMF - und mehr als mich durch deren API - Erläuterungen durchzubeißen und zu googeln kann ich leider nicht aufbieten ;)

PS @Developer_X:
Ach so... von dem was du hier präsentierst überzeugst du nicht gerade - was die Angabe über 100 Zeilen Code angeht ;)
-> Den im Prinzip ist das alles nachlesbar gewesen, sowohl im Code, als auch auf der Website und auf der Java Seite! :rtfm: <- :toll: :applaus: -> :autsch:
:lol:
 
Zuletzt bearbeitet:

Kerb_09

Mitglied
@Jangoo

Ist nicht mal nen Jahr alt...
Da würde ich noch nicht von "Leichenschändung" reden!
Zudem kommt es dem Autor zu gute - ich denke er wird damit nicht weitergekommen sein!

Des Weiteren sehe ich zu viele Threads mehr als Spaming an!
-> Alle die sich hier beteiligt haben werden wohl drüberschauen!

Klar könnt ich nen neuen aufmachen!

:toll:

Nur so schlage ich gleich drei Fliegen mit einer Klappe:

1. Erreiche ich die, die sich zumindest annähernd damit schon einmal beschäftigt haben!
2. Kann der Autor dieses Threads mittels der Antwort sein "Projekt" zumindest beendigen wenn er nicht den selbigen Fehler erhalten sollte!
3. Sind genau die gefragt, die sich schon einmal beteiligt haben und z.T. Gedanken daran verlohren haben!

*Selbstredent würde ich auch von dir eine konstruktive Antwort, bezüglich meines Problemes, gerne annehmen!!!*
:toll:
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O java-Fehler bei Zugriff auf Webcam via dyndns Java Basics - Anfänger-Themen 7
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
B Webcam wird nicht gefunden Java Basics - Anfänger-Themen 2
B webcam Livestream Java Basics - Anfänger-Themen 5
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben