[FFmpeg-trac] #3823(avformat:closed): RTP encoding of MJPEG from Trendnet TV-IP651WI (IP cam) gives undecodable stream
FFmpeg
trac at avcodec.org
Tue Dec 8 02:24:24 CET 2015
#3823: RTP encoding of MJPEG from Trendnet TV-IP651WI (IP cam) gives undecodable
stream
------------------------------------+------------------------------------
Reporter: Krieger | Owner:
Type: defect | Status: closed
Priority: normal | Component: avformat
Version: git-master | Resolution: invalid
Keywords: mjpeg rtp | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Comment (by andrey.utkin):
Working on a patch to support large JPEGs over RTP:
https://github.com/bluecherrydvr/ffmpeg/commit/0f15de1bb10d8afa6c0fcbaa5eb1368e731a7b70
This patch needs to be applied to test the source in orig.mkv.
So, when it is used this way:
{{{ffmpeg -re -i /tmp/orig.mkv -c copy -f rtp rtp://127.0.0.1:7777
-loglevel debug | tee /tmp/sdp}}}
with
{{{ffplay -i /tmp/sdp}}}
The encoding side shows no errors, but ffplay gives decoding errors:
{{{
ffplay version N-77132-g0f15de1 Copyright (c) 2003-2015 the FFmpeg
developers
built with gcc 4.9.3 (Gentoo 4.9.3 p1.2, pie-0.6.3)
configuration: --enable-debug=3 --disable-optimizations --extra-
cflags='-O0 -g3 -ggdb3' --enable-pic --disable-stripping --enable-openssl
--enable-protocol=file --enable-protocol=pipe --enable-protocol=http
--enable-protocol=https --enable-muxer=matroska --enable-muxer=mjpeg
--enable-muxer=rtp --enable-muxer=mp4 --enable-muxer=rtsp --enable-
muxer=rawvideo --enable-muxer=data --enable-demuxer=rtsp --enable-
demuxer=matroska --enable-demuxer=mjpeg --enable-decoder=h264 --enable-
decoder=mpeg4 --enable-decoder=mjpeg --enable-parser=h264 --enable-
parser=mpeg4video --enable-parser=mjpeg --enable-encoder=mjpeg --enable-
encoder=mpeg4 --enable-encoder=rawvideo --enable-encoder=libx264 --enable-
libx264 --enable-gpl --enable-nonfree --enable-libfreetype --enable-
libopenh264 --enable-libvpx --enable-encoder=libopenh264
libavutil 55. 10.100 / 55. 10.100
libavcodec 57. 17.100 / 57. 17.100
libavformat 57. 19.100 / 57. 19.100
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 20.100 / 6. 20.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mjpeg @ 0x7fe9b4000e60] Changing bps to 8 0KB sq= 0B f=0/0
[sdp @ 0x7fe9b4001760] max delay reached. need to consume packet0
[mjpeg @ 0x7fe9b4000e60] RTP: missed 38 packets
Input #0, sdp, from '/tmp/s':q= 0KB vq= 0KB sq= 0B f=0/0
Metadata:
title : No Name
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown),
2048x1536 [SAR 1:1 DAR 4:3], 14.17 tbr, 90k tbn, 90k tbc
[mjpeg @ 0x7fe9b4000e60] mjpeg_decode_dc: bad vlc: 0:0 (0x7fe9b4008fc0)
[mjpeg @ 0x7fe9b4000e60] error dc
[mjpeg @ 0x7fe9b4000e60] error y=0 x=16
[swscaler @ 0x7fe9ac61b260] deprecated pixel format used, make sure you
did set range correctly
[mjpeg @ 0x7fe9b4000e60] mjpeg_decode_dc: bad vlc: 0:0 (0x7fe9b4008fc0)
[mjpeg @ 0x7fe9b4000e60] error dc
[mjpeg @ 0x7fe9b4000e60] error y=0 x=16
[mjpeg @ 0x7fe9b4000e60] mjpeg_decode_dc: bad vlc: 0:0 (0x7fe9b4008fc0)
[mjpeg @ 0x7fe9b4000e60] error dc
[mjpeg @ 0x7fe9b4000e60] error y=0 x=16
[mjpeg @ 0x7fe9b4000e60] mjpeg_decode_dc: bad vlc: 0:0 (0x7fe9b4008fc0)
[mjpeg @ 0x7fe9b4000e60] error dc
[mjpeg @ 0x7fe9b4000e60] error y=0 x=16
}}}
When I try synthetic yuvj422p source with {{{ffmpeg -f lavfi -i
testsrc,format=pix_fmts=yuvj422p -c mjpeg -f rtp rtp://127.0.0.1:7777
-loglevel debug}}} it says {{{Only 1x1 chroma blocks are supported}}}.
Debugger shows the checked scaling factor values are 0x18 for Cb and Cr
components in this case, and they are 0x17 here when ffmpeg does rtp
encoding from ready mjpeg stream in above case, despite these bytes are
0x11 in original file. I find this strange and I mention this detail just
for your information.
Is rtp encoding of yuvj422p MJPEG supposed to fail here? Or is it related
not to "pixel format", but to another property of stream?
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3823#comment:17>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list