We are trying to show video live stream from Milestone cameras. We use Milestone Mobile Server SDK. We call request stream command with “FragmentedMP4” stream type parameter. But if our customers set JPEG stream for particular camera (see picture below) in Milestone XProtect Management client, then live stream is not “FragmentedMP4” but “JPEG”.
So should we first find out what kind of camera stream our customers have set? And then according to this setting, should we call request stream command with “FragmentedMP4” or “TRANSCODED” stream type?
Thanks for reply.
Hi,
If you request FragmentedMP4 and the underlying stream is JPEG, then the client will receive the original JPEGs.
The type of the underlying stream you can get from the Header Extension Stream Info header that is received as part of the video headers. You can refer to the Video Chanel documentation for more information about the headers: https://doc.developer.milestonesys.com/mipsdkmobile/reference/protocols/mobile_video.html
Have a nice day!
Hi, thanks for your answer.
But there could be a client with license that does not allow FragmentedMP4. Is there a way how to find out if I should ask for FragmentedMP4 or Transcoded stream?
I am using Video.RequestStreamAsync() method and it returns FeatureIsDisabled
if license is not high enough. Is there a cleaner way how to check what stream is available?
Best regards
Hi,
Yes, you should look at the feature flag returned on Login Command DirectStreamingLive
/Svetlana
This works Thank you!
The only problem is that one camera I have uses privacy masking.
And I cannot find anything useful in forum or documentation besides that it works with transcoded (https://doc.milestonesys.com/latest/en-US/standard_features/sf_webc/webc_directstreamingexplained.htm) but not with fragmentedMP4. How to determine if this is turned on for specific camera?
Thanks for your time.
[Edit]: I figured out that I have to request camera model from Milestone SDK and check if its property ‘Camera.PrivacyProtectionFolder.PrivacyProtections[0].Enabled’ is true. And then request Transcoded video.