[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