Pelco Developer Network (PDN)

Getting Pelco Video Streams (JPEG info)

Hi team, I am not sure is this the right thread to post for my question as follow, kindly please move it to right thread if this is not right thread.

I am posting the question on behalf of my customer that have Pelco Sarix Enhanced, Professional, Next Gen Sarix Enhanced, Professional, Endura 2.0 and recently added VideoXpert in their school campus.

My customer wanted to get high resolution image and video stream from our cameras (5 megapixels from certain camera such as Sarix Professional), and their internal IT team would like to get advice on how to kick start the integration.

Questions as follow:
1. How to get high resolution image from Pelco camera using their API/SDK with C# ?
2. How to read the video steaming using C# ?
3. Is it must to have Video Management System (VMS) to get high resolution image (e.g. 5MP) from Pelco camera ?

Let me know if you need further clarification on the questions.

Hope you can help us, thank you.

Hello there, thank you for your post. I can help with some of your questions, sure.

1. How to get high resolution image from Pelco camera using their API/SDK with C# ?

This question is unfortunately a bit too generic - (please take a look at the Forum Guidelines). I can answer it in a general sense; Use ONVIF and RTSP streaming is our recommendation. If they are using VideoXpert, they can utilize the VX SDK in order to obtain devices and the VX SDK sample code uses Gstreamer (not made by Pelco, this is openly available) for streaming. It is also possible to use VLC for streaming too. Do not use Pelco SDK; it is older and no longer maintained or updated. ONVIF is an API that Pelco devices support. Pelco API is also dated and not what we would recommend.

2. How to read the video steaming using C# ?

Unfortunately, again, this question is too generic in scope for us to provide a good answer. I can help provide direction and specific answers to specific questions about behaviors or "when I do this X happens" on individual lines of code. Other than this, we recommend that the partner utilize what is already on PDN or resources available online to get started on their project. If they are completely stuck, they can start by using VX SDK code samples as a jumping off point. These stream using GStreamer - which again is openly available and not developed or maintained by Pelco. There is some documentation here on PDN under the VX SDK and also some typical Use Cases explained on the GitHub repository for the VX SDK Samples.

3. Is it must to have Video Management System (VMS) to get high resolution image (e.g. 5MP) from Pelco camera ?

it is not required to use a VMS to get an image or stream from a Pelco camera. It's possible to obtain Live video using a Pelco camera's RTSP URL (very old Pelco cameras may not support this -- all models you listed should), or still images from a Pelco camera's JPEG URL. Information about these can be found on Pelco.com under the Knowledge Base.

I hope this information helps! If we can get more specific questions, then I can provide more specific directions.

Thank you Chris, I am meeting up with customer tomorrow, will relay the feedback to customer.

I will revisit back with more details if required.

Sounds like a plan, thanks for the update.

Hi Chris,

I have a meeting with customer last Thursday. They have 2 groups of developer working on 2 different projects as follow:

Project 1) Team A will obtain JPEG images from 5 types of Pelco cameras they have on site (Sarix Enhanced, Sarix Enhanced Next Gen, Sarix Professional, Sarix Professional Next Gen, and Spectra Enhanced); the 5 types of camera is isolated deployed on different VLAN that has no VMS. Team A will write their own Video Analytics algorithms on the JPEG fetched.
Issue: Customer were using Pelco API to fetch JPEG http://pdn.pelco.com/blog/fetching-jpeg-images, however this URL "http://" + camera_ip + "/api/jpeg" returns error on Sarix Professional/ Next Gen cameras. What is the correct API to call for JPEG using Pelco API for 5 types of cameras listed above?

Project 2) Team B will integrate to VideoXpert version 2.0 that they have on site, and then they will write their own mobile apps (Android, iOS) that will be able to live view lower resolution video stream (secondary video stream) from our system using C#.
Issue: Team B has no clue on how to start the whole process and need advise on how they could start the development process. Could the Integration Team please write in detail process on how they could achieve the integration to call lower resolution from VxE 2.0 using C#?

Thank you.

Hello there -

for Project 1): Remove the string '/api' from there and they should work for both. At least, they did for my Pro/Pro2 and Enhanced. I don't have any Enhanced next gen models. Using "http://[camera_ip/jpeg" is a good way to default it. They should only get a single still image that is not high resolution, but that will work for their needs. There aren't other options that I'm aware of - you could check with Sales / Product Managers if you need more data on those.

There are several articles on the Pelco.com Knowledge Base about this as well: Article #16387, Article #12001, and Article #8901. I will also note that there is an article about obtaining different resolution JPEG images here: Article #8531 ... but this did NOT work for the models I tried on: IME119, IME319, IBP121, IBP521, and IBP519. I believe you'll only get the one lower-resolution JPEG image.

For Project #2): They will want to start with the VideoXpert SDK. There are code snippets and samples at the links provided, as well as documentation. The VX SDK would be used to obtain a list of devices and communicate with the VideoXpert VMS system. The VX SDK -does not inherently provide a streaming solution-. This is very critical to understand. The code samples make use of Gstreamer, which is also used in Pelco for other products, for streaming. Many partners decide to also use GStreamer for their own streaming solutions. If this is too much for them, please have them get in touch with Sales and our Technology Partners ( at Contact Partner First) to discuss the project.

Hi Chris,

Thanks for your advice, well for Project 1, our customer wanted to get the primary stream MJPEG from camera for their integration. Can you please confirm if the JPEG returned from string without /api would be primary stream on Sarix Professional/ Sarix Professional Next Gen/ Sarix Enhanced/ Sarix Enhanced Next Gen?

Customer is testing the API on 5 megapixels Sarix Professional Next Gen camera now, and it is critical to have high resolution stream so they could see details and their VA would be performed just fine.

On Project 2, I will keep in touch with the TL team see if they could possible provide more details.

Thank you.

Thank you for the follow up.

I was only able to obtain the one JPEG image that was always a 640x480 or 640x352 (low) resolution with the camera settings I was using. I did find some other options that may work:

On a IBP519 Pro camera, if I set a secondary stream to a 1280x720 JPEG stream this is what I found:

[camera_ip]/jpeg resulted in 640x352 jpeg
[camera_ip]/jpeg?id=0 (for primary) resulted in Page cannot be found - primary was set to H264 at the time
[camera_ip]/jpeg?id=1 (for secondary) resulted in a 1280x720 JPEG
[camera_ip]/jpeg?id=2 (for the jpeg url) resulted in a 640x352 JPEG

So it does look like with Pro, you may be able to set streams to JPEG and obtain different resolutions.

My quick test with Enhanced was even better. I set the secondary stream on my IME319 to 2048x1536:

[camera_ip]/jpeg resulted in 2048x1536 jpeg
[camera_ip]/jpeg?id=0 (for primary) resulted in 404 - Not Found - primary was set to H264 at the time
[camera_ip]/jpeg?id=1 (for secondary) resulted in a 2048x1536 JPEG
[camera_ip]/jpeg?id=2 (for the jpeg url) resulted in a 640x480 JPEG

It would appear that you can obtain higher resolution JPEGs by trying to set the streams to JPEG instead of H264 and then use the "?id=X" string to request a specific stream's JPEG.

Thank you Chris, I will relay these information to our customer for them to try out. Will get back to you if we face issues.

Sounds like a plan, thanks for the response and update.