[FFmpeg-user] mmsh streams and immense buffering

Patrick Cornwell pat at nerdy.co.uk
Tue May 22 20:41:01 CEST 2012


> > http://209.105.232.35/cssaitek1
> >
> > (I pass it in as mmsh:// within FFMPEG). The result is:
> >
> > [wmv3 @ 00000000(some random hex)] Extra data: 8 bits left, value: 0
> 
> Always post your FFmpeg command line together with complete, uncut 
> console output on this list (never post extracts from the output.)
> 
> Use a small value for -probesize, I don't know much about mms, but 
> FFmpeg and your implementation seem to disagree about timestamps...

Carl,

Ok, a very simple example, since it doesn't seem to matter what I specify
output format to be - the hanging is the same:

PROBLEM STREAM:

ffmpeg -i "mmsh://209.105.232.35/cssaitek1" image%d.jpg


C:\ffmpeg\bin>ffmpeg -i "mmsh://209.105.232.35/cssaitek1" image%d.jpg ffmpeg
version N-40640-g5edd4fc Copyright (c) 2000-2012 the FFmpeg developers built
on May 13 2012 18:02:34 with gcc 4.6.3
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r
--enable-libass --enable-libcelt --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libfreetype --enable-libgsm
--enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp
--enable-libschroedinger --enable-libspeex --enable-libtheora
--enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs
--enable-libxvid --enable-zlib
libavutil      51. 50.100 / 51. 50.100
libavcodec     54. 21.101 / 54. 21.101
libavformat    54.  4.100 / 54.  4.100
libavdevice    53.  4.100 / 53.  4.100
libavfilter     2. 72.105 /  2. 72.105
libswscale      2.  1.100 /  2.  1.100
libswresample   0. 11.100 /  0. 11.100
libpostproc    52.  0.100 / 52.  0.100
[wmv3 @ 0000000000344b20] Extra data: 8 bits left, value: 0



(this is where it waits about 3 minutes, output then continues:)


[wmv3 @ 0000000001f14b20] Extra data: 8 bits left, value: 0 [asf @
0000000001e8ef40] Stream #0: not enough frames to estimate rate; consider
increasing probesize [asf @ 0000000001e8ef40] Estimating duration from
bitrate, this may be inaccurate Input #0, asf, from
'mmsh://209.105.232.35/cssaitek1':
Metadata:
WMFSDKVersion   : 12.0.7600.16385
WMFSDKNeeded    : 0.0.0.0000
IsVBR           : 0
Duration: N/A, start: 302865.184000, bitrate: 266 kb/s Stream #0:0(eng):
Audio: wmav2 (a[1][0][0] / 0x0161), 22050 Hz, 1 channels, s16, 16 kb/s
Stream #0:1(eng): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 640x480,
250 kb/s, 25 tbr, 1k tbn, 1k tbc [buffer @ 0000000001f16740] w:640 h:480
pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:flags=2 [buffersink @
0000000001f16940] No opaque field provided [format @ 0000000001f16a80]
auto-inserting filter 'auto-inserted scale 0' between the filter 'src' and
the filter 'format'
[scale @ 0000000001f16d20] w:640 h:480 fmt:yuv420p sar:0/1 -> w:640 h:480
fmt:yuvj420p sar:0/1 flags:0x4
[wmv3 @ 0000000001f14b20] Extra data: 8 bits left, value: 0 Output #0,
image2, to 'image%d.jpg':
Metadata:
WMFSDKVersion   : 12.0.7600.16385
WMFSDKNeeded    : 0.0.0.0000
IsVBR           : 0
encoder         : Lavf54.4.100
Stream #0:0(eng): Video: mjpeg, yuvj420p, 640x480, q=2-31, 200 kb/s, 90k
tbn, 25 tb Stream mapping:
Stream #0:1 -> #0:0 (wmv3 -> mjpeg)
Press [q] to stop, [?] for help
frame=  137 fps=0.0 q=24.8 size=       0kB time=00:00:05.48 bitrate=
0.0kbits
/frame=  289 fps=288 q=24.8 size=       0kB time=00:00:11.56 bitrate=
0.0kbits
/frame=  433 fps=287 q=24.8 size=       0kB time=00:00:17.32 bitrate=
0.0kbits
/frame=  587 fps=292 q=24.8 size=       0kB time=00:00:23.48 bitrate=
0.0kbits
/frame=  737 fps=293 q=24.8 size=       0kB time=00:00:29.48 bitrate=
0.0kbits
/frame=  881 fps=291 q=24.8 size=       0kB time=00:00:35.24 bitrate=
0.0kbits
/frame= 1033 fps=293 q=24.8 size=       0kB time=00:00:41.32 bitrate=
0.0kbits
/frame= 1185 fps=294 q=24.8 size=       0kB time=00:00:47.40 bitrate=
0.0kbits
/frame= 1341 fps=296 q=24.8 size=       0kB time=00:00:53.64 bitrate=
0.0kbits
/frame= 1476 fps=293 q=24.8 size=       0kB time=00:00:59.04 bitrate=
0.0kbits

(PRESSED CONTROL + C AT THIS POINT)


Even though it says 'size = 0kb' for the images, they are all perfect fully
sized framegrabs of the video which are saved to disk.


NON-PROBLEM STREAM:


C:\ffmpeg\bin>ffmpeg -i "mmsh://209.105.232.35/csdigitaldanuk" image%d.jpg
ffmpeg version N-40640-g5edd4fc Copyright (c) 2000-2012 the FFmpeg
developers built on May 13 2012 18:02:34 with gcc 4.6.3
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r
--enable-libass --enable-libcelt --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libfreetype --enable-libgsm
--enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp
--enable-libschroedinger --enable-libspeex --enable-libtheora
--enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs
--enable-libxvid --enable-zlib
libavutil      51. 50.100 / 51. 50.100
libavcodec     54. 21.101 / 54. 21.101
libavformat    54.  4.100 / 54.  4.100
libavdevice    53.  4.100 / 53.  4.100
libavfilter     2. 72.105 /  2. 72.105
libswscale      2.  1.100 /  2.  1.100
libswresample   0. 11.100 /  0. 11.100
libpostproc    52.  0.100 / 52.  0.100


(waited around 5 seconds here, the normal buffering time. note the lack of
[wmv3 @... line as per previous)


[asf @ 000000000031ef60] Estimating duration from bitrate, this may be
inaccurate Input #0, asf, from 'mmsh://209.105.232.35/csdigitaldanuk':
Metadata:
WMFSDKVersion   : 9.00.00.4509
WMFSDKNeeded    : 0.0.0.0000
IsVBR           : 0
Duration: N/A, start: 111467.639000, bitrate: 316 kb/s Stream #0:0(eng):
Audio: wmav2 (a[1][0][0] / 0x0161), 22050 Hz, 1 channels, s16, 16 kb/s
Stream #0:1(eng): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 320x240,
300 kb/s, 1k tbr, 1k tbn, 1k tbc [buffer @ 0000000001dd2560] w:320 h:240
pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:flags=2 [buffersink @
0000000001dd4780] No opaque field provided [format @ 0000000001dd48a0]
auto-inserting filter 'auto-inserted scale 0' between the filter 'src' and
the filter 'format'
[scale @ 0000000001e38f00] w:320 h:240 fmt:yuv420p sar:0/1 -> w:320 h:240
fmt:yuvj420p sar:0/1 flags:0x4 Output #0, image2, to 'image%d.jpg':
Metadata:
WMFSDKVersion   : 9.00.00.4509
WMFSDKNeeded    : 0.0.0.0000
IsVBR           : 0
encoder         : Lavf54.4.100
Stream #0:0(eng): Video: mjpeg, yuvj420p, 320x240, q=2-31, 200 kb/s, 90k
tbn, 1k tbc Stream mapping:
Stream #0:1 -> #0:0 (wmv3 -> mjpeg)
Press [q] to stop, [?] for help
frame= 3534 fps=1872 q=24.8 size=       0kB time=00:00:03.53 bitrate=
0.0kbits
frame= 4289 fps=1793 q=24.8 size=       0kB time=00:00:04.28 bitrate=
0.0kbits
frame= 5108 fps=1762 q=24.8 size=       0kB time=00:00:05.10 bitrate=
0.0kbits
frame= 5898 fps=1723 q=24.8 size=       0kB time=00:00:05.89 bitrate=
0.0kbits
frame= 6664 fps=1694 q=24.8 size=       0kB time=00:00:06.66 bitrate=
0.0kbits
frame= 7373 fps=1658 q=24.8 size=       0kB time=00:00:07.37 bitrate=
0.0kbits

(etc).


Feel free to run the same commands on the same streams to test. They are
open and usually available 24 hours a day. I can supply half a dozen more
examples of working to non working which don't seem to have any common cause
(frame size, bit rate etc).

Thanks,

Pat



More information about the ffmpeg-user mailing list