[Libav-user] disabling probe for specific streams

aviad rozenhek aviadr1 at gmail.com
Sun Nov 20 11:13:16 CET 2011


*short version:*
*
*
I want to disable probing for streams which arent video or audio.
is there a way to do it?

*long version:*
*
*
I'm using libav to demux TS from UDP. sometimes the TS source has streams
that are not understood by libav.
the problem is that libav probes these streams, and that might take a long
time [we're reading from UDP, data flows in real-time] sometimes 10-20
seconds!
all this for a stream I don't really care about and would rather just skip.

here's an example

avprobe version v0.7-749-g2214191, Copyright (c) 2007-2011 the Libav
> developers
>   built on Aug 30 2011 12:37:07 with gcc 4.5.2
>   configuration: --enable-runtime-cpudetect --enable-cross-compile
> --enable-w32threads --prefix=/usr --cross-prefix=mingw32- --arch=i686
> --targe
> hared --enable-avisynth --enable-libvpx
>   libavutil    51.  9. 0 / 51.  9. 0
>   libavcodec   53.  9. 0 / 53.  9. 0
>   libavformat  53.  5. 0 / 53.  5. 0
>   libavdevice  53.  0. 0 / 53.  0. 0
>   libavfilter   2.  4. 0 /  2.  4. 0
>   libswscale    2.  0. 0 /  2.  0. 0
>   libpostproc  52.  0. 0 / 52.  0. 0
> Input #0, mpegts, from 'udp://239.5.5.5:10201':
>   Duration: 00:07:39.42, start: 42291.915289, bitrate: 4095 kb/s
>   Program 725
>     Stream #0.0[0x1005]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR
> 64:45 DAR 16:9], 9000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
>     Stream #0.1[0x1006](ger): Audio: mp2, 48000 Hz, stereo, s16, 256 kb/s
> (clean effects)
>     Stream #0.2[0x1008](deu): Subtitle: [6][0][0][0] / 0x0006
>     Stream #0.3[0x1009]: Data: [6][0][0][0] / 0x0006
> Unsupported codec with id 94215 for input stream 2
> Unsupported codec with id 102400 for input stream 3


in this case, the unwanted stream is #3.
to see that libav is mostly busy with probing the stream I have no use for,
I ran avprobe with with -loglevel debug

avprobe version v0.7-749-g2214191, Copyright (c) 2007-2011 the Libav
> developers
>   built on Aug 30 2011 12:37:07 with gcc 4.5.2
>   configuration: --enable-runtime-cpudetect --enable-cross-compile
> --enable-w32threads --prefix=/usr --cross-prefix=mingw32- --arch=i686
> --target-os=mingw32 --sysroot=/usr/mingw32/ --enable-gpl --enable-librtmp
> --enable-libx264 --enable-libmp3lame --enable-libvorbis
> --enable-memalign-hack --enable-shared --enable-avisynth --enable-libvpx
>   libavutil    51.  9. 0 / 51.  9. 0
>   libavcodec   53.  9. 0 / 53.  9. 0
>   libavformat  53.  5. 0 / 53.  5. 0
>   libavdevice  53.  0. 0 / 53.  0. 0
>   libavfilter   2.  4. 0 /  2.  4. 0
>   libswscale    2.  0. 0 /  2.  0. 0
>   libpostproc  52.  0. 0 / 52.  0. 0
> [mpegts @ 007ff420] Probed with size=2048 and score=100
> [mpegts @ 007ff420] stream=0 stream_type=2 pid=1005 prog_reg_desc=
> [mpegts @ 007ff420] stream=1 stream_type=4 pid=1006 prog_reg_desc=
> [mpegts @ 007ff420] stream=2 stream_type=6 pid=1008 prog_reg_desc=
> [mpegts @ 007ff420] stream=3 stream_type=6 pid=1009 prog_reg_desc=
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mp3 @ 01ef5600] Header missing
> [mpegts @ 007ff420] max_analyze_duration reached
> [NULL @ 01ee6f80] start time is not set in estimate_timings_from_pts
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> [mpegts @ 007ff420] probing stream 3
> Input #0, mpegts, from 'udp://239.5.5.5:10201':
>   Duration: 00:07:38.97, start: 42291.915289, bitrate: 4099 kb/s
>   Program 725
>     Stream #0.0[0x1005], 0, 1/90000: Video: mpeg2video, 90k tbr, 90k tbn,
> 90k tbc
>     Stream #0.1[0x1006](ger), 3, 1/90000: Audio: mp2, 48000 Hz, stereo,
> s16, 256 kb/s (clean effects)
>     Stream #0.2[0x1008](deu), 12, 1/90000: Subtitle: [6][0][0][0] / 0x0006
>     Stream #0.3[0x1009], 6, 1/90000: Data: [6][0][0][0] / 0x0006
> Unsupported codec with id 94215 for input stream 2
> Unsupported codec with id 102400 for input stream 3



again, this probing takes a very long time, in excess of 10 seconds,
because instead of reading from file, the data is streamed in realtime over
UDP.
so the question is, can I programmatically turn off probing for streams I
don't care about, like DATA or UNKNOWN streams?

-- 
Aviad Rozenhek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20111120/523bd426/attachment.html>


More information about the Libav-user mailing list