Opened 7 years ago

Closed 7 years ago

#6206 closed enhancement (fixed)

detect ffv1 in mkv with codecid V_FFV1

Reported by: dave rice Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: mkv ffv1
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:

Attached are mkv files that use V_FFV1 as a codecid per https://github.com/Matroska-Org/matroska-specification/blob/master/codec_specs.md#v_ffv1. V_FFV1_v1.mkv contains a version 1 of FFV1 with no CodecPrivate, whereas V_FFV1_v3.mkv contains the ConfigurationRecord for FFV1 in CodecPrivate.

How to reproduce:

ffmpeg -i V_FFV1_v1.mkv 
ffmpeg version git-2017-02-12-79d232f Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-79d232f --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-chromaprint --enable-ffplay --enable-libcaca --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtesseract --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 46.100 / 55. 46.100
  libavcodec     57. 79.100 / 57. 79.100
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 73.100 /  6. 73.100
  libavresample   3.  2.  0 /  3.  2.  0
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[matroska,webm @ 0x7fe067001800] Unknown/unsupported AVCodecID V_FFV1.
[matroska,webm @ 0x7fe067001800] Could not find codec parameters for stream 0 (Video: none, none(progressive), 320x240): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'V_FFV1_v1.mkv':
  Metadata:
    creation_time   : 2017-02-25T18:04:25.000000Z
    ENCODER         : Lavf57.66.102
  Duration: 00:00:01.00, start: 0.000000, bitrate: 871 kb/s
    Stream #0:0: Video: none, none(progressive), 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc57.79.100 ffv1
      DURATION        : 00:00:01.000000000
At least one output file must be specified

and

ffmpeg -i V_FFV1_v3.mkv 
ffmpeg version git-2017-02-12-79d232f Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-79d232f --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-chromaprint --enable-ffplay --enable-libcaca --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtesseract --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 46.100 / 55. 46.100
  libavcodec     57. 79.100 / 57. 79.100
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 73.100 /  6. 73.100
  libavresample   3.  2.  0 /  3.  2.  0
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[matroska,webm @ 0x7fd265800000] Unknown/unsupported AVCodecID V_FFV1.
[matroska,webm @ 0x7fd265800000] Could not find codec parameters for stream 0 (Video: none, none(progressive), 320x240): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'V_FFV1_v3.mkv':
  Metadata:
    creation_time   : 2017-02-25T18:04:35.000000Z
    ENCODER         : Lavf57.66.102
  Duration: 00:00:01.00, start: 0.000000, bitrate: 1007 kb/s
    Stream #0:0: Video: none, none(progressive), 320x240, SAR 1:1 DAR 4:3, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ENCODER         : Lavc57.79.100 ffv1
      DURATION        : 00:00:01.000000000
At least one output file must be specified

Attachments (2)

V_FFV1_v1.mkv (106.3 KB ) - added by dave rice 7 years ago.
V_FFV1_v3.mkv (123.0 KB ) - added by dave rice 7 years ago.

Download all attachments as: .zip

Change History (7)

by dave rice, 7 years ago

Attachment: V_FFV1_v1.mkv added

by dave rice, 7 years ago

Attachment: V_FFV1_v3.mkv added

comment:1 by Carl Eugen Hoyos, 7 years ago

Priority: normalwish
Reproduced by developer: set
Status: newopen
Type: defectenhancement
Version: unspecifiedgit-master

Patch sent.

comment:2 by Carl Eugen Hoyos, 7 years ago

Concerning this sentence:

For FFV1 versions 2 or less, Private Data SHOULD NOT be written.

It appears to me that implementation and specification do not match, do you know why?

comment:3 by dave rice, 7 years ago

@cehoyos, is the implementation you refer to the V_FFV1_v1.mkv sample? I do not see any CodecPrivate Element within it.

comment:4 by Carl Eugen Hoyos, 7 years ago

You shouldn't mention v2 in the mkv specification: v1 SHOULD NOT set Private Data, v3 MUST include it.

comment:5 by Carl Eugen Hoyos, 7 years ago

Resolution: fixed
Status: openclosed

Should be fixed in 9ae762da7e256aa4d3b645c614fcd1959e1cbb8d, thank you for the samples.
I opened https://trac.videolan.org/vlc/ticket/18085

Note: See TracTickets for help on using tickets.