How can I receive stream video content over a network with UDP protocol?

32 visualizzazioni (ultimi 30 giorni)
How can I receive stream video content over a network with UDP protocol?
I'm using Matlab 2015b, and I want to receive stream video from a Ar Drone Parrot. I have used MMS protocol to try receive stream video without success. I get an error because the format used by Ar Drone is MPEG-4 with H.264 encoded video and this protocol use the function "DSPWinMMFileInfo" which throws error.
So, I want to receive this stream video with UDP protocol, but I don't know how. I have seen examples to transmit audio data over a network with UDP, but not for video.
Please, can anybody help me? Thanks
  2 Commenti
Rakesh Chavan
Rakesh Chavan il 16 Mar 2016
Hi,
Can you post a snapshot of the error message you receive along with the code snippet that you are using.
The doc. link given below gives an example of sending video over network. Have you used something similar?
regards
Rakesh
María Victoria García
María Victoria García il 17 Mar 2016
Hi Rakesh,
Yes, I have used something similar to this example. My code is:
url = 'mms://192.168.1.1:5555';
% Create objects
hSrc = vision.VideoFileReader('Filename', url);
hSnk = vision.DeployableVideoPlayer;
% Run loop. Ctrl-C to exit.
while true
data = step(hSrc);
step(hSnk, data);
end
release(hSrc);
release(hSnk);
And I get this error:
Error using DSPWinMMFileInfo
Could not add the data source to the filter graph.
Error in dspmmfileinfo>getFileInfo (line 98)
videoHeightInPixels, videoFormatName] = DSPWinMMFileInfo(theFile);
Error in dspmmfileinfo (line 19)
cache.fileInfo(index) = {getFileInfo(filename)};
Error in vision.VideoFileReader/setFileInfoProps
Error in vision.VideoFileReader/set.Filename
Error in matlab.system.SystemProp/parseInputs
Error in matlab.system.SystemProp/setProperties
Error in vision.VideoFileReader
Error in protocolo_mms (line 4)
hSrc = vision.VideoFileReader('Filename', url);
In addition I have used this code with UDP protocol:
% Initialize several configuration parameters.
IP_address = '192.168.1.1';
IP_port = 5555;
sampleRate = 44100;
samplesPerFrame = 512;
drone.ARv = udp('192.168.1.1', 5555, 'LocalPort', 5555);
fopen(drone.ARv);
% Create System objects to view to data produced by the remote client.
hRemoteSource = dsp.UDPReceiver('LocalIPPort', IP_port,...
'RemoteIPAddress', IP_address,...
'MaximumMessageLength', samplesPerFrame,...
'MessageDataType', 'double');
videoPlayer = vision.VideoPlayer;
fiveSeconds = 5*sampleRate;
for i=1:(fiveSeconds/samplesPerFrame)
% Connect the remote source to the local sink
% In other words, receive video data.
remoteData = step(hRemoteSource);
step(videoPlayer, remoteData);
end
release(videoPlayer);
release(hRemoteSource);
fclose(drone.ARv);
And I get this error:
%Error using UDPReceiver/step
%Intento de acceso a un socket no permitido por sus permisos de acceso
%Error in udp__ (line 23)
% remoteData = step(hRemoteSource);
I am looking forward to your response. Thanks.
Regards.
Victoria.

Accedi per commentare.

Risposta accettata

Florian Enner
Florian Enner il 14 Mag 2016
Modificato: Florian Enner il 14 Mag 2016
I've uploaded a submission that supports streaming h264 (among other formats) from ip cameras.
% Connect to stream
cam = HebiCam('<address>');
% Continously display latest image
figure();
fig = imshow(getsnapshot(cam));
while true
set(fig, 'CData', getsnapshot(cam));
drawnow;
end
You can get it from File Exchange or Github
Let me know if this works for you.
  1 Commento
María Victoria García
María Victoria García il 16 Mag 2016
Modificato: María Victoria García il 16 Mag 2016
Hi Florian,
I've tried your code and I get this error:
Undefined variable "us" or class "us.hebi.matlab.streaming.BackingHebiCam.open".
Error in HebiCam (line 72)
this.cam = us.hebi.matlab.streaming.BackingHebiCam.open(url);
Error in main (line 3)
cam = HebiCam(url);
Would you know where is the problem?
I am looking forward to your response, please. Thanks.
Regards.
Victoria.

Accedi per commentare.

Più risposte (3)

Dinesh Iyer
Dinesh Iyer il 17 Mar 2016
The system object does allow you to read video content over MMS stream. However, the issue might be that it is unable to decode the H.264 stream that is contained in the video.
When you are using UDP, I noticed that the error indicates a permissions issue to access the socket. The system object error also indicates that it is unable to add the source for reading. This might be a permissions issue.
One quick thing to try is see if you are able to view this stream using Windows Media Player as the system object uses some of the same APIs to read it. Open Media Player, File > Open URL and try to stream data from your URL. If Media Player fails, then the system object is expected to fail.
Hope this helps.
Dinesh
  2 Commenti
María Victoria García
María Victoria García il 30 Mar 2016
Modificato: María Victoria García il 30 Mar 2016
I have used Windows Media Player to try if it is possible to view this stream video. I have made indications you have said me and I have used three different url options:
- mms://192.168.1.1:5555
- tcp://192.168.1.1:5555
- udp://192.168.1.1:5555
And I get errors with the three options.
Would you know which is the problem? Is there another possibility to get this stream video?
I am looking forward to your response, please. Thanks.
Regards.
Victoria.
David
David il 27 Gen 2017
Hello María VIctoria, I have exactly the same problem...how did you fix the issue on madia player codec?
Thanks in advance for your help,
David

Accedi per commentare.


maha annoukoubi
maha annoukoubi il 29 Apr 2016
hello Maria i m working at the same project , please could you contact me on : m.annoukoubi@gmail.com so that we may share our informations .

Mohamed Abdelkader Zahana
Mohamed Abdelkader Zahana il 12 Mag 2016
Hi Maria,
I am trying to do almost the same thing. The difference is that I will have an embedded computer (ODROID XU4) with connected camera that streams video over UDP using gstreamer. Then, I would like to receive the video in MATLAB. I'd appreciate if any one can help.
Here is my email in case you find a solution.
Thanks.

Categorie

Scopri di più su MATLAB Support Package for USB Webcams in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by