[FFmpeg-user] FFV1/rgb48le issue: ffmpeg automatically chooses gbrp16le to decode an rgb48le FFV1 file.

Kieran O'Leary kieran.oleary at irishfilm.ie
Wed Aug 17 18:47:14 EEST 2016


Hi,

Thank you so much for adding rgb48le support. It will be of great use and importance to audiovisual archives.

When I transcode an rgb48le TIFF to FFV1, the resulting ffv1 file is listed as having a pixel format of gbr16le when I decode it. I can specify a pix_fmt of rgb48le, but it would be ideal if rgb48le was selected, if the ffv1 is indeed rgb48le.  I've included several terminal outputs to show that even though gbrp16le is chosen to decode the ffv1 transcoded file, when the ffv1 file is transcoded to a rgb48le TIFF, the framemd5s match the original TIFF.

I'm attaching the following terminal outputs and the source file is here: https://www.dropbox.com/s/ji08myxt0ke4hy1/16bitrgb48le.tiff?dl=0

1. 16 bit (12 bits plus padding) rgb48le TIFF converted to ffv1 level 3 plus framemd5 - ed19dd966d5ed2e5c6de438949a81eaf
2. framemd5 of ffv1.mkv without specififying rgb48le - 596d6723629140e8ac7b8f818b275f89
3. transcode from ffv1.mkv to tiff  (rgb48le auto selected)
4. framemd5 of 'restored' tiff (rgb48le) -  ed19dd966d5ed2e5c6de438949a81eaf

1. 16 bit (12 bits plus padding) rgb48le TIFF converted to ffv1 level 3 plus framemd5 - ed19dd966d5ed2e5c6de438949a81eaf

ifi-mac-pro:ifiscripts admin$ ffmpeg -i /Volumes/Stardom/kieran_tests/16bitrgb48le.tiff -c:v ffv1 -level 3 -strict -2 /Volumes/Stardom/kieran_tests/ffv1.mkv -f framemd5 -
ffmpeg version N-43982-g16ea0bc Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.3.0 (clang-703.0.31)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-vda
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 51.100 / 57. 53.100
  libavformat    57. 46.100 / 57. 46.101
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 50.100 /  6. 52.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
[tiff_pipe @ 0x7fad84010600] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, tiff_pipe, from '/Volumes/Stardom/kieran_tests/16bitrgb48le.tiff':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: tiff, rgb48le, 2350x1800, 25 tbr, 25 tbn, 25 tbc
File '/Volumes/Stardom/kieran_tests/ffv1.mkv' already exists. Overwrite ? [y/N] y
[ffv1 @ 0x7fad84802400] bits_per_raw_sample > 8, forcing range coder
[matroska @ 0x7fad84800c00] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
[framemd5 @ 0x7fad85008000] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
#format: frame checksums
#version: 2
#hash: MD5
#software: Lavf57.46.101
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 2350x1800
#sar 0: 0/1
#stream#, dts,        pts, duration,     size, hash
Output #0, matroska, to '/Volumes/Stardom/kieran_tests/ffv1.mkv':
  Metadata:
    encoder         : Lavf57.46.101
    Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), rgb48le, 2350x1800, q=2-31, 200 kb/s, 25 fps, 1k tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.51.100 ffv1
Output #1, framemd5, to 'pipe:':
  Metadata:
    encoder         : Lavf57.46.101
    Stream #1:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le, 2350x1800, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.51.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (tiff (native) -> ffv1 (native))
  Stream #0:0 -> #1:0 (tiff (native) -> rawvideo (native))
Press [q] to stop, [?] for help
0,          0,          0,        1, 25380000, ed19dd966d5ed2e5c6de438949a81eaf
frame=    1 fps=0.0 q=-0.0 q=-0.0 size=    9815kB time=00:00:00.04 bitrate=20101frame=    1 fps=0.0 q=-0.0 Lq=-0.0 size=    9815kB time=00:00:00.04 bitrate=2010154.0kbits/s speed=0.0726x
video:34599kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

2. framemd5 of ffv1.mkv without specififying rgb48le - 596d6723629140e8ac7b8f818b275f89


ifi-mac-pro:ifiscripts admin$ ffmpeg -i /Volumes/Stardom/kieran_tests/ffv1.mkv -f framemd5 -
ffmpeg version N-43982-g16ea0bc Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.3.0 (clang-703.0.31)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-vda
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 51.100 / 57. 53.100
  libavformat    57. 46.100 / 57. 46.101
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 50.100 /  6. 52.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '/Volumes/Stardom/kieran_tests/ffv1.mkv':
  Metadata:
    ENCODER         : Lavf57.46.101
  Duration: 00:00:00.04, start: 0.000000, bitrate: 2010154 kb/s
    Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), gbrp16le, 2350x1800, SAR 1:1 DAR 47:36, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc57.51.100 ffv1
      DURATION        : 00:00:00.040000000
