Opened 8 years ago

Closed 3 years ago

Last modified 3 years ago

#5023 closed defect (fixed)

Can no longer read mjpeg from Mobotix camera

Reported by: Roman Gaufman Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mjpeg mpjpeg regression
Cc: Alex Agranovsky Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: Older version of ffmpeg can read mjpeg stream from a Mobotix IP camera without issues. The latest version from git cannot.

How to reproduce:

% ffmpeg -i 'http://192.168.100.233/cgi-bin/faststream.jpg?noaudio' -y test.mkv

In version: N-69470-g36adfa3 (2015-02-01 22:53:38) - this command records the stream without any issues.

In version: git-2015-11-18-518742b I see the following:

$ ffmpeg -i 'http://192.168.100.233/cgi-bin/faststream.jpg?noaudio' -y test.mkv
ffmpeg version git-2015-11-18-518742b Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic
  libavutil      55.  6.100 / 55.  6.100
  libavcodec     57. 15.100 / 57. 15.100
  libavformat    57. 15.100 / 57. 15.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 15.100 /  6. 15.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mjpeg @ 0xeaa000] Changeing bps to 8
Input #0, mpjpeg, from 'http://192.168.100.233/cgi-bin/faststream.jpg?noaudio':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0xeacfe0] using SAR=1/1
[libx264 @ 0xeacfe0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0xeacfe0] profile High, level 3.1
[libx264 @ 0xeacfe0] 264 - core 148 r2 7599210 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.15.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.15.100 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
http://192.168.100.233/cgi-bin/faststream.jpg?noaudio: Invalid data found when processing input
frame=    1 fps=0.0 q=28.0 Lsize=      95kB time=00:00:00.04 bitrate=19481.6kbits/s    
video:94kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.785316%
[libx264 @ 0xeacfe0] frame I:1     Avg QP:30.73  size: 95963
[libx264 @ 0xeacfe0] mb I  I16..4:  2.2% 92.9%  4.9%
[libx264 @ 0xeacfe0] 8x8 transform intra:92.9%
[libx264 @ 0xeacfe0] coded y,uvDC,uvAC intra: 91.8% 74.8% 30.4%
[libx264 @ 0xeacfe0] i16 v,h,dc,p: 25% 35%  6% 35%
[libx264 @ 0xeacfe0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 14% 26%  6%  7%  9%  9%  7% 10%
[libx264 @ 0xeacfe0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 13% 16%  6%  7% 15%  7%  6%  8%
[libx264 @ 0xeacfe0] i8c dc,h,v,p: 56% 23% 17%  3%
[libx264 @ 0xeacfe0] kb/s:19192.60

Any ideas?

Attachments (4)

mobotix (863.9 KB ) - added by Carl Eugen Hoyos 8 years ago.
faststream.mjpg (2.3 MB ) - added by Roman Gaufman 8 years ago.
Mobotix2 - Does not work even with older FFMPEG
sample (1.0 MB ) - added by Roman Gaufman 7 years ago.
Latest sample
capture.wireshark (793.2 KB ) - added by Roman Gaufman 7 years ago.
Captured with tcpdump -s 65535 -w capture.wireshark

Change History (57)

comment:1 by Carl Eugen Hoyos, 8 years ago

Component: ffmpegundetermined
Priority: criticalimportant

Please also provide command line and console output for the working revision and please provide a stream dump.

comment:2 by Roman Gaufman, 8 years ago

If I wget, it looks like standard mjpeg:

$ head -n 4 faststream.jpg\?noaudio
--MOBOTIX_Fast_Serverpush^M
Content-type: image/jpeg^M
Content-length: 483524^M
^M

After the blank line is raw binary data for the jpeg image.

Here is output from the working old version:

$ ffmpeg -i 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?noaudio' test.mkv
ffmpeg version N-69470-g36adfa3 Copyright (c) 2000-2015 the FFmpeg developers
  built on Feb  1 2015 22:53:38 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --enable-pic --enable-shared --extra-ldflags=-ldl --enable-gpl --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --extra-cflags=-fPIC --extra-ldflags=-fPIC
  libavutil      54. 18.100 / 54. 18.100
  libavcodec     56. 21.102 / 56. 21.102
  libavformat    56. 19.100 / 56. 19.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5.  9.103 /  5.  9.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[mjpeg @ 0x13a50e0] Format mjpeg detected only with low score of 25, misdetection possible!
Input #0, mjpeg, from 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?noaudio':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 1200k tbn, 25 tbc
File 'test.mkv' already exists. Overwrite ? [y/N] y
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x13a8e40] using SAR=1/1
[libx264 @ 0x13a8e40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x13a8e40] profile High, level 3.1
[libx264 @ 0x13a8e40] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf56.19.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.21.102 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
^Came=   15 fps=5.9 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A 

comment:3 by Carl Eugen Hoyos, 8 years ago

wget should allow to get a stream dump.

by Carl Eugen Hoyos, 8 years ago

Attachment: mobotix added

comment:5 by Carl Eugen Hoyos, 8 years ago

Component: undeterminedavformat
Keywords: mjpeg mpjpeg added
Reproduced by developer: set
Status: newopen

Regression since 53e8bef25a78457e4339e353568004f03b8a2396 - may be related to ticket #4840.

comment:6 by Alex Agranovsky, 8 years ago

I wouldn't call it a regression -- a far-end bug had been previously masked by a bug in demux selection.

Without seeing full HTTP response, I can only guess why this stream worked before, but it’s an invalid mpjpeg stream. The code (both original, and following the patch) requires each body part to be accompanied by Content-Type and Content-Length, and the attached dump shows Content-Length available on the first part, but not on the subsequent ones.

My best guess is this: prior to the patch, for a variety of reasons (all of which had been patched), mjpeg demux could be selected instead of mpjpeg (the old version logs confirm it is being the case). MJPEG demux is more tolerant — it pretty much looks for jpeg header, consumes the jpeg and generates logs noise for the following unconsumed data (such as multipart headers), until it finds next jpeg in the stream. After the patch, the stream uses mpjpeg demux, based on HTTP response's Content-Type and the first correct frame headers, but later on breaks due to missing Content-Length.

comment:7 by Carl Eugen Hoyos, 8 years ago

Cc: Alex Agranovsky added

Isn't the issue that this isn't a mpjpeg stream and should not be detected as mpjpeg?

comment:8 by Alex Agranovsky, 8 years ago

Current criteria for mpjpeg selection is:

1) Content-Type of multipart/x-mixed-replace. Without full HTTP headers we can't know for sure it's present, but I'll venture to guess it's there.
2) Being able to successfully parse first part of the multipart (parse_multipart_header in mpjpegdec.c -- requirement is Content-Type of image/jpeg and presence of Content-Length)

From what I see, this stream satisfies both upon probing, later on relapsing by removing Content-Length from 2nd MIME part on.

comment:9 by Roman Gaufman, 8 years ago

Are there any disadvantages to using the more (broken stream) tolerant mjpeg demux by default? - or maybe it's worth checking the first 2 frames?

This seems to be quite common in the video surveillance world, not just with Mobotix. For example ACTi and Panasonic also. FYI I am running the latest version of the firmware for this IP camera and I will report this issue to the multiple manufacturers but I am not holding my breath :(

Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:10 by Alex Agranovsky, 8 years ago

The main disadvantage is that the remainder of the data (e.g. MIME headers) are being passed to the decoder resulting in avcodec_decode_video2 returning an error:

[ffmpeg's output] FFMPEG >> decode frame unused 68 bytes
[ffmpeg's output] FFMPEG >> No JPEG data found in image
[our output] Error decoding video - err=-1094995529 Invalid data found when processing input

The only way to make mjpeg demux work in this situation is to not check for errors from avcodec_decode_video2, or ignore those -- possible, but pretty dirty.

The best solution would be to keep mpjpeg demux, but remove the dependency on Content-Length (since it's technically not required by MIME), and do a proper multipart MIME parsing (skip the headers, consume the body until the next boundary). I could look at it, but likely not in the next week or two.

comment:11 by Roman Gaufman, 8 years ago

That makes very good sense!- it seems even using the old version can be temperamental with some of those cameras. It would be really fantastic to have this solution whenever you find some time to work on it :)

comment:12 by Alex Agranovsky, 8 years ago

I've submitted a patch proposal earlier last week, with the latest iteration being here: http://ffmpeg.org/pipermail/ffmpeg-devel/2015-November/184196.html

Hoping it'll be approved and merged in sometime this week, but at this point you can at least try and let me know whether it works in your setup (it does with a few MJPEG cameras, I have access to - including Axis cameras and gateway, as well as your packet trace)

by Roman Gaufman, 8 years ago

Attachment: faststream.mjpg added

Mobotix2 - Does not work even with older FFMPEG

comment:13 by Roman Gaufman, 8 years ago

Added a sample of a wget of a stream that even older version of ffmpeg report an invalid stream for. Any ideas why that is? - Would be fantastic to have a solution whenever you find some spare time :)

comment:14 by Carl Eugen Hoyos, 8 years ago

Resolution: fixed
Status: openclosed

Fixed by Alex Agranovsky in 79103f21990307bb8855a03d68154e1c5d197a7c
It was originally planned to keep this stream detected as mpjpeg but change the demuxer so it does not fail for this stream, it is now fixed through detection as mjpeg, if the mpjpeg demuxer is forced, it also works fine!

Last edited 8 years ago by Carl Eugen Hoyos (previous) (diff)

comment:15 by Roman Gaufman, 8 years ago

Thank you for looking into this! - Unfortunately I do not have access to this camera at present, I will test the fix when I do :)

Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:16 by Roman Gaufman, 8 years ago

Sorry, I did not have access to this camera until now. It seems the fix does not resolve the issue when opening over http.

I compiled ffmpeg from git-2016-02-05-9556446 and seeing the following:

$ ffmpeg -i 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' -y test.mkv
ffmpeg version git-2016-02-05-9556446 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic
  libavutil      55. 17.100 / 55. 17.100
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 24.100 / 57. 24.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 28.100 /  6. 28.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mjpeg @ 0x1da7100] Changing bps to 8
[mpjpeg @ 0x1da4380] Expected boundary '--' not found, instead found a line of 7 bytes
Input #0, mpjpeg, from 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x1da9a40] using SAR=1/1
[libx264 @ 0x1da9a40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x1da9a40] profile High, level 3.1
[libx264 @ 0x1da9a40] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.24.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[mpjpeg @ 0x1da4380] Expected boundary '--' not found, instead found a line of 9 bytes
http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg: Invalid data found when processing input
frame=    2 fps=0.0 q=-1.0 Lsize=     118kB time=00:00:00.08 bitrate=12094.2kbits/s speed=0.425x    
video:117kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.637398%
[libx264 @ 0x1da9a40] frame I:1     Avg QP:29.08  size:106721
[libx264 @ 0x1da9a40] frame P:1     Avg QP:31.83  size: 12769
[libx264 @ 0x1da9a40] mb I  I16..4:  1.0% 96.0%  3.0%
[libx264 @ 0x1da9a40] mb P  I16..4:  0.2%  1.2%  0.0%  P16..4: 12.3%  6.1%  5.5%  0.0%  0.0%    skip:74.8%
[libx264 @ 0x1da9a40] 8x8 transform intra:95.9% inter:87.4%
[libx264 @ 0x1da9a40] coded y,uvDC,uvAC intra: 93.5% 77.0% 27.5% inter: 15.4% 6.0% 0.5%
[libx264 @ 0x1da9a40] i16 v,h,dc,p: 32% 14%  0% 54%
[libx264 @ 0x1da9a40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 15% 26%  6%  6%  9%  8%  7% 10%
[libx264 @ 0x1da9a40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 14% 19%  8%  5% 10%  6%  4%  9%
[libx264 @ 0x1da9a40] i8c dc,h,v,p: 50% 26% 20%  4%
[libx264 @ 0x1da9a40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x1da9a40] kb/s:11949.00

However if the stream is not live, then it works:

$ wget 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg'
--2016-02-05 16:40:48--  http://admin:*password*@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg
Connecting to 192.168.100.233:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="MOBOTIX Camera User"
Connecting to 192.168.100.233:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [multipart/x-mixed-replace]
Saving to: ‘faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg’

eam.jpg?stream=full&fps=5.0&noaudio&data=v.mjpe     [                <=>                                                                                      ]   2.11M   305KB/s             ^C

$ ffmpeg -i faststream.jpg\?stream\=full\&fps\=5.0\&noaudio\&data\=v.mjpeg -y test.mkv
ffmpeg version git-2016-02-05-9556446 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic
  libavutil      55. 17.100 / 55. 17.100
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 24.100 / 57. 24.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 28.100 /  6. 28.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mjpeg @ 0x10be380] Format mjpeg detected only with low score of 25, misdetection possible!
[mjpeg @ 0x10bf480] Changing bps to 8
Input #0, mjpeg, from 'faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 1200k tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x10c24a0] using SAR=1/1
[libx264 @ 0x10c24a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x10c24a0] profile High, level 3.1
[libx264 @ 0x10c24a0] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.24.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=   18 fps=9.5 q=-1.0 Lsize=     460kB time=00:00:00.64 bitrate=5894.1kbits/s speed=0.337x    
video:460kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.188253%
[libx264 @ 0x10c24a0] frame I:1     Avg QP:24.52  size:140713
[libx264 @ 0x10c24a0] frame P:9     Avg QP:27.27  size: 28553
[libx264 @ 0x10c24a0] frame B:8     Avg QP:32.14  size:  9033
[libx264 @ 0x10c24a0] consecutive B-frames: 11.1% 88.9%  0.0%  0.0%
[libx264 @ 0x10c24a0] mb I  I16..4:  0.6% 97.2%  2.2%
[libx264 @ 0x10c24a0] mb P  I16..4:  0.1%  1.6%  0.1%  P16..4: 22.4% 15.2% 16.8%  0.0%  0.0%    skip:43.7%
[libx264 @ 0x10c24a0] mb B  I16..4:  0.1%  0.2%  0.0%  B16..8: 25.5%  4.6%  3.1%  direct: 3.2%  skip:63.3%  L0:50.6% L1:38.5% BI:10.8%
[libx264 @ 0x10c24a0] 8x8 transform intra:95.3% inter:91.0%
[libx264 @ 0x10c24a0] coded y,uvDC,uvAC intra: 90.7% 81.5% 35.4% inter: 26.6% 10.2% 1.3%
[libx264 @ 0x10c24a0] i16 v,h,dc,p: 40% 22% 16% 22%
[libx264 @ 0x10c24a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 15% 28%  5%  6%  9%  8%  7% 10%
[libx264 @ 0x10c24a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 14% 22%  5%  7% 14%  6%  4%  7%
[libx264 @ 0x10c24a0] i8c dc,h,v,p: 47% 26% 21%  5%
[libx264 @ 0x10c24a0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x10c24a0] ref P L0: 55.6%  6.3% 19.2% 18.8%
[libx264 @ 0x10c24a0] ref B L0: 78.4% 21.6%
[libx264 @ 0x10c24a0] kb/s:5221.74

Any ideas why the stream is not detected correctly when live? - Any solution?

Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:17 by Carl Eugen Hoyos, 8 years ago

Please confirm that this worked fine with 01770bfd and is broken since 53e8bef2

comment:18 by Roman Gaufman, 8 years ago

I am not able to get it working since N-69470-g36adfa3 (2015-02-01 22:53:38)

in reply to:  18 comment:19 by Carl Eugen Hoyos, 8 years ago

Replying to hackeron:

I am not able to get it working since N-69470-g36adfa3 (2015-02-01 22:53:38)

This is most unlikely the responsive commit: 36adfa32748f69bf09f49e8a0f424a79c19003fb
What did you test?

comment:20 by Roman Gaufman, 8 years ago

I tested:

  • N-69470-g36adfa3 (2015-02-01 22:53:38) - works most of the time (but not 100%)
  • git-2015-11-18-518742b - does not work at all
  • git-2016-02-05-9556446 - works for a file source, but not for a live (http) source

What else would you like me to test?

comment:21 by Carl Eugen Hoyos, 8 years ago

As said: Please confirm that this worked fine with 01770bfd and is broken since 53e8bef2

comment:22 by Roman Gaufman, 8 years ago

How do I do that?

I tried googling for ffmpeg 01770bfd (no results), tried git reset --hard 01770bfd says fatal: ambiguous argument '01770bfd'. Also git log -g --grep=01770bfd returns nothing. Please advice.

EDIT: Ah, figured it out: https://api.github.com/repos/ffmpeg/ffmpeg/commits/01770bfd -- going to test now.

Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:23 by Roman Gaufman, 8 years ago

I tried a few versions and cannot get any of them to work reading directly from the camera.

I noticed that this workaround helps with ffmpeg:

curl 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' 2>/dev/null | ffmpeg -i - -y test.mkv

So I'm not sure what is special about this web server and why ffmpeg struggles to read from it correctly. Here is the debug log reading directly:

# ffmpeg -loglevel 48 -i 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' -y test.mkv
ffmpeg version git-2016-02-07-9ee4c89 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      55. 17.100 / 55. 17.100
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 24.101 / 57. 24.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 29.100 /  6. 29.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '48'.
Reading option '-i' ... matched as input file with argument 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'test.mkv' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 48.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg.
Successfully parsed a group of options.
Opening an input file: http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg.
[http @ 0x19e0b40] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto'
[http @ 0x19e0b40] request: GET /cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg HTTP/1.1
User-Agent: Lavf/57.24.101
Accept: */*
Range: bytes=0-
Connection: close
Host: 192.168.100.233
Icy-MetaData: 1


[http @ 0x19e0b40] request: GET /cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg HTTP/1.1
User-Agent: Lavf/57.24.101
Accept: */*
Range: bytes=0-
Connection: close
Host: 192.168.100.233
Icy-MetaData: 1
Authorization: Basic YWRtaW46bWVpbnNt


[mpjpeg @ 0x19e0260] Format mpjpeg probed with size=2048 and score=75
[mpjpeg @ 0x19e0260] Before avformat_find_stream_info() pos: 0 bytes read:2975 seeks:0
[mjpeg @ 0x19e2fc0] marker=d8 avail_size_in_buf=132200
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=e0 avail_size_in_buf=132198
[mjpeg @ 0x19e2fc0] marker parser used 16 bytes (128 bits)
[mjpeg @ 0x19e2fc0] marker=fe avail_size_in_buf=132180
[mjpeg @ 0x19e2fc0] marker parser used 1912 bytes (15296 bits)
[mjpeg @ 0x19e2fc0] marker=fe avail_size_in_buf=130266
[mjpeg @ 0x19e2fc0] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0x19e2fc0] marker=db avail_size_in_buf=130029
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=db avail_size_in_buf=129960
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=c0 avail_size_in_buf=129891
[mjpeg @ 0x19e2fc0] Changing bps to 8
[mjpeg @ 0x19e2fc0] sof0: picture: 1280x480
[mjpeg @ 0x19e2fc0] component 0 2:2 id: 0 quant:0
[mjpeg @ 0x19e2fc0] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x19e2fc0] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x19e2fc0] pix fmt id 22111100
[mjpeg @ 0x19e2fc0] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x19e2fc0] marker=c4 avail_size_in_buf=129872
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=c4 avail_size_in_buf=129839
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=c4 avail_size_in_buf=129656
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=c4 avail_size_in_buf=129623
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] escaping removed 455 bytes
[mjpeg @ 0x19e2fc0] marker=da avail_size_in_buf=129440
[mjpeg @ 0x19e2fc0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e2fc0] marker=d9 avail_size_in_buf=0
[mjpeg @ 0x19e2fc0] decode frame unused 0 bytes
[http @ 0x19e0b40] request: GET /cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg HTTP/1.1
User-Agent: Lavf/57.24.101
Accept: */*
Range: bytes=263846-
Connection: close
Host: 192.168.100.233
Icy-MetaData: 1
Authorization: Basic YWRtaW46bWVpbnNt


[mpjpeg @ 0x19e0260] Expected boundary '--' not found, instead found a line of 6 bytes
[mpjpeg @ 0x19e0260] After avformat_find_stream_info() pos: 265274 bytes read:266018 seeks:0 frames:2
Input #0, mpjpeg, from 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0, 2, 1/25: Video: mjpeg, 1 reference frame, yuvj420p(pc, bt470bg/unknown/unknown, center), 1280x480 [SAR 1:1 DAR 8:3], 1/25, 25 tbr, 25 tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output file test.mkv.
Successfully parsed a group of options.
Opening an output file: test.mkv.
[file @ 0x19e8f40] Setting default whitelist 'file'
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'video_size' to value '1280x480'
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'pix_fmt' to value '12'
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'time_base' to value '1/25'
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0x19e85a0] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0x19e85a0] w:1280 h:480 pixfmt:yuvj420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2
[format @ 0x19e9b20] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21]
[format @ 0x19e9b20] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21'
[AVFilterGraph @ 0x19e4500] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x19e5c40] using mv_range_thread = 72
[libx264 @ 0x19e5c40] using SAR=1/1
[libx264 @ 0x19e5c40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x19e5c40] profile High, level 3.1
[libx264 @ 0x19e5c40] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.24.101
    Stream #0:0, 0, 1/1000: Video: h264 (libx264), -1 reference frame (H264 / 0x34363248), yuvj420p(pc, center), 1280x480 [SAR 1:1 DAR 8:3], 1/25, q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[mjpeg @ 0x19e39e0] marker=d8 avail_size_in_buf=132200
[mjpeg @ 0x19e39e0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e39e0] marker=e0 avail_size_in_buf=132198
[mjpeg @ 0x19e39e0] marker parser used 16 bytes (128 bits)
[mjpeg @ 0x19e39e0] marker=fe avail_size_in_buf=132180
[mjpeg @ 0x19e39e0] marker parser used 1912 bytes (15296 bits)
[mjpeg @ 0x19e39e0] marker=fe avail_size_in_buf=130266
[mjpeg @ 0x19e39e0] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0x19e39e0] marker=db avail_size_in_buf=130029
[mjpeg @ 0x19e39e0] index=0
[mjpeg @ 0x19e39e0] qscale[0]: 5
[mjpeg @ 0x19e39e0] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x19e39e0] marker=db avail_size_in_buf=129960
[mjpeg @ 0x19e39e0] index=1
[mjpeg @ 0x19e39e0] qscale[1]: 10
[mjpeg @ 0x19e39e0] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x19e39e0] marker=c0 avail_size_in_buf=129891
[mjpeg @ 0x19e39e0] sof0: picture: 1280x480
[mjpeg @ 0x19e39e0] component 0 2:2 id: 0 quant:0
[mjpeg @ 0x19e39e0] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x19e39e0] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x19e39e0] pix fmt id 22111100
[mjpeg @ 0x19e39e0] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129872
[mjpeg @ 0x19e39e0] class=0 index=0 nb_codes=12
[mjpeg @ 0x19e39e0] marker parser used 31 bytes (248 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129839
[mjpeg @ 0x19e39e0] class=1 index=0 nb_codes=251
[mjpeg @ 0x19e39e0] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129656
[mjpeg @ 0x19e39e0] class=0 index=1 nb_codes=12
[mjpeg @ 0x19e39e0] marker parser used 31 bytes (248 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129623
[mjpeg @ 0x19e39e0] class=1 index=1 nb_codes=251
[mjpeg @ 0x19e39e0] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0x19e39e0] escaping removed 455 bytes
[mjpeg @ 0x19e39e0] marker=da avail_size_in_buf=129440
[mjpeg @ 0x19e39e0] component: 0
[mjpeg @ 0x19e39e0] component: 1
[mjpeg @ 0x19e39e0] component: 2
[mjpeg @ 0x19e39e0] marker parser used 128984 bytes (1031872 bits)
[mjpeg @ 0x19e39e0] marker=d9 avail_size_in_buf=0
[mjpeg @ 0x19e39e0] decode frame unused 0 bytes
Clipping frame in rate conversion by 0.000008
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[mjpeg @ 0x19e39e0] marker=d8 avail_size_in_buf=132175
[mjpeg @ 0x19e39e0] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x19e39e0] marker=e0 avail_size_in_buf=132173
[mjpeg @ 0x19e39e0] marker parser used 16 bytes (128 bits)
[mjpeg @ 0x19e39e0] marker=fe avail_size_in_buf=132155
[mjpeg @ 0x19e39e0] marker parser used 1912 bytes (15296 bits)
[mjpeg @ 0x19e39e0] marker=fe avail_size_in_buf=130241
[mjpeg @ 0x19e39e0] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0x19e39e0] marker=db avail_size_in_buf=130004
[mjpeg @ 0x19e39e0] index=0
[mjpeg @ 0x19e39e0] qscale[0]: 5
[mjpeg @ 0x19e39e0] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x19e39e0] marker=db avail_size_in_buf=129935
[mjpeg @ 0x19e39e0] index=1
[mjpeg @ 0x19e39e0] qscale[1]: 10
[mjpeg @ 0x19e39e0] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x19e39e0] marker=c0 avail_size_in_buf=129866
[mjpeg @ 0x19e39e0] sof0: picture: 1280x480
[mjpeg @ 0x19e39e0] component 0 2:2 id: 0 quant:0
[mjpeg @ 0x19e39e0] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x19e39e0] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x19e39e0] pix fmt id 22111100
[mjpeg @ 0x19e39e0] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129847
[mjpeg @ 0x19e39e0] class=0 index=0 nb_codes=12
[mjpeg @ 0x19e39e0] marker parser used 31 bytes (248 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129814
[mjpeg @ 0x19e39e0] class=1 index=0 nb_codes=251
[mjpeg @ 0x19e39e0] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129631
[mjpeg @ 0x19e39e0] class=0 index=1 nb_codes=12
[mjpeg @ 0x19e39e0] marker parser used 31 bytes (248 bits)
[mjpeg @ 0x19e39e0] marker=c4 avail_size_in_buf=129598
[mjpeg @ 0x19e39e0] class=1 index=1 nb_codes=251
[mjpeg @ 0x19e39e0] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0x19e39e0] escaping removed 509 bytes
[mjpeg @ 0x19e39e0] marker=da avail_size_in_buf=129415
[mjpeg @ 0x19e39e0] component: 0
[mjpeg @ 0x19e39e0] component: 1
[mjpeg @ 0x19e39e0] component: 2
[mjpeg @ 0x19e39e0] marker parser used 128905 bytes (1031233 bits)
[mjpeg @ 0x19e39e0] marker=d9 avail_size_in_buf=2
[mjpeg @ 0x19e39e0] decode frame unused 2 bytes
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[mpjpeg @ 0x19e0260] Expected boundary '--' not found, instead found a line of 5 bytes
http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg: Invalid data found when processing input
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    Last message repeated 1 times
[output stream 0:0 @ 0x19e8d40] EOF on sink link output stream 0:0:default.
No more output streams to write to, finishing.
[libx264 @ 0x19e5c40] frame=   0 QP=29.17 NAL=3 Slice:I Poc:0   I:2400 P:0    SKIP:0    size=108902 bytes
[matroska @ 0x19e3ea0] Writing block at offset 721, size 109588, pts 0, dts 0, duration 40, keyframe 1
[libx264 @ 0x19e5c40] frame=   1 QP=32.05 NAL=2 Slice:P Poc:2   I:25   P:284  SKIP:2091 size=4266 bytes
[matroska @ 0x19e3ea0] Writing block at offset 110318, size 4266, pts 40, dts 40, duration 40, keyframe 0
[matroska @ 0x19e3ea0] end duration = 80
[matroska @ 0x19e3ea0] stream 0 end duration = 80
frame=    2 fps=0.0 q=-1.0 Lsize=     112kB time=00:00:00.08 bitrate=11462.0kbits/s speed=0.199x    
video:111kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.672791%
Input file #0 (http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg):
  Input stream #0:0 (video): 2 packets read (264379 bytes); 2 frames decoded; 
  Total: 2 packets (264379 bytes) demuxed
Output file #0 (test.mkv):
  Output stream #0:0 (video): 2 frames encoded; 2 packets muxed (113854 bytes); 
  Total: 2 packets (113854 bytes) muxed
2 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x19eabe0] Statistics: 25 seeks, 24 writeouts
[libx264 @ 0x19e5c40] frame I:1     Avg QP:29.17  size:108902
[libx264 @ 0x19e5c40] frame P:1     Avg QP:32.05  size:  4266
[libx264 @ 0x19e5c40] mb I  I16..4:  1.0% 93.9%  5.2%
[libx264 @ 0x19e5c40] mb P  I16..4:  0.0%  1.0%  0.0%  P16..4:  8.8%  1.5%  1.6%  0.0%  0.0%    skip:87.1%
[libx264 @ 0x19e5c40] 8x8 transform intra:93.9% inter:90.0%
[libx264 @ 0x19e5c40] coded y,uvDC,uvAC intra: 88.8% 74.1% 24.6% inter: 7.5% 2.7% 0.2%
[libx264 @ 0x19e5c40] i16 v,h,dc,p: 21% 42%  0% 38%
[libx264 @ 0x19e5c40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 16% 22%  5%  6%  9%  9%  7% 10%
[libx264 @ 0x19e5c40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 18% 15%  9%  5%  7%  8%  5%  8%
[libx264 @ 0x19e5c40] i8c dc,h,v,p: 54% 24% 19%  3%
[libx264 @ 0x19e5c40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x19e5c40] kb/s:11316.80
[AVIOContext @ 0x19e2700] Statistics: 266018 bytes read, 0 seeks

When I use the workaround, it records correctly:

# curl 'http://admin:meinsm@192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' 2>/dev/null | ffmpeg -i - -y test.mkv
ffmpeg version git-2016-02-07-9ee4c89 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      55. 17.100 / 55. 17.100
  libavcodec     57. 24.101 / 57. 24.101
  libavformat    57. 24.101 / 57. 24.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 29.100 /  6. 29.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mjpeg @ 0x885240] Format mjpeg detected only with low score of 25, misdetection possible!
[mjpeg @ 0x8862a0] Changing bps to 8
Input #0, mjpeg, from 'pipe:':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 1200k tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x889060] using SAR=1/1
[libx264 @ 0x889060] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x889060] profile High, level 3.1
[libx264 @ 0x889060] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.24.101
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.24.101 libx264
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
^C[mjpeg @ 0x886920] overread 8       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
[mjpeg @ 0x886920] EOI missing, emulating
frame=   29 fps=2.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   29 fps=2.0 q=-1.0 Lsize=     437kB time=00:00:01.08 bitrate=3316.9kbits/s speed=0.0741x    
video:436kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.215521%
[libx264 @ 0x889060] frame I:1     Avg QP:23.24  size:153162
[libx264 @ 0x889060] frame P:10    Avg QP:26.05  size: 23409
[libx264 @ 0x889060] frame B:18    Avg QP:32.25  size:  3272
[libx264 @ 0x889060] consecutive B-frames:  6.9%  0.0% 93.1%  0.0%
[libx264 @ 0x889060] mb I  I16..4:  0.8% 96.9%  2.3%
[libx264 @ 0x889060] mb P  I16..4:  0.1%  0.8%  0.0%  P16..4: 31.8% 17.8% 20.9%  0.0%  0.0%    skip:28.6%
[libx264 @ 0x889060] mb B  I16..4:  0.0%  0.2%  0.0%  B16..8: 42.0%  3.2%  1.9%  direct: 1.8%  skip:50.9%  L0:47.8% L1:48.7% BI: 3.5%
[libx264 @ 0x889060] 8x8 transform intra:96.1% inter:96.4%
[libx264 @ 0x889060] coded y,uvDC,uvAC intra: 86.7% 76.6% 35.8% inter: 21.7% 7.6% 0.9%
[libx264 @ 0x889060] i16 v,h,dc,p: 28% 50%  2% 20%
[libx264 @ 0x889060] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 17% 26%  5%  6%  8%  8%  6% 10%
[libx264 @ 0x889060] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 16% 17%  8%  6%  6%  6%  6%  8%
[libx264 @ 0x889060] i8c dc,h,v,p: 47% 27% 21%  5%
[libx264 @ 0x889060] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x889060] ref P L0: 54.8%  2.8% 16.4% 26.0%
[libx264 @ 0x889060] ref B L0: 77.6% 13.9%  8.5%
[libx264 @ 0x889060] ref B L1: 79.0% 21.0%
[libx264 @ 0x889060] kb/s:3076.81
Exiting normally, received signal 2.

comment:24 by Carl Eugen Hoyos, 8 years ago

Did you test 01770bfd and 53e8bef2 ?

comment:25 by Roman Gaufman, 8 years ago

Just tested 01770bfd - different error:

# ffmpeg -i 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' -y test.mkv
ffmpeg version N-75462-g01770bf Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      55.  2.100 / 55.  2.100
  libavcodec     57.  3.100 / 57.  3.100
  libavformat    57.  2.100 / 57.  2.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6.  6.100 /  6.  6.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
[mpjpeg @ 0x2486240] Could not find codec parameters for stream 0 (Video: mjpeg, none(bt470bg/unknown/unknown)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg: could not find codec parameters
Input #0, mpjpeg, from 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, none(bt470bg/unknown/unknown), 25 tbr, 25 tbn, 25 tbc
Output #0, matroska, to 'test.mkv':
Output file #0 does not contain any stream
#
Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:26 by Roman Gaufman, 8 years ago

And now with 53e8bef2 - another different error:

# ffmpeg -i 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' -y test.mkv
ffmpeg version N-75463-g53e8bef Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      55.  2.100 / 55.  2.100
  libavcodec     57.  3.100 / 57.  3.100
  libavformat    57.  2.100 / 57.  2.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6.  6.100 /  6.  6.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mpjpeg, from 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1280x480 [SAR 1:1 DAR 8:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x11be600] using SAR=1/1
[libx264 @ 0x11be600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x11be600] profile High, level 3.1
[libx264 @ 0x11be600] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.2.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 1280x480 [SAR 1:1 DAR 8:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.3.100 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg: Invalid data found when processing input
frame=    1 fps=0.0 q=28.0 Lsize=      96kB time=00:00:00.04 bitrate=19713.0kbits/s    
video:96kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.771905%
[libx264 @ 0x11be600] frame I:1     Avg QP:30.97  size: 97124
[libx264 @ 0x11be600] mb I  I16..4:  2.1% 92.2%  5.7%
[libx264 @ 0x11be600] 8x8 transform intra:92.2%
[libx264 @ 0x11be600] coded y,uvDC,uvAC intra: 90.6% 69.1% 21.7%
[libx264 @ 0x11be600] i16 v,h,dc,p: 27% 31%  6% 35%
[libx264 @ 0x11be600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 15% 25%  6%  7%  9%  9%  6% 10%
[libx264 @ 0x11be600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 14% 19%  7%  6% 13%  6%  6%  7%
[libx264 @ 0x11be600] i8c dc,h,v,p: 58% 23% 17%  3%
[libx264 @ 0x11be600] kb/s:19424.80
#
Last edited 8 years ago by Roman Gaufman (previous) (diff)

comment:27 by Roman Gaufman, 8 years ago

For comparison, with the working version 36adfa32748f69bf09f49e8a0f424a79c19003fb (2015-02-01)

# ffmpeg -loglevel 48 -i 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg' -y test.mkv
ffmpeg version N-69470-g36adfa3 Copyright (c) 2000-2015 the FFmpeg developers
  built on Feb  7 2016 14:11:56 with gcc 5.2.1 (Ubuntu 5.2.1-22ubuntu2) 20151010
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      54. 18.100 / 54. 18.100
  libavcodec     56. 21.102 / 56. 21.102
  libavformat    56. 19.100 / 56. 19.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5.  9.103 /  5.  9.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '48'.
Reading option '-i' ... matched as input file with argument 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'test.mkv' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 48.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg.
Successfully parsed a group of options.
Opening an input file: http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg.
[http @ 0xa93e40] request: GET /cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg HTTP/1.1
User-Agent: Lavf/56.19.100
Accept: */*
Range: bytes=0-
Connection: close
Host: 192.168.100.233
Icy-MetaData: 1


