I’m in the process of writing to a wrapper for libavformat to record from an 
H.264/AAC RTSP stream on macOS/iOS and have some questions on how to start/stop 
the stream and respond to discontinuities cleanly (i.e. without large hiccups).

I’m using libavformat solely for the RTSP implementation and parsing/consuming 
the H.264 stream directly and theoretically have no need for libx264 beyond 
what libavformat requires to open the stream. (Can it be avoided?)

Ideally I’m looking for an “Opening a network stream” and “Reading from a 
network stream” equivalents of the “Opening a media file” and “Reading from an 
opened file” sections here:

https://www.ffmpeg.org/doxygen/3.2/group__lavf__decoding.html

If someone is willing to answer some questions on how libavformat is _supposed_ 
to be used in this scenario, I’ll be glad to summarize them in write those 
sections.

If already exists, I’d appreciate a link as Google is failing me.

---

At the moment, I have working code avformat_open_input() / 
avformat_find_stream_info() / av_read_frame() but am seeing occasional bad 
timestamps and dropouts, which I want to recover from as smoothly as possible.

Calling  avformat_find_stream_info() / av_find_best_stream() cause a large 
hiccup reading ahead to find the program streams and seems inappropriate for 
RTSP — especially if the video format could change on the fly.

Further av_read_play() and av_read_pause() have been returning errors — perhaps 
because avformat_find_stream_info() has been called?

Should I just call avformat_open_input() then  av_read_play()  and assume any 
necessary AVStream* structures will have been lazily created for any index i 
see in av_read_frame()?

What I’m looking for is user-level documentation for:

1) Opening/Playing/Pausing an RTSP stream

2) Finding what sub streams are present including format and timebase 
information

3) Detecting and restarting cleanly after discontinuities — either dropouts of 
format changed

TIA for any assistance.

-Steve




_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to