[FFmpeg-user] Playing an uncompressed raw interlaced RTP video stream

villastar at yahoo.com.au villastar at yahoo.com.au
Wed Sep 26 15:15:16 EEST 2018


Hi, 

I am unable to get ffplay to play back a raw uncompressed interlaced
video from an RTP stream, coming from a camera feed. The camera
broadcasts the SDP using SAP, which I have been able to extract into
a local file. The contents of the SDP:

  v=0
  o=- 340496 340496 IN IP4 192.168.204.40
  s=Camera 2
  c=IN IP4 239.192.1.40/15
  t=0 0
  m=video 5004 RTP/AVP 97
  a=rtpmap:97 raw/90000
  a=fmtp:97 sampling=YCbCr-4:2:2; width=720; height=576; depth=8; colorimetry=BT601-5; interlace
  a=framerate:25

I am using the following command to play it back with ffplay:

  ffplay -protocol_whitelist file,rtp,udp -strict -2  -f sdp \
    camera2.sdp

This resulting image showed two almost identical images laid out
vertically. In order to show the results I am getting, I have also
recorded a small sample with the following:

  ffmpeg -protocol_whitelist file,rtp,udp -strict -2 -f sdp -i \
    camera2.sdp -t 5 -vf "scale=240x192,idet" camera2_sample.mp4

Note that I applied the scaling only to keep the file size small - the
resulting mp4 file is close to what I was seeing in ffplay. The file 
has been uploaded to my Dropbox at:

  https://www.dropbox.com/s/6kgfsie7rgfnoe7/camera2_sample.mp4?dl=0

The tail end of the output from FFmpeg at the end of the recording, 
including the output from idet:

  video:171kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.121141%
  [Parsed_idet_1 @ 000001d6ff69f4c0] Repeated Fields: Neither:  217 Top:    0 Bottom:    0
  [Parsed_idet_1 @ 000001d6ff69f4c0] Single frame detection: TFF:    0 BFF:    0 Progressive:  217 Undetermined:    0
  [Parsed_idet_1 @ 000001d6ff69f4c0] Multi frame detection: TFF:    0 BFF:    0 Progressive:  217 Undetermined:    0
  [libx264 @ 000001d680000500] frame I:2    Avg QP:18.69  size:  1068
  [libx264 @ 000001d680000500] frame P:127  Avg QP:28.83  size:  750
  [libx264 @ 000001d680000500] frame B:121  Avg QP:30.57  size:  638
  [libx264 @ 000001d680000500] consecutive B-frames: 10.0% 76.0%  1.2% 12.8%
  [libx264 @ 000001d680000500] mb I  I16..4: 77.2%  1.7% 21.1%
  [libx264 @ 000001d680000500] mb P  I16..4:  2.6%  6.1%  2.8%  P16..4: 13.2%  6.0%  2.8%  0.0%  0.0%    skip:66.5%
  [libx264 @ 000001d680000500] mb B  I16..4: 28.9%  2.5%  4.3%  B16..8:  7.2%  2.6%  0.6%  direct: 1.6%  skip:52.3%  L0:22.3% L1:76.0% BI: 1.7%
  [libx264 @ 000001d680000500] 8x8 transform intra:18.1% inter:34.7%
  [libx264 @ 000001d680000500] coded y,uvDC,uvAC intra: 18.1% 21.9% 11.9% inter: 8.7% 10.7% 2.7%
  [libx264 @ 000001d680000500] i16 v,h,dc,p: 69% 29%  1%  0%
  [libx264 @ 000001d680000500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  1% 29% 67%  0%  1%  1%  1%  0%  1%
  [libx264 @ 000001d680000500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  7% 46% 21%  4%  4%  3%  5%  3%  5%
  [libx264 @ 000001d680000500] i8c dc,h,v,p: 66% 31%  1%  1%
  [libx264 @ 000001d680000500] Weighted P-Frames: Y:0.0% UV:0.0%
  [libx264 @ 000001d680000500] ref P L0: 45.1% 14.7% 31.6%  8.6%
  [libx264 @ 000001d680000500] ref B L0: 57.7% 42.3%
  [libx264 @ 000001d680000500] kb/s:279.35

I was suspecting that FFmpeg was not treating the interlacing 
correctly. Is there an option that I should be specifying? I have 
tried playing back with the yadif and tinterlace with similar 
results. The commands I used were:

  ffplay -protocol_whitelist file,rtp,udp -strict -2  -vf yadif=mode=1 \
    -f sdp camera2.sdp

and

  ffplay -protocol_whitelist file,rtp,udp -strict -2 -vf tinterlace=6 \
    -f sdp camera.sdp


More information about the ffmpeg-user mailing list