[http @ 0xa93e40] header='HTTP/1.0 200 OK'
[http @ 0xa93e40] http_code=200
[http @ 0xa93e40] header='Content-type: multipart/x-mixed-replace; boundary="MOBOTIX_Fast_Serverpush"'
[http @ 0xa93e40] header=''
[mjpeg @ 0xa94820] Format mjpeg detected only with low score of 25, misdetection possible!
[mjpeg @ 0xa94820] Before avformat_find_stream_info() pos: 0 bytes read:1055119 seeks:0
[mjpeg @ 0xa96c20] marker=d8 avail_size_in_buf=134243
[mjpeg @ 0xa96c20] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa96c20] marker=e0 avail_size_in_buf=134241
[mjpeg @ 0xa96c20] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa96c20] marker=fe avail_size_in_buf=134223
[mjpeg @ 0xa96c20] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa96c20] marker=fe avail_size_in_buf=132311
[mjpeg @ 0xa96c20] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa96c20] marker=db avail_size_in_buf=132074
[mjpeg @ 0xa96c20] index=0
[mjpeg @ 0xa96c20] qscale[0]: 5
[mjpeg @ 0xa96c20] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa96c20] marker=db avail_size_in_buf=132005
[mjpeg @ 0xa96c20] index=1
[mjpeg @ 0xa96c20] qscale[1]: 10
[mjpeg @ 0xa96c20] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa96c20] marker=c0 avail_size_in_buf=131936
[mjpeg @ 0xa96c20] sof0: picture: 1280x480
[mjpeg @ 0xa96c20] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa96c20] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa96c20] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa96c20] pix fmt id 22111100
[mjpeg @ 0xa96c20] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa96c20] marker=c4 avail_size_in_buf=131917
[mjpeg @ 0xa96c20] class=0 index=0 nb_codes=12
[mjpeg @ 0xa96c20] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa96c20] marker=c4 avail_size_in_buf=131884
[mjpeg @ 0xa96c20] class=1 index=0 nb_codes=251
[mjpeg @ 0xa96c20] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa96c20] marker=c4 avail_size_in_buf=131701
[mjpeg @ 0xa96c20] class=0 index=1 nb_codes=12
[mjpeg @ 0xa96c20] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa96c20] marker=c4 avail_size_in_buf=131668
[mjpeg @ 0xa96c20] class=1 index=1 nb_codes=251
[mjpeg @ 0xa96c20] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa96c20] escaping removed 567 bytes
[mjpeg @ 0xa96c20] marker=da avail_size_in_buf=131485
[mjpeg @ 0xa96c20] component: 0
[mjpeg @ 0xa96c20] component: 1
[mjpeg @ 0xa96c20] component: 2
[mjpeg @ 0xa96c20] marker parser used 130917 bytes (1047332 bits)
[mjpeg @ 0xa96c20] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa96c20] decode frame unused 57 bytes
[mjpeg @ 0xa94820] All info found
[mjpeg @ 0xa94820] After avformat_find_stream_info() pos: 135168 bytes read:1055119 seeks:0 frames:1
Input #0, mjpeg, from 'http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0, 1, 1/1200000: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown, center), 1280x480 [SAR 1:1 DAR 8:3], 1/25, 25 tbr, 1200k tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output file test.mkv.
Successfully parsed a group of options.
Opening an output file: test.mkv.
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'video_size' to value '1280x480'
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'pix_fmt' to value '12'
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'time_base' to value '1/1200000'
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0xa9c7c0] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0xa9c7c0] w:1280 h:480 pixfmt:yuvj420p tb:1/1200000 fr:25/1 sar:1/1 sws_param:flags=2
[format @ 0xa944c0] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16]
[format @ 0xa944c0] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16'
[AVFilterGraph @ 0xa7fba0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0xa993e0] using mv_range_thread = 72
[libx264 @ 0xa993e0] using SAR=1/1
[libx264 @ 0xa993e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0xa993e0] profile High, level 3.1
[libx264 @ 0xa993e0] 264 - core 148 r2 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf56.19.100
    Stream #0:0, 0, 1/1000: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc, center), 1280x480 [SAR 1:1 DAR 8:3], 1/25, q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.21.102 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134243
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134241
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134223
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132311
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132074
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132005
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=131936
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131917
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131884
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131701
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131668
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 567 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131485
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 130917 bytes (1047332 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
Cliping frame in rate conversion by 0.000008
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134382
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134380
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134362
[mjpeg @ 0xa97700] marker parser used 1909 bytes (15272 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132451
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132214
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132145
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132076
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132057
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132024
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131841
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131808
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 572 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131625
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131052 bytes (1048410 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134652
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134650
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134632
[mjpeg @ 0xa97700] marker parser used 1909 bytes (15272 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132721
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132484
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132415
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132346
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132327
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132294
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132111
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132078
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 552 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131895
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131342 bytes (1050731 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134674
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134672
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134654
[mjpeg @ 0xa97700] marker parser used 1909 bytes (15272 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132743
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132506
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132437
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132368
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132349
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132316
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132133
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132100
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 535 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131917
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131381 bytes (1051048 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134818
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134816
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134798
[mjpeg @ 0xa97700] marker parser used 1909 bytes (15272 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132887
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132650
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132581
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132512
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132493
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132460
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132277
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132244
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 548 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132061
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131512 bytes (1052093 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134469
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134467
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134449
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132537
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132300
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132231
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132162
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132143
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132110
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131927
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=131894
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 568 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131711
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131142 bytes (1049130 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134844
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134842
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134824
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132912
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132675
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132606
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132537
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132518
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132485
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132302
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132269
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 556 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132086
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131529 bytes (1052230 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134819
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134817
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134799
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132887
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132650
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132581
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132512
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132493
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132460
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132277
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132244
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 552 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132061
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131508 bytes (1052063 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=135592
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=135590
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=135572
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=133660
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133423
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133354
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=133285
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133266
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133233
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133050
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133017
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 546 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132834
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 132287 bytes (1058291 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=    9 fps=0.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134818
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134816
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134798
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132886
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132649
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132580
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132511
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132492
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132459
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132276
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132243
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 539 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132060
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131520 bytes (1052153 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   10 fps=5.1 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=135336
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=135334
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=135316
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=133404
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133167
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133098
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=133029
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133010
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132977
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132794
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132761
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 563 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132578
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 132014 bytes (1056110 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   11 fps=3.8 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=135209
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=135207
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=135189
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=133277
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133040
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132971
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132902
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132883
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132850
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132667
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132634
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 549 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132451
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131901 bytes (1055202 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   12 fps=3.2 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134737
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134735
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134717
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132805
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132568
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132499
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132430
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132411
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132378
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132195
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132162
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 544 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=131979
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131434 bytes (1051466 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   13 fps=2.8 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134861
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134859
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134841
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=132929
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132692
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132623
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132554
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132535
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132502
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132319
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132286
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 525 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132103
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131577 bytes (1052614 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   14 fps=2.4 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=134986
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=134984
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=134966
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=133054
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132817
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=132748
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=132679
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132660
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132627
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132444
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132411
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 563 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132228
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 131664 bytes (1053309 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   15 fps=2.2 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[mjpeg @ 0xa97700] marker=d8 avail_size_in_buf=135476
[mjpeg @ 0xa97700] marker parser used 0 bytes (0 bits)
[mjpeg @ 0xa97700] marker=e0 avail_size_in_buf=135474
[mjpeg @ 0xa97700] marker parser used 16 bytes (128 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=135456
[mjpeg @ 0xa97700] marker parser used 1910 bytes (15280 bits)
[mjpeg @ 0xa97700] marker=fe avail_size_in_buf=133544
[mjpeg @ 0xa97700] marker parser used 235 bytes (1880 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133307
[mjpeg @ 0xa97700] index=0
[mjpeg @ 0xa97700] qscale[0]: 5
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=db avail_size_in_buf=133238
[mjpeg @ 0xa97700] index=1
[mjpeg @ 0xa97700] qscale[1]: 10
[mjpeg @ 0xa97700] marker parser used 67 bytes (536 bits)
[mjpeg @ 0xa97700] marker=c0 avail_size_in_buf=133169
[mjpeg @ 0xa97700] sof0: picture: 1280x480
[mjpeg @ 0xa97700] component 0 2:2 id: 0 quant:0
[mjpeg @ 0xa97700] component 1 1:1 id: 1 quant:1
[mjpeg @ 0xa97700] component 2 1:1 id: 2 quant:1
[mjpeg @ 0xa97700] pix fmt id 22111100
[mjpeg @ 0xa97700] marker parser used 17 bytes (136 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133150
[mjpeg @ 0xa97700] class=0 index=0 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=133117
[mjpeg @ 0xa97700] class=1 index=0 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132934
[mjpeg @ 0xa97700] class=0 index=1 nb_codes=12
[mjpeg @ 0xa97700] marker parser used 31 bytes (248 bits)
[mjpeg @ 0xa97700] marker=c4 avail_size_in_buf=132901
[mjpeg @ 0xa97700] class=1 index=1 nb_codes=251
[mjpeg @ 0xa97700] marker parser used 181 bytes (1448 bits)
[mjpeg @ 0xa97700] escaping removed 540 bytes
[mjpeg @ 0xa97700] marker=da avail_size_in_buf=132718
[mjpeg @ 0xa97700] component: 0
[mjpeg @ 0xa97700] component: 1
[mjpeg @ 0xa97700] component: 2
[mjpeg @ 0xa97700] marker parser used 132177 bytes (1057410 bits)
[mjpeg @ 0xa97700] marker=d9 avail_size_in_buf=57
[mjpeg @ 0xa97700] decode frame unused 57 bytes
frame=   16 fps=2.0 q=0.0 size=       1kB time=00:00:00.00 bitrate=N/A    
[libx264 @ 0xa993e0] frame=   0 QP=26.43 NAL=3 Slice:I Poc:0   I:2400 P:0    SKIP:0    size=131985 bytes
[matroska @ 0xa98500] Writing block at offset 653, size 132671, pts 80, dts 0, duration 40, flags 128
[libx264 @ 0xa993e0] frame=   1 QP=26.76 NAL=2 Slice:P Poc:4   I:330  P:1889 SKIP:181  size=62632 bytes
[matroska @ 0xa98500] Writing block at offset 133333, size 62632, pts 160, dts 40, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   2 QP=31.96 NAL=0 Slice:B Poc:2   I:36   P:989  SKIP:1084 size=26712 bytes
[matroska @ 0xa98500] Writing block at offset 195973, size 26712, pts 120, dts 80, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   3 QP=26.77 NAL=2 Slice:P Poc:8   I:222  P:1999 SKIP:179  size=58665 bytes
[matroska @ 0xa98500] Writing block at offset 222693, size 58665, pts 240, dts 120, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   4 QP=31.70 NAL=0 Slice:B Poc:6   I:54   P:1067 SKIP:889  size=28293 bytes
[matroska @ 0xa98500] Writing block at offset 281366, size 28293, pts 200, dts 160, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   5 QP=27.01 NAL=2 Slice:P Poc:12  I:185  P:2005 SKIP:210  size=52517 bytes
[matroska @ 0xa98500] Writing block at offset 309667, size 52517, pts 320, dts 200, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   6 QP=31.56 NAL=0 Slice:B Poc:10  I:42   P:1047 SKIP:922  size=25105 bytes
[matroska @ 0xa98500] Writing block at offset 362192, size 25105, pts 280, dts 240, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   7 QP=27.25 NAL=2 Slice:P Poc:16  I:151  P:1978 SKIP:271  size=47548 bytes
[matroska @ 0xa98500] Writing block at offset 387305, size 47548, pts 400, dts 280, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   8 QP=31.70 NAL=0 Slice:B Poc:14  I:38   P:1074 SKIP:931  size=24449 bytes
[matroska @ 0xa98500] Writing block at offset 434861, size 24449, pts 360, dts 320, duration 40, flags 0
[libx264 @ 0xa993e0] frame=   9 QP=27.74 NAL=2 Slice:P Poc:20  I:151  P:1890 SKIP:359  size=45380 bytes
[matroska @ 0xa98500] Writing block at offset 459318, size 45380, pts 480, dts 360, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  10 QP=31.55 NAL=0 Slice:B Poc:18  I:23   P:1133 SKIP:894  size=23193 bytes
[matroska @ 0xa98500] Writing block at offset 504706, size 23193, pts 440, dts 400, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  11 QP=28.37 NAL=2 Slice:P Poc:24  I:141  P:1782 SKIP:477  size=40580 bytes
[matroska @ 0xa98500] Writing block at offset 527907, size 40580, pts 560, dts 440, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  12 QP=31.69 NAL=0 Slice:B Poc:22  I:31   P:1043 SKIP:1000 size=22431 bytes
[matroska @ 0xa98500] Writing block at offset 568495, size 22431, pts 520, dts 480, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  13 QP=29.91 NAL=2 Slice:P Poc:28  I:87   P:1463 SKIP:850  size=31208 bytes
[matroska @ 0xa98500] Writing block at offset 590934, size 31208, pts 640, dts 520, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  14 QP=31.60 NAL=0 Slice:B Poc:26  I:30   P:954  SKIP:1109 size=22513 bytes
[matroska @ 0xa98500] Writing block at offset 622150, size 22513, pts 600, dts 560, duration 40, flags 0
[libx264 @ 0xa993e0] frame=  15 QP=31.44 NAL=2 Slice:P Poc:30  I:116  P:1154 SKIP:1130 size=26118 bytes
[matroska @ 0xa98500] Writing block at offset 644671, size 26118, pts 680, dts 600, duration 40, flags 0
[matroska @ 0xa98500] end duration = 720
frame=   16 fps=1.5 q=-1.0 Lsize=     655kB time=00:00:00.56 bitrate=9583.2kbits/s    
video:654kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.121042%
Input file #0 (http://192.168.100.233/cgi-bin/faststream.jpg?stream=full&noaudio&v.mjpeg):
  Input stream #0:0 (video): 16 packets read (2158027 bytes); 16 frames decoded; 
  Total: 16 packets (2158027 bytes) demuxed
Output file #0 (test.mkv):
  Output stream #0:0 (video): 16 frames encoded; 16 packets muxed (670015 bytes); 
  Total: 16 packets (670015 bytes) muxed
16 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0xa9c6c0] Statistics: 24 seeks, 44 writeouts
[libx264 @ 0xa993e0] frame I:1     Avg QP:26.43  size:131985
[libx264 @ 0xa993e0] frame P:8     Avg QP:28.16  size: 45581
[libx264 @ 0xa993e0] frame B:7     Avg QP:31.68  size: 24671
[libx264 @ 0xa993e0] consecutive B-frames: 12.5% 87.5%  0.0%  0.0%
[libx264 @ 0xa993e0] mb I  I16..4:  2.0% 94.2%  3.8%
[libx264 @ 0xa993e0] mb P  I16..4:  0.3%  6.4%  0.4%  P16..4: 26.8% 22.0% 25.0%  0.0%  0.0%    skip:19.0%
[libx264 @ 0xa993e0] mb B  I16..4:  0.1%  1.0%  0.4%  B16..8: 24.5% 15.8%  9.6%  direct: 7.9%  skip:40.6%  L0:46.4% L1:33.8% BI:19.9%
[libx264 @ 0xa993e0] 8x8 transform intra:90.9% inter:90.1%
[libx264 @ 0xa993e0] coded y,uvDC,uvAC intra: 89.3% 77.7% 31.1% inter: 43.6% 14.6% 1.5%
[libx264 @ 0xa993e0] i16 v,h,dc,p: 31% 34% 12% 23%
[libx264 @ 0xa993e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 14% 27%  5%  7%  9%  9%  6% 10%
[libx264 @ 0xa993e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 13% 18%  6% 10% 13% 10%  6%  9%
[libx264 @ 0xa993e0] i8c dc,h,v,p: 56% 22% 17%  4%
[libx264 @ 0xa993e0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0xa993e0] ref P L0: 52.1%  4.7% 27.5% 15.7%
[libx264 @ 0xa993e0] ref B L0: 61.1% 38.9%
[libx264 @ 0xa993e0] kb/s:8366.61
[AVIOContext @ 0xa94180] Statistics: 2162371 bytes read, 0 seeks
Received signal 2: terminating.
#

comment:28 by Roman Gaufman, 8 years ago

Resolution: fixed
Status: closedreopened

in reply to:  26 comment:29 by Carl Eugen Hoyos, 8 years ago

Replying to hackeron:

And now with 53e8bef2 - another different error:

Please run git bisect with 53e8bef2 and 36adfa32 as starting points.

comment:30 by Alex Agranovsky, 8 years ago

Have you ran it with -f mjpeg?

As to the facts:

  • this camera produces an mpjpeg stream
  • this stream was previously detected as mjpeg, and that worked, albeit generating a ton of warnings (for the envelope multipart data)
  • for some reason, ffmpeg, even with the most recent changes, doesn't like this mpjpeg stream (though, as I've personally and hackeron have tested, it's just fine with the wget's output)
  • to resolve this I suggest either providing us with a packet capture (full tcpdump/wireshark output, containing both the request and the response), *or* making this camera available for us to test against

in reply to:  30 comment:31 by Carl Eugen Hoyos, 8 years ago

Replying to w3sip:

Have you ran it with -f mjpeg?

Imo, the whole point of this ticket is to make it work without additional options...

  • to resolve this I suggest either providing us with a packet capture (full tcpdump/wireshark output, containing both the request and the response), *or* making this camera available for us to test against

To make sure, please explain how this should be done by hackeron;-)

comment:32 by Roman Gaufman, 8 years ago

Hi there, indeed the point of the ticket is you can't specify "-f mjpeg" if you run from OpenCV for instance. I am opening the source like this: cv2.VideoCapture('http://192.168....')

I will try a packet capture as indeed the issue is seems to be with that camera's specific web server. If I put the file on my own nginx server, I am able to open without issues. For now I have switched to an older version of FFMPEG that does not experience this issue.

comment:33 by Carl Eugen Hoyos, 8 years ago

Please run git bisect if you are interested to get this issue fixed.

comment:34 by Roman Gaufman, 8 years ago

I'm looking at git bisect documentation and I don't know what to do. It says to run tests on each revision? - Please advice.

comment:35 by Carl Eugen Hoyos, 8 years ago

$ make distclean
$ git bisect start
$ git checkout 36adfa32
$ ./configure && make ffmpeg
 [now test to confirm it does work]
$ make distclean && git bisect good
$ git checkout 53e8bef2
$ ./configure && make ffmpeg
 [now test to confirm it does not work]
$ make distclean && git bisect bad
 [here starts the loop]
$ ./configure && make ffmpeg
 [test and pass either "good" or "bad" as option to the next command]
$ make distclean && git bisect good/bad
 [either it says "first bad revision is" or to back to "here starts the loop"]

This takes between fifteen and twenty minutes here depending on how fast your computer compiles. If compilation takes ages for you, I can help you create a configure line just for the bisect that speeds compilation up.

Last edited 8 years ago by Carl Eugen Hoyos (previous) (diff)

comment:36 by Roman Gaufman, 8 years ago

Ah, fantastic, thank you for that! - The server is in Africa and is currently offline, I will do this as soon as it is back online, that is most helpful.

in reply to:  32 comment:37 by Alex Agranovsky, 8 years ago

Replying to hackeron:

as indeed the issue is seems to be with that camera's specific web server. If I put the file on my own nginx server, I am able to open without issues.

It looks like Mobotix provides a MIME boundary enclosed in quotes - http://developer.mobotix.com/docs/mxpeg_frame.html. Uncommon, but valid according to RFC 2046. Other people had ran into this before - https://code.google.com/archive/p/aforge/issues/157

Having a full packet capture (including HTTP request/response) will help in both confirming this, fixing and verifying the fix. Please provide a packet capture (refer to http://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/, if unfamiliar with Wireshark).

comment:38 by Alex Agranovsky, 8 years ago

Actually, just realized that by default we're not running a full match on the boundary, and just are looking for '--'. So it's still pretty important to have the packet capture in order to fully understand what's going on.

comment:39 by Carl Eugen Hoyos, 8 years ago

Resolution: fixed
Status: reopenedclosed

Should be fixed by Alex Agranovsky in 09b8e97ab62d4c83cf892cfdd49e2c28a9a41eba
Please test and report back!

comment:40 by Alex Agranovsky, 8 years ago

I've submitted 3 mpjpeg patches last night. 2 had been applied so far. This one (09b8e) isn't likely to fix things, since it is only effective for Mobotix when 'strict_mime_boundary' option is set, which isn't the default.

However, I would recommend testing once all three patches are applied, and if still broken, please provide a packet capture. Thanks!

comment:41 by Roman Gaufman, 8 years ago

Sorry I was travelling. I am back now, are all 3 patches applied now?

in reply to:  30 comment:42 by qqqzhouhk, 7 years ago

Replying to w3sip:

Have you ran it with -f mjpeg?

As to the facts:

  • this camera produces an mpjpeg stream
  • this stream was previously detected as mjpeg, and that worked, albeit generating a ton of warnings (for the envelope multipart data)
  • for some reason, ffmpeg, even with the most recent changes, doesn't like this mpjpeg stream (though, as I've personally and hackeron have tested, it's just fine with the wget's output)
  • to resolve this I suggest either providing us with a packet capture (full tcpdump/wireshark output, containing both the request and the response), *or* making this camera available for us to test against

sorry, but what is mpjpeg stream? Do you mean mjpeg? I can't find any thing about mpjpeg. Hope for your reply, thank you.

comment:43 by Roman Gaufman, 7 years ago

I tried latest ffmpeg from git but it is still not able to read the mjpeg from this Mobotix cameras:

$ ffmpeg -i 'http://admin:meinsm@192.168.100.232/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg' -y test.mkv
ffmpeg version N-83119-g0ba0187 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --enable-libx264 --enable-libfdk_aac --enable-gpl --enable-nonfree --enable-shared --enable-pic --enable-openssl
  libavutil      55. 43.100 / 55. 43.100
  libavcodec     57. 72.100 / 57. 72.100
  libavformat    57. 62.100 / 57. 62.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 69.100 /  6. 69.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, mpjpeg, from 'http://admin:meinsm@192.168.100.232/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 640x480 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
No pixel format specified, yuvj420p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x1761920] using SAR=1/1
[libx264 @ 0x1761920] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x1761920] profile High, level 3.0
[libx264 @ 0x1761920] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf57.62.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj420p(pc), 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.72.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[mpjpeg @ 0x175c0e0] Expected boundary '--' not found, instead found a line of 12 bytes
http://admin:meinsm@192.168.100.232/cgi-bin/faststream.jpg?stream=full&fps=5.0&noaudio&data=v.mjpeg: Invalid data found when processing input
frame=    2 fps=0.6 q=-1.0 Lsize=      64kB time=00:00:00.04 bitrate=12827.9kbits/s speed=0.0119x    
video:63kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.224056%
[libx264 @ 0x1761920] frame I:1     Avg QP:29.29  size: 58649
[libx264 @ 0x1761920] frame P:1     Avg QP:31.26  size:  5624
[libx264 @ 0x1761920] mb I  I16..4:  0.4% 98.2%  1.3%
[libx264 @ 0x1761920] mb P  I16..4:  0.0%  6.8%  0.0%  P16..4:  2.2%  2.0%  0.8%  0.0%  0.0%    skip:88.1%
[libx264 @ 0x1761920] 8x8 transform intra:98.4% inter:93.3%
[libx264 @ 0x1761920] coded y,uvDC,uvAC intra: 99.9% 2.5% 2.4% inter: 4.8% 0.1% 0.0%
[libx264 @ 0x1761920] i16 v,h,dc,p: 100%  0%  0%  0%
[libx264 @ 0x1761920] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  7% 30% 39%  3%  3%  3%  4%  4%  7%
[libx264 @ 0x1761920] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 18% 18%  3%  4%  5%  6%  7%  4%
[libx264 @ 0x1761920] i8c dc,h,v,p: 98%  1%  1%  0%
[libx264 @ 0x1761920] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x1761920] kb/s:6427.30
$

I've attached a sample.

Any ideas? - I've added a tcpdump capture.

Last edited 7 years ago by Roman Gaufman (previous) (diff)

by Roman Gaufman, 7 years ago

Attachment: sample added

Latest sample

comment:44 by Roman Gaufman, 7 years ago

Resolution: fixed
Status: closedreopened

by Roman Gaufman, 7 years ago

Attachment: capture.wireshark added

Captured with tcpdump -s 65535 -w capture.wireshark

comment:45 by Carl Eugen Hoyos, 7 years ago

Please run git bisect and tell us which commit originally introduced the issue.

comment:46 by Roman Gaufman, 7 years ago

It used to work intermittently because of the use of the deprecated "mjpeg demux" on 36adfa32748f69bf09f49e8a0f424a79c19003fb but was still unreliable and doesn't appear to be a viable solution.

The problem is reading from the camera's webserver and cannot be reproduced reading from my own web server serving the file (this affects all versions).

I've attached a TCP dump to try to help diagnose the source of the problem.

Last edited 7 years ago by Roman Gaufman (previous) (diff)

comment:47 by smbz, 5 years ago

This is still an issue with the latest from git (d6b1248...), though with an Arecont Vision rather than Mobotix camera. The problem occurs in mpjpeg_read_packet() at the avio_seek() call when locating the boundary marker:

            do {
                if (!memcmp(start, mpjpeg->searchstr, mpjpeg->searchstr_len)) {
                    // got the boundary! rewind the stream                                                                                                    
                    avio_seek(s->pb, -len, SEEK_CUR);       // Silently fails, does not affect stream state
                    pkt->size -= len;
                    return pkt->size;
                }
                len--;
                start++;
            } while (len >= mpjpeg->searchstr_len);

At the point when avio_seek() is called, there is not enough data in the buffer to seek back by the correct amount, so the call fails.

There is a call to ffio_ensure_seekback() which looks like it's meant to ensure that it is always possible to seek back by this amount, but from what I can tell this will work only at the beginning of the stream (i.e. for probing or headers) and not mid-stream. Is anyone able to confirm that?

in reply to:  47 ; comment:48 by barsnick, 5 years ago

Replying to smbz:

At the point when avio_seek() is called, there is not enough data in the buffer to seek back by the correct amount, so the call fails.

I ran across this issue thanks to this question on the ffmpeg-user mailing list, which also references a Mobotix camera:
http://ffmpeg.org/pipermail/ffmpeg-user/2019-May/044412.html

I found a public stream and could reproduce the behavior.

I did an independent analysis of the issue, and came to exactly the same conclusion: ffmpeg is overreading one of the frames, due to failure to seek back.

This can be confirmed by evaluating the avio_seek() return value and adding a warning on failure. The warning will pop up right when ffmpeg terminates due to the parsing error.

There is a call to ffio_ensure_seekback() which looks like it's meant to ensure that it is always possible to seek back by this amount, but from what I can tell this will work only at the beginning of the stream (i.e. for probing or headers) and not mid-stream. Is anyone able to confirm that?

My take is that ffio_ensure_seekback(s->pb, read_chunk), where it's currently placed, only makes sure that the first chunk is rewindable. This needs to be done for every subsequent chunk fetch as well. I dropped (or rather moved) that line and instead changed the while condition:

        while ((ret = ffio_ensure_seekback(s->pb, read_chunk - remaining) >= 0) && (ret = av_append_packet(s->pb, pkt, read_chunk - remaining)) >= 0) {

And suddenly, decoding the stream works perfectly (at least as far as I expect from any mpjpeg stream).

I can propose a patch to ffmpeg-devel, but if anyone wants to confirm and commit my fix before that, I'll happily take the credit. ;-)

in reply to:  48 comment:49 by Carl Eugen Hoyos, 4 years ago

Replying to barsnick:

Replying to smbz:

There is a call to ffio_ensure_seekback() which looks like it's meant to ensure that it is always possible to seek back by this amount, but from what I can tell this will work only at the beginning of the stream (i.e. for probing or headers) and not mid-stream. Is anyone able to confirm that?

My take is that ffio_ensure_seekback(s->pb, read_chunk), where it's currently placed, only makes sure that the first chunk is rewindable. This needs to be done for every subsequent chunk fetch as well. I dropped (or rather moved) that line and instead changed the while condition:

        while ((ret = ffio_ensure_seekback(s->pb, read_chunk - remaining) >= 0) && (ret = av_append_packet(s->pb, pkt, read_chunk - remaining)) >= 0) {

And suddenly, decoding the stream works perfectly (at least as far as I expect from any mpjpeg stream).

This change also fixes ticket #5921.

comment:50 by Elon Musk, 4 years ago

Please send patch.

in reply to:  50 comment:51 by barsnick, 4 years ago

comment:52 by Elon Musk, 3 years ago

Resolution: fixed
Status: reopenedclosed

comment:53 by Carl Eugen Hoyos, 3 years ago

Note: See TracTickets for help on using tickets.