[FFmpeg-trac] #4407(undetermined:new): Blackmagic/video signal to v4l2 loopback device has hickups

FFmpeg trac at avcodec.org
Mon Mar 30 13:23:24 CEST 2015


#4407: Blackmagic/video signal to v4l2 loopback device has hickups
-------------------------------------+-------------------------------------
             Reporter:  thecas       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  v4l2,        |               Blocked By:
  v4l2loopback, decklink             |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I try to use a v4l2 loopback device for playback my Blackmagic Decklink
 card but the video stalls multiple times per second.
 When I playback a video to the device {{{ffmpeg -re -i
 bbb_sunflower_1080p_30fps_normal.mp4 -f v4l2 /dev/video0}}} it looks fine.
 Also when I record my bmd device to a video file {{{ffmpeg -f decklink -i
 DeckLink\ SDI\ \(1\)@8 output.mkv}}} I get a great result. But the
 combination BMD->V4l2loopback seems lagging.

 I tried to play with -rtbufsize, -vsync, bmdtools and piping through the
 matroska container but none seem the solution.

 How to reproduce:
 {{{
 $ ffmpeg -v 9 -loglevel 99 -f decklink -i DeckLink\ SDI\ \(1\)@8 -f v4l2
 /dev/video0
 ffmpeg version N-71087-g589a604 Copyright (c) 2000-2015 the FFmpeg
 developers
   built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
   configuration: --enable-libxcb --enable-libxcb-shm --disable-libxcb-
 xfixes --disable-libxcb-shape --enable-decklink --enable-gpl --enable-
 libx264 --extra-cflags='-I /home/pluxbox/blackmagic/sdk/Linux/include'
 --extra-libs=-ldl
   libavutil      54. 20.101 / 54. 20.101
   libavcodec     56. 30.100 / 56. 30.100
   libavformat    56. 26.101 / 56. 26.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 13.101 /  5. 13.101
   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 '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'decklink'.
 Reading option '-i' ... matched as input file with argument 'DeckLink SDI
 (1)@8'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'v4l2'.
 Reading option '/dev/video0' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input file DeckLink SDI (1)@8.
 Applying option f (force format) with argument decklink.
 Successfully parsed a group of options.
 Opening an input file: DeckLink SDI (1)@8.
 [decklink @ 0x2b1d140] Found Decklink mode 1920 x 1080 with rate 30.00
 [decklink @ 0x2b1d140] Frame received (#1) - No input signal detected -
 Frames dropped 1
 [decklink @ 0x2b1d140] All info found
 Guessed Channel Layout for  Input Stream #0.0 : stereo
 Input #0, decklink, from 'DeckLink SDI (1)@8':
   Duration: N/A, start: 0.000000, bitrate: 1536 kb/s
     Stream #0:0, 1, 1/1000000: Audio: pcm_s16le, 48000 Hz, 2 channels,
 s16, 1536 kb/s
     Stream #0:1, 1, 1/1000000: Video: rawvideo, 1 reference frame (UYVY /
 0x59565955), uyvy422, 1920x1080, 1/30, -5 kb/s, 30 tbr, 1000k tbn, 30 tbc
 Successfully opened the file.
 Parsing a group of options: output file /dev/video0.
 Applying option f (force format) with argument v4l2.
 Successfully parsed a group of options.
 Opening an output file: /dev/video0.
 Successfully opened the file.
 detected 4 logical cores
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'video_size' to value
 '1920x1080'
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'pix_fmt' to value
 '17'
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'time_base' to value
 '1/1000000'
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'pixel_aspect' to
 value '0/1'
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'sws_param' to value
 'flags=2'
 [graph 0 input from stream 0:1 @ 0x2b08420] Setting 'frame_rate' to value
 '30000/1000'
 [graph 0 input from stream 0:1 @ 0x2b08420] w:1920 h:1080 pixfmt:uyvy422
 tb:1/1000000 fr:30000/1000 sar:0/1 sws_param:flags=2
 [AVFilterGraph @ 0x2b128c0] query_formats: 3 queried, 2 merged, 0 already
 done, 0 delayed
 Output #0, v4l2, to '/dev/video0':
   Metadata:
     encoder         : Lavf56.26.101
     Stream #0:0, 0, 1/30: Video: rawvideo, 1 reference frame (UYVY /
 0x59565955), uyvy422, 1920x1080, 1/30, q=2-31, 200 kb/s, 30 fps, 30 tbn,
 30 tbc
     Metadata:
       encoder         : Lavc56.30.100 rawvideo
 Stream mapping:
   Stream #0:1 -> #0:0 (rawvideo (native) -> rawvideo (native))
 Press [q] to stop, [?] for help
 Cliping frame in rate conversion by 0.000008
 [decklink @ 0x2b1d140] Frame received (#2) - Input returned - Frames
 dropped 2
 *** 16 dup!
 Cliping frame in rate conversion by 0.0000230:00.60 bitrate=N/A dup=16
 drop=0
     Last message repeated 3 times
 Cliping frame in rate conversion by 0.0000230:01.03 bitrate=N/A dup=16
 drop=0
     Last message repeated 2 times
 [decklink @ 0x2b1d140] Frame received (#25) - Valid (4147200B) - QSize
 0.006203MB
 Cliping frame in rate conversion by 0.0000230:01.33 bitrate=N/A dup=16
 drop=0
     Last message repeated 4 times
 Cliping frame in rate conversion by 0.0000230:01.86 bitrate=N/A dup=16
 drop=0
 [decklink @ 0x2b1d140] Frame received (#50) - Valid (4147200B) - QSize
 23.774483MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 4 times
 Cliping frame in rate conversion by 0.0000230:02.43 bitrate=N/A dup=16
 drop=0
     Last message repeated 4 times
 [decklink @ 0x2b1d140] Frame received (#75) - Valid (4147200B) - QSize
 3.967583MB
 Cliping frame in rate conversion by 0.0000230:02.96 bitrate=N/A dup=16
 drop=0
     Last message repeated 5 times
 Cliping frame in rate conversion by 0.0000230:03.50 bitrate=N/A dup=16
 drop=0
 [decklink @ 0x2b1d140] Frame received (#100) - Valid (4147200B) - QSize
 23.774483MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 3 times
 Cliping frame in rate conversion by 0.0000230:04.06 bitrate=N/A dup=16
 drop=0
     Last message repeated 5 times
 [decklink @ 0x2b1d140] Frame received (#125) - Valid (4147200B) - QSize
 7.922760MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 4 times
 Cliping frame in rate conversion by 0.0000230:05.16 bitrate=N/A dup=16
 drop=0
     Last message repeated 1 times
 [decklink @ 0x2b1d140] Frame received (#150) - Valid (4147200B) - QSize
 23.774483MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 3 times
 Cliping frame in rate conversion by 0.0000230:05.70 bitrate=N/A dup=16
 drop=0
     Last message repeated 4 times
 [decklink @ 0x2b1d140] Frame received (#175) - Valid (4147200B) - QSize
 7.928963MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 5 times
 Cliping frame in rate conversion by 0.0000230:06.80 bitrate=N/A dup=16
 drop=0
 [decklink @ 0x2b1d140] Frame received (#200) - Valid (4147200B) - QSize
 27.735863MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 3 times
 Cliping frame in rate conversion by 0.0000230:07.33 bitrate=N/A dup=16
 drop=0
     Last message repeated 4 times
 Cliping frame in rate conversion by 0.0000230:07.86 bitrate=N/A dup=16
 drop=0
 [decklink @ 0x2b1d140] Frame received (#225) - Valid (4147200B) - QSize
 11.890343MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 4 times
 Cliping frame in rate conversion by 0.0000230:08.43 bitrate=N/A dup=16
 drop=0
     Last message repeated 1 times
 [decklink @ 0x2b1d140] Frame received (#250) - Valid (4147200B) - QSize
 27.735863MB
 Cliping frame in rate conversion by 0.000023
     Last message repeated 2 times
 Cliping frame in rate conversion by 0.0000230:08.96 bitrate=N/A dup=16
 drop=0
     Last message repeated 5 times
 frame=  286 fps= 29 q=0.0 Lsize=N/A time=00:00:09.53 bitrate=N/A dup=16
 drop=0
 video:1158300kB audio:0kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: unknown
 Input file #0 (DeckLink SDI (1)@8):
   Input stream #0:0 (audio): 269 packets read (1721600 bytes);
   Input stream #0:1 (video): 270 packets read (1119744000 bytes); 270
 frames decoded;
   Total: 539 packets (1121465600 bytes) demuxed
 Output file #0 (/dev/video0):
   Output stream #0:0 (video): 286 frames encoded; 286 packets muxed
 (1186099200 bytes);
   Total: 286 packets (1186099200 bytes) muxed
 270 frames successfully decoded, 0 decoding errors
 Received signal 2: terminating.

 }}}
 The dub frames seems stable after initialization, the load of the computer
 is 0.3 and the memory is 90% free.


 When I playback my /dev/video0 with mpv `mpv tv://` I get the following
 errors (the seems sync with the frame freeze):
 Non-monotonic video pts: 0.000000 <= 0.00000
 --no-correct-pts with mpv omits the errors but not solve the problem.

 Hopefully someone has some ideas.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4407>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list