[Live-devel] Getting the h264 video bytes

2022-03-25 Thread stevee
Hello, I have been looking at and compiling the test apps for a few days 
and trying to work out the general structure of the libraries.


I am wishing to look at the video stream bytes from an IP camera in 
order to generate some statistics on it. I have compiled the test proxy 
which works just great at forwarding the RTSP stream to a player.


My main issue is working out what strategy I should be using to get to 
the sink bytes but essentially I keep running into the problems whereby 
whatever class I override needs private members of base classes to 
access the data. I think its just my unfamiliarity with the library and 
RTSP in general.


I have overridden the proxy's transcoding table and trying to insert a 
new overridden FramedFilter so that I could call getNextFrame and handle 
the doGetNextFrame by simply passing the data along.


Is that the way to do it, or should I split the stream with a replicator 
and then create my own sink and dump the data after looking at it ?


Or is it possible to iterate through the existing proxy subsessions and 
find the video one and acceess its sink & data in some way ?


What is the easiest method. The statistics I would like would be to 
count the bytes per frame or nal for various cameras under certain test 
conditions, ideally for any video compression format, but if it were 
just H264 then that would likely be ok.



___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] Getting the h264 video bytes

2022-03-25 Thread stevee

Thankyou Ross, your answer has solved the issue.

To answer your question first - yes I needed to show the playback so 
that people can watch the stream and we can analyze the stats based on 
what they saw and match it against their experience of the quality at 
specific points in the stream.


I compiled up the test Client previously and got that going with the 
stream data access because in the test Client example it goes through 
the process of setting up the subsession streams which in turn give 
access to the sink. But the Client does not export the video out for a 
player so moving on to the proxy that is better. But the proxy creates 
the client for you buried down the class hierarchy and then its hard to 
figure out how to override and hook into that in the same way that the 
test Client example shown.


By telling me that using the transcode filter was the correct way, it 
cut down the options from a lot to this one and, homing in on that since 
your last post, I have now got the filter working and have access to the 
data block bytes. So I am all good now !


The library and all of its classes are well written and work amazingly 
well. But with only Doxygen class diagrams its so hard to know the 
higher level strategy and direction one has to pick from the myriad to 
know how to get a problem solved. With more familiarity of all of the 
classes and API calls I am sure it would be no problem.


Thanks again.
___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel