Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy it is UDP, not RTP in Wireshark when I stream using jmf?
    primarykey
    data
    text
    <p>I want to capture and stream audio using JMF 2.1.1e in RTP format. I wrote a simple transmitter, I can transmit and receive the audio. But when I saw in Wireshark, I saw the packets as UDP. Can anyone point me out the problem, please.</p> <p>And here is my function responsible for audio capture and transmit. </p> <pre><code>public void captureAudio(){ // Get the device list for ULAW Vector devices = captureDevices(); CaptureDeviceInfo captureDeviceInfo = null; if (devices.size() &gt; 0) { //get the first device from the list and cast it as CaptureDeviceInfo captureDeviceInfo = (CaptureDeviceInfo) devices.firstElement(); } else { // exit if we could not find the relevant capturedevice. System.out.println("No such device found"); System.exit(-1); } Processor processor = null; try { //Create a Processor for the specified media. processor = Manager.createProcessor(captureDeviceInfo.getLocator()); } catch (IOException ex) { System.err.println(ex); } catch (NoProcessorException ex) { System.err.println(ex); } //Prepares the Processor to be programmed. //puts the Processor into the Configuring state. processor.configure(); //Wait till the Processor configured. while (processor.getState() != Processor.Configured){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } //Sets the output content-type for this Processor processor.setContentDescriptor(CONTENT_DESCRIPTOR); /** ContentDescriptor CONTENT_DESCRIPTOR = new ContentDescriptor(ContentDescriptor.RAW_RTP); */ //Gets a TrackControl for each track in the media stream. TrackControl track[] = processor.getTrackControls(); boolean encodingOk = false; //searching through tracks to get a supported audio format track. for (int i = 0; i &lt; track.length; i++) { if (!encodingOk &amp;&amp; track[i] instanceof FormatControl) { if (((FormatControl) track[i]).setFormat( new AudioFormat(AudioFormat.ULAW_RTP, 8000, 8, 1) ) == null) { track[i].setEnabled(false); } else { encodingOk = true; track[i].setEnabled(encodingOk); System.out.println("enc: " + i); } } else { // we could not set this track to ULAW, so disable it track[i].setEnabled(false); } } //If we could set this track to ULAW we proceed if (encodingOk){ processor.realize(); while (processor.getState() != Processor.Realized){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } DataSource dataSource = null; try { dataSource = processor.getDataOutput(); } catch (NotRealizedError e) { e.printStackTrace(); } try { String url= "rtp://192.168.1.99:49150/audio/1"; MediaLocator m = new MediaLocator(url); DataSink d = Manager.createDataSink(dataSource, m); d.open(); d.start(); System.out.println("transmitting..."); processor.start(); } catch (Exception e) { e.printStackTrace(); } } } </code></pre> <p>And please ask, if you find anything improper or vague. Thanks in advance. :)</p> <p><strong>Clarification</strong>: I have a peice of <strong>C#</strong> code for RTP streaming. And when I capture the data using <strong>wireshark</strong>, I can see them as <strong>RTP</strong>, but the problem is when I capture the data stream from <strong>JMF</strong> wireshark show them as <strong>UDP</strong>. And my question is, why?</p> <p>I know the difference between UDP and RTP.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload