LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Stream video from received H264 data packets

Hello I am working on streaming a ethernet camera video on front panel. I am receiving continuous data packets in LabVIEW from RTSP ethernet camera encoded in H.264 format through RIO. RIO is establishing communication & once camera starts sending data to RIO, It forwards that data to Labview. I am continuously receiving this H.264 encoded data in string format in LabVIEW. I want to extract info & stream video on front panel. Can anyone help me about this?

0 Kudos
Message 1 of 4
(176 Views)

I believe that the H.264 Codec is not supported by NI and IMAQdx.  Try doing a Web Search for "LabVIEW H.264" to see some suggestions, including some commercial software that might work for you if you purchase it.  [If you do try it, and it works, please let the Community know!].

 

Bob Schor

Message 2 of 4
(135 Views)

Thank you for reply. Is there any RTSP decoder library for IP camera available for LabVIEW? I tried to search but couldnt find any.

0 Kudos
Message 3 of 4
(115 Views)

Not that I'm aware off. It is not an easy thing to write at all and requires a low level knowledge that only a few people have and none of them so far has seen the need for such a thing. The way such video data is normally received is by directly calling a video driver for the camera in question, be it through .Net, as DLL or through NI IMAQ Vision with the help of an according Windows DirectX camera driver.

 

Additional problems that would arise are patent issues. Anyone writing such a software library would have to pay royalties to a few companies for various patents. Most (but not all of them) are administered by MPEG LA. This basically makes creation of such a library very uninteresting since it is almost impossible to even inquire the costs for these royalties alone, let's not talk about earning anything on top of that. The only thing one is sure to get except money, is many support requests for such a library from lots of users trying to make it work without knowing anything about such things.

 

If you want to get your hands very dirty you can probably get a library such as Ciscos open source H.264 encoder. This comes in the form of a shared library when compiled. However its interface is C++ object oriented and can't be directly called by the LabVIEW Call Library Node, so you would need to write another intermediate wrapper library in C to convert between the function call interface that the Call Library Node can use and the C++ objects of this library.

 

Under Windows there are likely also .Net based libraries which work similar and would be slightly easier to use from LabVIEW, but still lots and lots of work and personally I would feel concerned about what frame rate it can achieve. Video data is not trivial to handle and requires very well designed data transfer paths. Going through to many interfaces always hurts that.

Rolf Kalbermatter
Averna BV
0 Kudos
Message 4 of 4
(100 Views)