[Live-devel] Streaming H264 difficulties

Ross Finlayson finlayson at live555.com
Sun May 2 00:53:08 PDT 2010


(My apologies for the delay in responding to this message.)

>I am working on a RTSP RTP-over-TCP H264 streaming application from 
>a live HW-based encoder.
>I have implemented MyDeviceSource, MyH264VideoStreamFramer, 
>H264DeviceMediaSubsession and MyH264App based on 
>testOnDemandRTSPServer. In general the application works and I get 
>the live stream.
>The intended viewer application is VLC on a remote machine in the 
>same LAN, where bandwidth is a non-issue.
>
>I've encountered 2 obstacles that have been giving me a hard time:
>1. "Glitches" in the video output. After every (quite small) amount 
>of frames the video "glitches" and I get block artifacts, and frames 
>that seem to jump back in time. From playing around with the 
>presentation times, I thought it might be related to this.

Possibly - see below.


>My approach to fPresentationTime is to set it to gettimeofday() 
>every GOP (i.e. SPS/PPS frames), and increment by 1000000/FPS for 
>every encoded frame.

Does your H.264 stream contain "B" frames?  If so, then note that the 
presentation times should *not* be monotonic increasong, and 
therefore your method of setting "fPresentationTime" is incorrect.

If you stream does contain "B" frames, then I suggest that you look 
at the "MPEG4VideoStreamDiscreteFramer" code for a model of how to 
properly set "fPresentationTime" for H.264 frames.


>  The encoder encodes frame by frame only.
>When I use openRTSP as the client, the video file is saved 
>perfectly, which no glitches.

That is not surprising, because "openRTSP" does not care about 
presentation times; it just records the incoming data that it sees.


>  2. The streaming server (OS is Linux2.6) is also used for other 
>cpu-intensive processes. This is a requirement. The machine is 
>practically constantly at 100% cpu usage. However, it practically 
>does not use any network resources.
>When this is the situation, the video glitches become overwhelming, 
>and it seems the client has a very hard time handling the stream and 
>sometimes even disconnects.

What happens when you run your server machine *without* these other 
CPU-intensive processes?

It sounds like you may just have an underpowered computer...
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20100502/dc425a38/attachment.html>


More information about the live-devel mailing list