[FFmpeg-trac] #8390(undetermined:new): 10bits grayscale DPX not correctly transcoded

FFmpeg trac at avcodec.org
Wed Nov 20 16:58:23 EET 2019


#8390: 10bits grayscale DPX not correctly transcoded
-------------------------------------+-------------------------------------
             Reporter:  yohann       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  4.2
  undetermined                       |
             Keywords:  film scan    |               Blocked By:
  lasergraphics dpx grayscale        |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 I am trying to transcode a 10 bit grayscale DPX image sequence to FFV1.
 The picture's output is distorted, pixel rows are skewed/shifted even
 though no transcoding error is reported.

 It might be an issue with how the DPX are interpreted as the issue also
 occurs if I try to output the picture to any other video codec/still image
 format.

 The image sequence is made by a Lasergraphics Director film scanner.
 Tried on macOS High Sierra and Arch Linux with v4.2.1 of ffmpeg. A
 coworker has also been able to reproduce the phenomenon on Windows 10.

 Command line for FFV1 output:
 {{{
 % ffmpeg -v 9 -loglevel 99 -report \
 -i "20731272-DPX (2560x1920)-0086711.dpx" \
 -c:v ffv1 -level 3 -g 1 -slicecrc 1 -slices 16 output.mkv
 }}}

 Log for FFV1 output (attached file):
 {{{
 ffmpeg started on 2019-11-20 at 14:29:34
 Report written to "ffmpeg-20191120-142934.log"
 ffmpeg version n4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 9.2.0 (GCC)
   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-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
 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 '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Reading option '-i' ... matched as input url with argument '20731272-DPX
 (2560x1920)-0086711.dpx'.
 Reading option '-c:v' ... matched as option 'c' (codec name) with argument
 'ffv1'.
 Reading option '-level' ... matched as AVOption 'level' with argument '3'.
 Reading option '-g' ... matched as AVOption 'g' with argument '1'.
 Reading option '-slicecrc' ... matched as AVOption 'slicecrc' with
 argument '1'.
 Reading option '-slices' ... matched as AVOption 'slices' with argument
 '16'.
 Reading option 'output.mkv' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Applying option report (generate a report) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input url 20731272-DPX
 (2560x1920)-0086711.dpx.
 Successfully parsed a group of options.
 Opening an input file: 20731272-DPX (2560x1920)-0086711.dpx.
 [NULL @ 0x556ec08935c0] Opening '20731272-DPX (2560x1920)-0086711.dpx' for
 reading
 [file @ 0x556ec0894040] Setting default whitelist 'file,crypto'
 Probing image2 score:50 size:2048
 Probing dpx_pipe score:51 size:2048
 [dpx_pipe @ 0x556ec08935c0] Format dpx_pipe probed with size=2048 and
 score=51
 [dpx_pipe @ 0x556ec08935c0] Before avformat_find_stream_info() pos: 0
 bytes read:32768 seeks:0 nb_streams:1
 [dpx_pipe @ 0x556ec08935c0] Probe buffer size limit of 5000000 bytes
 reached
 [dpx_pipe @ 0x556ec08935c0] Stream #0: not enough frames to estimate rate;
 consider increasing probesize
 [dpx_pipe @ 0x556ec08935c0] stream 0: start_time: -368934881474191040.000
 duration: -368934881474191040.000
 [dpx_pipe @ 0x556ec08935c0] format: start_time: -9223372036854.775
 duration: -9223372036854.775 bitrate=0 kb/s
 [dpx_pipe @ 0x556ec08935c0] After avformat_find_stream_info() pos: 6561792
 bytes read:6561792 seeks:0 frames:1
 Input #0, dpx_pipe, from '20731272-DPX (2560x1920)-0086711.dpx':
   Duration: N/A, bitrate: N/A
     Stream #0:0, 1, 1/25: Video: dpx, 1 reference frame, gray10le,
 2560x1920, 0/1, 24 tbr, 25 tbn, 24 tbc
 Successfully opened the file.
 Parsing a group of options: output url output.mkv.
 Applying option c:v (codec name) with argument ffv1.
 Successfully parsed a group of options.
 Opening an output file: output.mkv.
 [file @ 0x556ec089b0c0] Setting default whitelist 'file,crypto'
 Successfully opened the file.
 Stream mapping:
   Stream #0:0 -> #0:0 (dpx (native) -> ffv1 (native))
 Press [q] to stop, [?] for help
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 detected 40 logical cores
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'video_size' to
 value '2560x1920'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'pix_fmt' to
 value '171'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'time_base' to
 value '1/25'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'pixel_aspect' to
 value '0/1'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'sws_param' to
 value 'flags=2'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] Setting 'frame_rate' to
 value '24/1'
 [graph 0 input from stream 0:0 @ 0x556ec1255880] w:2560 h:1920
 pixfmt:gray10le tb:1/25 fr:24/1 sar:0/1 sws_param:flags=2
 [format @ 0x556ec12560c0] Setting 'pix_fmts' to value
 'yuv420p|yuva420p|yuva422p|yuv444p|yuva444p|yuv440p|yuv422p|yuv411p|yuv410p|bgr0|bgra|yuv420p16le|yuv422p16le|yuv444p16le|yuv444p9le|yuv422p9le|yuv420p9le|yuv420p10le|yuv422p10le|yuv444p10le|yuv420p12le|yuv422p12le|yuv444p12le|yuva444p16le|yuva422p16le|yuva420p16le|yuva444p10le|yuva422p10le|yuva420p10le|yuva444p9le|yuva422p9le|yuva420p9le|gray16le|gray|gbrp9le|gbrp10le|gbrp12le|gbrp14le|gbrap10le|gbrap12le|ya8|gray10le|gray12le|gbrp16le|rgb48le|gbrap16le|rgba64le|gray9le|yuv420p14le|yuv422p14le|yuv444p14le|yuv440p10le|yuv440p12le'
 [AVFilterGraph @ 0x556ec0893340] query_formats: 4 queried, 3 merged, 0
 already done, 0 delayed
 [ffv1 @ 0x556ec0899ac0] bits_per_raw_sample > 8, forcing range coder
 [matroska @ 0x556ec0897fc0] get_metadata_duration returned: 0
 Output #0, matroska, to 'output.mkv':
   Metadata:
     encoder         : Lavf58.29.100
     Stream #0:0, 0, 1/1000: Video: ffv1, 1 reference frame (FFV1 /
 0x31564646), gray10le, 2560x1920, 0/1, q=2-31, 200 kb/s, 24 fps, 1k tbn,
 24 tbc
     Metadata:
       encoder         : Lavc58.54.100 ffv1
 Clipping frame in rate conversion by 0.000008
 [matroska @ 0x556ec0897fc0] Writing block of size 3345085 with pts 0, dts
 0, duration 42 at relative offset 9 in cluster at offset 895. TrackNumber
 1, keyframe 1
 [out_0_0 @ 0x556ec1256840] EOF on sink link out_0_0:default.
 No more output streams to write to, finishing.
 [matroska @ 0x556ec0897fc0] end duration = 42
 [matroska @ 0x556ec0897fc0] stream 0 end duration = 42
 frame=    1 fps=0.0 q=-0.0 Lsize=    3268kB time=00:00:00.00
 bitrate=26768272.0kbits/s speed=0.00199x
 video:3267kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.028370%
 Input file #0 (20731272-DPX (2560x1920)-0086711.dpx):
   Input stream #0:0 (video): 1 packets read (6561792 bytes); 1 frames
 decoded;
   Total: 1 packets (6561792 bytes) demuxed
 Output file #0 (output.mkv):
   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (3345085
 bytes);
   Total: 1 packets (3345085 bytes) muxed
 1 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x556ec089b440] Statistics: 8 seeks, 19 writeouts
 [AVIOContext @ 0x556ec089c500] Statistics: 6561792 bytes read, 0 seeks
 }}}

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


More information about the FFmpeg-trac mailing list