[FFmpeg-devel] PATCH: fourcc for VP6 Flash / FLV4 in .mkv

Christian P. Schmidt schmidt
Mon Apr 19 15:14:27 CEST 2010


M?ns Rullg?rd wrote:
> "Christian P. Schmidt" <schmidt at digadd.de> writes:
> 
>> Hi,
>>
>> I just encountered a file in the wild that contains FLV4 in .mkv. The
>> output of ffprobe
>>
>> FFprobe version SVN-r22905, Copyright (c) 2007-2010 the FFmpeg developers
>>   built on Apr 19 2010 11:31:42 with gcc 4.4.3
>>   configuration: --enable-nonfree --enable-gpl --enable-version3
>> --prefix=/usr
>>   libavutil     50.14. 0 / 50.14. 0
>>   libavcodec    52.66. 0 / 52.66. 0
>>   libavformat   52.61. 0 / 52.61. 0
>>   libavdevice   52. 2. 0 / 52. 2. 0
>>   libswscale     0.10. 0 /  0.10. 0
>> [matroska @ 0x169a820]Unknown/unsupported CodecID V_MS/VFW/FOURCC.
>> [matroska @ 0x169a820]max_analyze_duration reached
>> [matroska @ 0x169a820]Estimating duration from bitrate, this may be
>> inaccurate
>> Input #0, matroska, from 'file.mkv':
>>   Duration: 00:26:22.18, start: 0.000000, bitrate: 128 kb/s
>>     Stream #0.0(jpn): Video: FLV4 / 0x34564C46, 640x368, PAR 1:1 DAR
>> 40:23, 23.98 tbr, 1k tbn, 1k tbc
>>     Stream #0.1(jpn): Audio: mp3, 44100 Hz, 2 channels, s16, 128 kb/s
>>     Stream #0.2(eng): Subtitle: 0x0000
>>     Stream #0.3: Attachment: 0x0000
>>
>> Video was not completely identified and ffplay could not play it.
>> Associating the FLV4 fourcc with the VP6F video codec solved this:
>>
>> FFprobe version SVN-r22905, Copyright (c) 2007-2010 the FFmpeg developers
>>   built on Apr 19 2010 11:31:42 with gcc 4.4.3
>>   configuration: --enable-nonfree --enable-gpl --enable-version3
>> --prefix=/usr
>>   libavutil     50.14. 0 / 50.14. 0
>>   libavcodec    52.66. 0 / 52.66. 0
>>   libavformat   52.61. 0 / 52.61. 0
>>   libavdevice   52. 2. 0 / 52. 2. 0
>>   libswscale     0.10. 0 /  0.10. 0
>> [matroska @ 0x21d30b0]max_analyze_duration reached
>> [matroska @ 0x21d30b0]Estimating duration from bitrate, this may be
>> inaccurate
>> Input #0, matroska, from 'file.mkv':
>>   Duration: 00:26:22.18, start: 0.000000, bitrate: 128 kb/s
>>     Stream #0.0(jpn): Video: vp6f, yuv420p, 640x368, PAR 1:1 DAR 40:23,
>> 23.98 tbr, 1k tbn, 1k tbc
>>     Stream #0.1(jpn): Audio: mp3, 44100 Hz, 2 channels, s16, 128 kb/s
>>     Stream #0.2(eng): Subtitle: 0x0000
>>     Stream #0.3: Attachment: 0x0000
>>
>> Patch attached.

>> Regards,
>> Christian
>> --- libavformat/riff.c	(revision 22905)
>> +++ libavformat/riff.c	(working copy)
>> @@ -180,6 +180,7 @@
>>      { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '0') },
>>      { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '1') },
>>      { CODEC_ID_VP6,          MKTAG('V', 'P', '6', '2') },
>> +    { CODEC_ID_VP6F,         MKTAG('F', 'L', 'V', '4') },
>>      { CODEC_ID_ASV1,         MKTAG('A', 'S', 'V', '1') },
>>      { CODEC_ID_ASV2,         MKTAG('A', 'S', 'V', '2') },
>>      { CODEC_ID_VCR1,         MKTAG('V', 'C', 'R', '1') },
> 
> Matroska is _not_ a RIFF format.  What is it doing with that list?
> Does that file use the VFW compat option in Matroska?  The association
> from FLV4 to VP6 strikes me a bit loose, so I'd be hesitant to add
> this unless it is common.

Yes, indeed this particular file uses the fallback. Apparently Flash
Video Version 4 uses the VP6 for Flash Codec. I've heard on IRC that
this can apparently result from using mencoder with -ovc copy, where
this particular fourcc is used. I have no idea how common this is.

The question rather boils down to "do we want to support rare files". On
the other hand, I haven't found an "official" 4CC for VP6F, probably
because it's normally only found in the flv container.

Regards,
Christian




More information about the ffmpeg-devel mailing list