[vlc] Problems seeking in MPEG2 TS stream via RTSP?
Jean-Paul Saman
jpsaman at videolan.org
Sun May 31 10:32:54 CEST 2009
Rahul K Patel wrote:
> I am also facing same issue with H264 and AAC streaming. And
> surprisingly seek issues happens in rtp over udp only
> when i do streaming with rtp over tcp or rtp over http seek works properly.
>
> Is it bug in vlc or I am missing any thing.
Probably a bug in live555. Could you try with the live555 client? Just
to rule out that live555 libraries are the culprit. If not then vlc is
the culprit.
>
> Thanks in Advance,
> Rahul Patel.
>
>
> Brett Granger wrote:
>> / Following up a bit further on this... it doesn't seem to happen on
>> every
> />/ MPEG2 TS. I have some streams where the problem happens every time,
> />/ some streams where it happens sometimes, and some streams where it
> never />/ happens...
> />/
> />/ Any thoughts on whether I might be able to discern differences in
> the />/ streams that would cause this problem? I am not an MPEG expert
> by any />/ means.
> />/
> />/ Thanks again,
> />/ --Brett
> />/
> />/ Granger, Brett wrote:
> />/ />>/ Hello,
> />>/
> />>/ I am using a VLC client on linux (VLC 0.8.6b default package from
> Ubuntu
> />>/ Feisty repos) to play an MPEG-2 transport stream from a
> />>/ live555MediaServer using RTSP and RTP. I have used the
> />>/ MPEG2TransportStreamIndexer application included with the liveMedia
> code
> />>/ to create an index file to go along with the stream. Normal
> playback of
> />>/ the stream from the beginning works just fine.
> />>/
> />>/ However, if I attempt to use the --start-time=<time> command line
> />>/ option, I see strange behavior: the client puts up a black screen for
> />>/ the amount of time in the start-time parameter, and then finally
> starts
> />>/ to display the video from the desired offset into the stream.
> Likewise,
> />>/ if I launch vlc with the rc interface and let it start playing the
> />>/ stream from the beginning, then use the "seek <x>" command in the rc
> />>/ interface, the video presentation stalls for an amount of time
> equal to
> />>/ the difference between the requested new presentation time and the
> />>/ current presentation time, then resumes from the correct
> newly-requested
> />>/ location in the stream. Using the -vvv option on the command line, I
> />>/ see that the live555 access_demux *always* issues a PLAY request from
> />>/ time 0 when starting to play a stream, then follows up almost
> />>/ immediately with a PLAY request for the new time passed in via the
> />>/ --start-time option, so I believe that both cases are showing the same
> />>/ behavior.
> />>/
> />>/ I used wireshark to look at the traffic between client and server. I
> />>/ see that when the seek command is issued via the interface, the RTSP
> />>/ server immediately replies and starts sending RTP packets from the new
> />>/ location in the stream. However, the VLC client does not present them
> />>/ until the wallclock time has advanced to the point where the next
> frame
> />>/ would have been displayed without the seek request -- e.g. "seek 15"
> />>/ from time 0 results in a 15 second delay before video resumes.
> />>/ Additionally, the VLC client appears to have buffered all the RTP
> />>/ packets that were sent in the meantime. When I attempt to pause after
> />>/ having issued a seek, wireshark shows that the PAUSE request goes
> to the
> />>/ server immediately and the RTP packets stop coming, but VLC
> continues to
> />>/ play video for a time equal to the duration of the seek before
> pausing.
> />>/ I have --rtsp-caching=200, and yet VLC will play 15 seconds of video
> />>/ after the pause if I have done a seek of 15 seconds.
> />>/
> />>/ Has anyone seen this problem, and is there anything I can do either to
> />>/ solve it or to get more information about it? It appears to have
> />>/ something to do with the timestamp at which VLC believes it is
> supposed
> />>/ to present the next frame. VLC just waits until that time and then
> />>/ proceeds with the presentation. I have determined that if I am in the
> />>/ rc interface and use the command "goto 0" on a clip which has a
> />>/ start-time option, it will immediately start presenting from the
> correct
> />>/ time in the stream, and I think that is because it does not issue a
> PLAY
> />>/ request for time 0 before issuing the PLAY request for the start time.
> />>/ However, if I then seek in that stream, I still see the same stalling
> />>/ behavior.
> />>/
> />>/ I do not see this behavior when streaming an mp3 stream from the same
> />>/ RTSP server, so it appears to be specific to the MPEG2 transport
> stream
> />>/ as well...
> />>/
> />>/ Thanks in advance for any thoughts or help. Please let me know if
> this
> />>/ issue belongs on a different VLC mailing list.
> />>/
> />>/ --Brett Granger
> />>/
> />>/ ______________________________________________________
> />>/ vlc mailing list
> />>/ To unsubscribe or modify your subscription options:
> />>/ http://mailman.videolan.org/listinfo/vlc
> />>/ />/
> />/
> />/ ______________________________________________________
> />/ vlc mailing list
> />/ To unsubscribe or modify your subscription options:
> />/ http://mailman.videolan.org/listinfo/vlc
> />/
> />/ /
> Hi, I have bit understanding of MPEG TS. It contains Header + Adaptation
> Field and/or Payload. Adaptation field specifically contains PCR
> (Program Clock Ref). Payload contains stream data.
> It is fair to say that PCR, will synchronize server and client. All
> stream time stamps are in reference to clock ref.. So, when seek
> happens, it I think, it is required to send new adaptation field with
> latest value of PCR. Also extracting of elementary stream, will happen
> when new payload will arrive having valid decoded time stamp. (Now, in
> case of video, (some) video codec requires I frame to start (as B and P
> frames are based on I) Thus, we will end up with no or messy video
> output till we receive complete and valid I frame. Frequency of I frame
> is based on GOP (group of pictures). )
>
> I feel it will be good idea to check availability of Adaptation field
> (and thus PCR) in transport stream, received after seek operation takes
> place.
>
> Regards,
>
> Viral
>
>
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________________
> vlc mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc
More information about the vlc
mailing list