[framemd5 @ 0x7fe1ec80a600] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
#format: frame checksums
#version: 2
#hash: MD5
#software: Lavf57.46.101
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 2350x1800
#sar 0: 1/1
#stream#, dts,        pts, duration,     size, hash
Output #0, framemd5, to 'pipe:':
  Metadata:
    encoder         : Lavf57.46.101
    Stream #0:0: Video: rawvideo (G3[0][16] / 0x10003347), gbrp16le, 2350x1800 [SAR 1:1 DAR 47:36], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      DURATION        : 00:00:00.040000000
      encoder         : Lavc57.51.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (ffv1 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
0,          0,          0,        1, 25380000, 596d6723629140e8ac7b8f818b275f89
frame=    1 fps=0.0 q=-0.0 size=       0kB time=00:00:00.04 bitrate=  59.4kbits/frame=    1 fps=0.0 q=-0.0 Lsize=       0kB time=00:00:00.04 bitrate=  59.4kbits/s speed=0.0401x
video:24785kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


3. transcode from ffv1.mkv to tiff  (rgb48le auto selected)

ifi-mac-pro:ifiscripts admin$ ffmpeg -i /Volumes/Stardom/kieran_tests/ffv1.mkv /Volumes/Stardom/kieran_tests/restored.tiff
ffmpeg version N-43982-g16ea0bc Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.3.0 (clang-703.0.31)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-vda
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 51.100 / 57. 53.100
  libavformat    57. 46.100 / 57. 46.101
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 50.100 /  6. 52.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '/Volumes/Stardom/kieran_tests/ffv1.mkv':
  Metadata:
    ENCODER         : Lavf57.46.101
  Duration: 00:00:00.04, start: 0.000000, bitrate: 2010154 kb/s
    Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), gbrp16le, 2350x1800, SAR 1:1 DAR 47:36, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc57.51.100 ffv1
      DURATION        : 00:00:00.040000000
File '/Volumes/Stardom/kieran_tests/restored.tiff' already exists. Overwrite ? [y/N] y
[image2 @ 0x7fdb8c000600] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, image2, to '/Volumes/Stardom/kieran_tests/restored.tiff':
  Metadata:
    encoder         : Lavf57.46.101
    Stream #0:0: Video: tiff, rgb48le, 2350x1800 [SAR 1:1 DAR 47:36], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      DURATION        : 00:00:00.040000000
      encoder         : Lavc57.51.100 tiff
Stream mapping:
  Stream #0:0 -> #0:0 (ffv1 (native) -> tiff (native))
Press [q] to stop, [?] for help
frame=    1 fps=0.8 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.0328x
video:24984kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


4. framemd5 of 'restored' tiff (rgb48le) -  ed19dd966d5ed2e5c6de438949a81eaf


ifi-mac-pro:ifiscripts admin$ ffmpeg -i /Volumes/Stardom/kieran_tests/restored.tiff -f framemd5 -
ffmpeg version N-43982-g16ea0bc Copyright (c) 2000-2016 the FFmpeg developers
  built with Apple LLVM version 7.3.0 (clang-703.0.31)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-vda
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 51.100 / 57. 53.100
  libavformat    57. 46.100 / 57. 46.101
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 50.100 /  6. 52.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
[tiff_pipe @ 0x7fdefb810600] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, tiff_pipe, from '/Volumes/Stardom/kieran_tests/restored.tiff':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: tiff, rgb48le, 2350x1800 [SAR 1:1 DAR 47:36], 25 tbr, 25 tbn, 25 tbc
[framemd5 @ 0x7fdefc000c00] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
#format: frame checksums
#version: 2
#hash: MD5
#software: Lavf57.46.101
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 2350x1800
#sar 0: 1/1
#stream#, dts,        pts, duration,     size, hash
Output #0, framemd5, to 'pipe:':
  Metadata:
    encoder         : Lavf57.46.101
    Stream #0:0: Video: rawvideo (RGB0 / 0x30424752), rgb48le, 2350x1800 [SAR 1:1 DAR 47:36], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.51.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (tiff (native) -> rawvideo (native))
Press [q] to stop, [?] for help
0,          0,          0,        1, 25380000, ed19dd966d5ed2e5c6de438949a81eaf
frame=    1 fps=0.0 q=-0.0 Lsize=       0kB time=00:00:00.04 bitrate=  59.4kbits/s speed=0.634x
video:24785kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown



------
This email has been scanned for spam and malware by The Email Laundry.



More information about the ffmpeg-user mailing list