I'm trying to stream video from endoscope camera YPC99 on linux PC using the WiFi connection. From what I have found so far the camera is using IP It supports RTSP protocol on port 7070 (the only one opened port). The DESCRIBE reports that the stream should be JPEG video (RTP/AVP 26)

DESCRIBE rtsp:// RTSP/1.0
CSec: 2

RTSP/1.0 200 OK
Content-Base: rtsp://
Content-Type: application/sdp
Content-Length: 122

o=- 1 1 IN IP4
t=0 0
c=IN IP4
m=video 0 RTP/AVP 26

VLC is showing black screen. ffmpeg also can't detect the correct codec to be used:

$ ffmpeg -i rtsp://  -vcodec copy /tmp/abc.mp4
ffmpeg version n4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.3.0 (Arch Linux 9.3.0-1)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[mjpeg @ 0x55ef344d0900] dqt: 0 quant value
    Last message repeated 58 times
[rtsp @ 0x55ef344ccfc0] decoding for stream 0 failed
[rtsp @ 0x55ef344ccfc0] 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
Input #0, rtsp, from 'rtsp://':
    title           : Test
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, none(bt470bg/unknown/unknown), 90k tbr, 90k tbn, 90k tbc
[mp4 @ 0x55ef344fcc40] dimensions not set
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
    Last message repeated 1 times

I have a wireshark dump of some seconds of streaming (while was trying to play it with VLC). From what I have read each frame should start with FFD8 and should end with FFD9. There is no single package containing FFD8 but there are many containing FFD9, so I can't find out the beginning of the frame to see if some headers there could help me.

There is andorid and iPhone apps to watch the stream from the camera. The app is called YCamera. I have downloaded the andorid app (https://apkpure.com/ycamera/cn.com.buildwin.YCamera) and have de-compile it. In the resources directory there are the following libs:

  • libijkffmpeg.so
  • libijkplayer.so
  • libijksdl.so

It seems that libijkffmpeg.so is the one processing the stream (the string bt470bg is found only inside it). According my research (for this one I'm not sure if I'm looking where I should) it's part of ijkplayer player that should be based on ffmpeg but strangely ffmpeg can't recognize the stream.

I know that my question is too open but any suggestions how can I keep progressing?

The final goal is to be able to make this stream public. For this purpose it will be best if ffmpeg or vlc can recognize the stream.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.