On May 12, 2013, at 22:43 , Carl Eugen Hoyos wrote: > Kalileo <kalileo@...> writes: > >> This is also what I noticed, when playing with >> probesize and analyzeduration trying to get the >> player to start more quickly (using mpegts >> (h264/aac) streams served through a memory buffer). > > Since I did not really understand the paragraph I cut: > Do you mean that although you used -probesize and > -analyzeduration, the time to probe a file did not > change?
That was my impression, yes. > If yes, this sounds like a serious bug that should be > investigated. > (Needs command line, console output etc.) I'm not talking about ffmpeg command line, but about using the ffmpeg libraries in own code. > >> This leads to the question why does a known stream > > (What is a "known" stream?) That is a stream from which I know exactly all parameters, codecs, container, all details. Which means I should be able to set these details, instead of probing them. > >> need to get probed / analyzed at all? > > I may miss something but I wonder how you want to > demux a transport stream without some probing / > there are many tickets from people who miss their > subtitle streams when opening their file⦠Sure, however if it is a stream which I created, encoded, then I should not need to probe, I know already how I encoded it. > > Additionally, user streams without PAT and/or PMT > are not unusual (there used to be a bug in *zap > for many years), so careful probing in transport > streams is particularly important afaict. Yes, understood. The streams I'm using do have PAT/PMT, and the first chunk of the stream which I feed to the player always starts with PAT/PMT, and the first video frame after that is a key frame. Therefore I think it should be possible to manually set all what avformat_find_stream_info is setting, and to skip feeding the stream to avformat_find_stream_info. In my case the input is mpegts in chunks starting with PAT/PMT, which I encode myself, so I know all encoding details. The steps are: avio_alloc_context() av_find_input_format() avformat_alloc_context() avformat_open_input() avformat_find_stream_info() <== this should be not needed if I set all required codec params. and then for video and again for audio: avcodec_find_decoder() avcodec_open2() However if I don't run avformat_find_stream_info() it sometimes works and sometimes not. Obviously I miss something what avformat_find_stream_info() is doing. Just to avoid any misunderstanding, it all works fine, and now I try to optimize it, to speed it up, and to avoid the delay caused by avformat_find_stream_info() by removing the requirement to run it. _______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
