Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3256 closed defect (fixed)

FFMPEG SVQ3 Matroska remux produces unplayable output (FFPlay don't want to play SVQ3 MKV output)

Reported by: Vika Apelsinova Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mkv svq3 regression
Cc: Michael Niedermayer Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

FFMPEG SVQ3 Matroska remux produces unplayable output (FFPlay don't want to play SVQ3 MKV output)

MediaInfo log for input.mov:

General
Complete name                            : input.mov
Format                                   : QuickTime
Format/Info                              : Original Apple specifications
Format settings                          : Compressed header
File size                                : 21.5 MiB
Duration                                 : 3mn 46s
Overall bit rate                         : 794 Kbps
Encoded date                             : UTC 2002-02-05 18:21:59
Tagged date                              : UTC 2002-02-05 18:22:15
Writing application                      : Encoded with Cleaner 5
Writing library                          : Apple QuickTime

Video
ID                                       : 1
Format                                   : Sorenson 3
Codec ID                                 : SVQ3
Codec ID/Info                            : Sorenson Media Video 3 (Apple QuickTime 5)
Duration                                 : 3mn 46s
Bit rate                                 : 745 Kbps
Width                                    : 480 pixels
Height                                   : 280 pixels
Display aspect ratio                     : 1.714
Frame rate mode                          : Constant
Frame rate                               : 25.000 fps
Bits/(Pixel*Frame)                       : 0.222
Stream size                              : 20.1 MiB (94%)
Title                                    : Gestore Apple Media Video
Language                                 : English
Encoded date                             : UTC 2002-02-05 16:51:31
Tagged date                              : UTC 2002-02-05 18:22:15

Audio
ID                                       : 2
Format                                   : Qdesign 2
Codec ID                                 : QDM2
Codec ID/Info                            : QDesign Music 2
Duration                                 : 3mn 46s
Bit rate mode                            : Constant
Bit rate                                 : 176.4 Kbps
Channel count                            : 2 channels
Sampling rate                            : 22.05 KHz
Bit depth                                : 16 bits
Stream size                              : 4.77 MiB (22%)
Title                                    : Gestore Apple Media Suono
Language                                 : English
Encoded date                             : UTC 2002-02-05 16:51:31
Tagged date                              : UTC 2002-02-05 18:22:15

ffmpeg -v 9 -loglevel 99 -i input.mov

ffmpeg version N-59433-g4aa9c91 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec 29 2013 22:07:20 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  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 '-i' ... matched as input file with argument 'input.mov'.
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 input.mov.
Successfully parsed a group of options.
Opening an input file: input.mov.
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000003b6a80] Format mov,mp4,m4a,3gp,3g2,mj2 prob
ed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000003b6a80] Before avformat_find_stream_info()
pos: 26341 bytes read:32768 seeks:0
[qdm2 @ 0000000002750920] size: 36
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000003b6a80] max_analyze_duration 5000000 reache
d at 5015510 microseconds
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000003b6a80] After avformat_find_stream_info() p
os: 421817 bytes read:425984 seeks:0 frames:169
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    creation_time   : 2002-02-05 18:21:59
    encoder         : Encoded with Cleaner 5
    encoder-eng     : Encoded with Cleaner 5
  Duration: 00:03:46.68, start: 0.000000, bitrate: 794 kb/s
    Stream #0:0(eng), 113, 1/600: Video: svq3 (SVQ3 / 0x33515653), yuvj420p, 480
x280, 1/600, 745 kb/s, 25 fps, 25 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng), 56, 1/22050: Audio: qdm2 (QDM2 / 0x324D4451), 22050 Hz, st
ereo, s16, 48 kb/s (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 00000000003b7020] Statistics: 425984 bytes read, 0 seeks

ffmpeg -i input.mov -vcodec copy -acodec copy output.mkv

ffmpeg version N-59433-g4aa9c91 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec 29 2013 22:07:20 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    creation_time   : 2002-02-05 18:21:59
    encoder         : Encoded with Cleaner 5
    encoder-eng     : Encoded with Cleaner 5
  Duration: 00:03:46.68, start: 0.000000, bitrate: 794 kb/s
    Stream #0:0(eng): Video: svq3 (SVQ3 / 0x33515653), yuvj420p, 480x280, 745 kb
/s, 25 fps, 25 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: qdm2 (QDM2 / 0x324D4451), 22050 Hz, stereo, s16, 48
 kb/s (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
Output #0, matroska, to 'output.mkv':
  Metadata:
    encoder-eng     : Encoded with Cleaner 5
    encoder         : Lavf55.22.100
    Stream #0:0(eng): Video: svq3 (SVQ3 / 0x33515653), yuvj420p, 480x280, q=2-31
, 745 kb/s, 25 fps, 1k tbn, 600 tbc (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: qdm2 ([255][255][255][255] / 0xFFFFFFFF), 22050 Hz,
 stereo, 48 kb/s (default)
    Metadata:
      creation_time   : 2002-02-05 18:21:59
      handler_name    : Apple Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 5667 fps=0.0 q=-1.0 Lsize=   22021kB time=00:03:46.64 bitrate= 795.9kbits
/s
video:20623kB audio:1325kB subtitle:0 global headers:0kB muxing overhead 0.33352
5%

MediaInfo log for output.mkv:

General
Unique ID                                : 92083823330401757795842791738927682089 (0x4546B303A87A81C61B6345712E171229)
Complete name                            : output.mkv
Format                                   : Matroska
Format version                           : Version 4 / Version 2
File size                                : 21.5 MiB
Duration                                 : 3mn 46s
Overall bit rate                         : 796 Kbps
Writing application                      : Lavf55.22.100
Writing library                          : Lavf55.22.100

Video
ID                                       : 1
Format                                   : V_QUICKTIME
Codec ID                                 : V_QUICKTIME
Duration                                 : 3mn 46s
Width                                    : 480 pixels
Height                                   : 280 pixels
Display aspect ratio                     : 1.714
Frame rate mode                          : Constant
Frame rate                               : 25.000 fps
Language                                 : English
Default                                  : Yes
Forced                                   : No
Encoded date                             : UTC 2002-02-05 18:21:59
HANDLER_NAME                             : Apple Alias Data Handler

Audio
ID                                       : 2
Format                                   : A_QUICKTIME/QDM2
Codec ID                                 : A_QUICKTIME/QDM2
Duration                                 : 3mn 46s
Channel count                            : 2 channels
Sampling rate                            : 22.05 KHz
Bit depth                                : 16 bits
Language                                 : English
Default                                  : Yes
Forced                                   : No
Encoded date                             : UTC 2002-02-05 18:21:59
HANDLER_NAME                             : Apple Alias Data Handler

ffmpeg -v 9 -loglevel 99 -i output.mkv

ffmpeg version N-59433-g4aa9c91 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec 29 2013 22:07:20 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  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 '-i' ... matched as input file with argument 'output.mkv'.
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 output.mkv.
Successfully parsed a group of options.
Opening an input file: output.mkv.
[matroska,webm @ 00000000003a6a80] Format matroska,webm probed with size=2048 an
d score=100
[matroska,webm @ 00000000003a6a80] Unknown/unsupported AVCodecID V_QUICKTIME.
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 00000000003a6a80] Before avformat_find_stream_info() pos: 1023
bytes read:32768 seeks:0
[matroska,webm @ 00000000003a6a80] parser not found for codec none, packets or t
imes may be invalid.
[matroska,webm @ 00000000003a6a80] parser not found for codec qdm2, packets or t
imes may be invalid.
[qdm2 @ 0000000002750a20] size: 36
[matroska,webm @ 00000000003a6a80] parser not found for codec none, packets or t
imes may be invalid.
[matroska,webm @ 00000000003a6a80] parser not found for codec qdm2, packets or t
imes may be invalid.
[matroska,webm @ 00000000003a6a80] max_analyze_duration 5000000 reached at 50000
00 microseconds
[matroska,webm @ 00000000003a6a80] Could not find codec parameters for stream 0
(Video: none, 480x280, 1/1000): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 00000000003a6a80] After avformat_find_stream_info() pos: 458831
 bytes read:491520 seeks:0 frames:179
Input #0, matroska,webm, from 'output.mkv':
  Metadata:
    ENCODER-eng     : Encoded with Cleaner 5
    ENCODER         : Lavf55.22.100
  Duration: 00:03:46.68, start: 0.000000, bitrate: 795 kb/s
    Stream #0:0(eng), 125, 1/1000: Video: none, 480x280, 1/1000, SAR 1:1 DAR 12:
7, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      CREATION_TIME   : 2002-02-05 18:21:59
      LANGUAGE        : eng
      HANDLER_NAME    : Apple Alias Data Handler
    Stream #0:1(eng), 54, 1/1000: Audio: qdm2, 22050 Hz, stereo, s16, 48 kb/s (d
efault)
    Metadata:
      CREATION_TIME   : 2002-02-05 18:21:59
      LANGUAGE        : eng
      HANDLER_NAME    : Apple Alias Data Handler
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 00000000003a7020] Statistics: 491520 bytes read, 0 seeks

ffplay -i output.mkv

ffplay version N-59433-g4aa9c91 Copyright (c) 2003-2013 the FFmpeg developers
  built on Dec 29 2013 22:07:20 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aa
cenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavp
ack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.100 / 55. 22.100
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[matroska,webm @ 000000000036b380] Unknown/unsupported AVCodecID V_QUICKTIME.
[matroska,webm @ 000000000036b380] Could not find codec parameters for stream 0
(Video: none, 480x280): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'output.mkv':
  Metadata:
    ENCODER-eng     : Encoded with Cleaner 5
    ENCODER         : Lavf55.22.100
  Duration: 00:03:46.68, start: 0.000000, bitrate: 795 kb/s
    Stream #0:0(eng): Video: none, 480x280, SAR 1:1 DAR 12:7, 25 fps, 25 tbr, 1k
 tbn, 1k tbc (default)
    Metadata:
      CREATION_TIME   : 2002-02-05 18:21:59
      LANGUAGE        : eng
      HANDLER_NAME    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: qdm2, 22050 Hz, stereo, s16, 48 kb/s (default)
    Metadata:
      CREATION_TIME   : 2002-02-05 18:21:59
      LANGUAGE        : eng
      HANDLER_NAME    : Apple Alias Data Handler
No codec could be found with id 0

You can download input.mov, output.mkv and log files for future analysis here: http://goo.gl/6hHwsA

Change History (18)

comment:1 by Carl Eugen Hoyos, 11 years ago

Is this a regression?

comment:2 by Carl Eugen Hoyos, 11 years ago

Analyzed by developer: set
Component: undeterminedavformat
Keywords: mkv svq3 regression added
Reproduced by developer: set
Status: newopen
Version: git-master

From FFmpeg PoV, it is indeed a regression since 5d2f89a2 but the previous behaviour was also wrong (not specification-compliant), just consistent. The necessary changes are:

  • Fixing the matroska muxer so it copies mov_write_video_tag() to write compliant files
  • Fixing the matroska demuxer so it reads these files.

https://web.archive.org/web/20081220165143/http://www.matroska.org/technical/specs/codecid/v_quicktime_private.html

$ mkvmerge fate-suite/svq3/Vertical400kbit.sorenson3.mov -o out.mkv
$ ffmpeg -i out.mkv
ffmpeg version N-59439-g3cc0f33 Copyright (c) 2000-2013 the FFmpeg developers
  built on Dec 30 2013 12:50:39 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.101 / 55. 22.101
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[matroska,webm @ 0x2808100] Unknown/unsupported AVCodecID V_QUICKTIME.
[matroska,webm @ 0x2808100] Could not find codec parameters for stream 0 (Video: none ([0][0][0]l / 0x6C000000), 320x240): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
out.mkv: could not find codec parameters

in reply to:  1 ; comment:3 by Vika Apelsinova, 11 years ago

Replying to cehoyos:

Is this a regression?

Yes, version 20120804-git-f857465 works fine, but version 20120810-git-633b90c has this bug.
It happen beetween commit f85746509ca8b727d97ff801a63a22f81fd27a0c and 633b90ca8d5fbdac4e54b0d6b054e273b3a5efa5.

in reply to:  3 comment:4 by Carl Eugen Hoyos, 11 years ago

Replying to Vika Apelsinova:

version 20120804-git-f857465 works fine

Not really, the output file was invalid (and can not be decoded with vlc).

comment:5 by Vika Apelsinova, 11 years ago

Any progress?

I've tested remuxing the video using ffmpeg-20120804-git-f857465, ffmpeg-20140109-git-c0a33c4, mkvtoolnix-6.6.0 and mkvtoolnix-6.7.0, and playing outputs using ffplay-20140109-git-c0a33c4, vlc-2.1.2 and mplayer-r36541+g43f9255.

File name                                : output-ffmpeg-20120804-git-f857465.mkv
File size                                : 22 547 856 bytes
Video
ID                                       : 1
Format                                   : V_QUICKTIME
Codec ID                                 : V_QUICKTIME

Audio
ID                                       : 2
Format                                   : A_QUICKTIME/QDM2
Codec ID                                 : A_QUICKTIME/QDM2
FFPlay: video plays, audio plays.
VLC: video not plays, audio not plays.
MPlayer: video plays, audio plays.



File name                                : output-ffmpeg-20140109-git-c0a33c4.mkv
File size                                : 22 549 454 bytes
Video
ID                                       : 1
Format                                   : V_QUICKTIME
Codec ID                                 : V_QUICKTIME

Audio
ID                                       : 2
Format                                   : A_QUICKTIME/QDM2
Codec ID                                 : A_QUICKTIME/QDM2
FFPlay: video not plays, audio plays.
VLC: video not plays, audio not plays.
MPlayer: video not plays, audio stuck in loop (i.e. not plays).



File name                                : output-mkvtoolnix-6.6.0.mkv
File size                                : 30 548 206 bytes
Video
ID                                       : 1
Format                                   : V_QUICKTIME
Codec ID                                 : V_QUICKTIME

Audio
ID                                       : 2
Format                                   : A_QUICKTIME
Codec ID                                 : A_QUICKTIME
FFPlay: video not plays, audio not plays.
VLC: video plays, audio not plays.
MPlayer: video not plays, plays noise (i.e. not plays).



File name                                : output-mkvtoolnix-6.7.0.mkv
File size                                : 22 536 960
Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Codec ID                                 : V_MS/VFW/FOURCC / SVQ1
Codec ID/Info                            : Sorenson Media Video 1 (Apple QuickTime 3)
Codec ID/Hint                            : Sorenson 1

Audio
ID                                       : 2
Format                                   : A_QUICKTIME
Codec ID                                 : A_QUICKTIME
FFPlay: video not plays, audio not plays.
VLC: video not plays, audio not plays.
MPlayer: video not plays, plays noise (i.e. not plays).


You can download output-ffmpeg-20120804-git-f857465.mkv, output-ffmpeg-20140109-git-c0a33c4.mkv, output-mkvtoolnix-6.6.0.mkv and output-mkvtoolnix-6.7.0.mkv files for future analysis here: ​https://goo.gl/6hHwsA (direct links provided by Google Drive Hosting, TLS 1.2).

comment:6 by Vika Apelsinova, 11 years ago

The bug was fixed in MKVToolNix by https://github.com/mbunkus/mkvtoolnix/commit/6fbbd882d2b0819b2e3a4d4fc2880f94fc985839, but FFPlay and VLC still don't want to play output.

Not really, the output file was invalid (and can not be decoded with vlc).

Moritz Bunkus a.k.a. mosu wrote:

That VLC doesn't play audio doesn't mean that mkvmerge is to blame.
Quite the other way around. VLC doesn't support A_QUICKTIME at all.
Just do a recursive grep for A_QUICKTIME on VLC's sources and you'll
see for yourself.

As for the CodecID. mkvmerge has used A_QUICKTIME since 2009. Before
it used A_QUICKTIME/QDMx. Back then there was a decision that
appending the codec type to the A_QUICKTIME string was superfluous as
the FourCC is contained in CodecPrivate for both A_QUICKTIME and
A_QUICKTIME/QDMx. This is very similar to how V_QUICKTIME works. The
CodecPrivate contains the content of the STSD atom.

Unfortunately we totally forgot to update the specs page, which is why
it doesn't list A_QUICKTIME. I will update the specs page tonight.

So if you want to fix ffmpeg you should do the following:

1. In the demuxing part: treat A_QUICKTIME and A_QUICKTIME/wxyz
identically. Get the FourCC from CodecPrivate (should be bytes 4 - 7
starting at 0).
2. In the muxing part: simply don't write A_QUICKTIME/wxyz but just A_QUICKTIME.

comment:7 by Michael Niedermayer, 11 years ago

ffplay can now play
the video from output-mkvtoolnix-6.6.0.mkv and
the audio from output-mkvtoolnix-6.7.0.mkv

the video in output-mkvtoolnix-6.7.0.mkv is simply broken, its SVQ3 but marked as SVQ1, you can play it somewhat with -vcodec svq3

comment:8 by Michael Niedermayer, 11 years ago

ffplay now also plays the video from output-ffmpeg-20140109-git-c0a33c4.mkv

comment:9 by Vika Apelsinova, 11 years ago

ffplay can now play the video from output-mkvtoolnix-6.6.0.mkv

Why only video?

Ok, everything is clear with FFPlay (decoding). What with encoding?

The output file is still invalid?

Why FFMPEG's output uses deprecated "A_QUICKTIME/QDM2" as Audio Codec ID insted of just "A_QUICKTIME" like mosu wrote?

comment:10 by Vika Apelsinova, 11 years ago

Anybody can answer my 3 previous questions?

comment:11 by compn, 11 years ago

why are you muxing svq3 into mkv ?

comment:12 by gjdfgh, 11 years ago

Why FFMPEG's output uses deprecated "A_QUICKTIME/QDM2" as Audio Codec ID insted of just "A_QUICKTIME" like mosu wrote?

Probably because nobody bothered to update it. In the worst case, you'll have to propose a patch and send it to the ffmpeg-devel mailing list.

in reply to:  7 ; comment:13 by Vika Apelsinova, 11 years ago

Replying to michael:

ffplay can now play the video from output-mkvtoolnix-6.6.0.mkv

@michael Why only video? Why don't play audio?

Replying to compn:

why are you muxing svq3 into mkv ?

Why not? :-/

in reply to:  13 comment:14 by compn, 11 years ago

Replying to Vika Apelsinova:

Replying to compn:

why are you muxing svq3 into mkv ?

Why not? :-/

because.

in reply to:  9 ; comment:15 by Michael Niedermayer, 11 years ago

Replying to Vika Apelsinova:

ffplay can now play the video from output-mkvtoolnix-6.6.0.mkv

Why only video?

Which tool or player can play the audio ?
If nothing can play it, then most likely the issue is with the file

Ok, everything is clear with FFPlay (decoding). What with encoding?

The output file is still invalid?

Why FFMPEG's output uses deprecated "A_QUICKTIME/QDM2" as Audio Codec ID insted of just "A_QUICKTIME" like mosu wrote?

Which application/player supports A_QUICKTIME?
mosu said vlc does not and if i understood correctly the spec did not list A_QUICKTIME either.
FFmpeg should create files that can be played by most players/applications. We also should conform to the spec. If from 2 revissions of the spec one works with many players and one with few, we should prefer the one that works with many.
Dont hesitate to correct me if one of my assumtations is wrong

in reply to:  15 ; comment:16 by Michael Niedermayer, 11 years ago

Cc: Michael Niedermayer added
Resolution: fixed
Status: openclosed

Replying to michael:

Replying to Vika Apelsinova:

ffplay can now play the video from output-mkvtoolnix-6.6.0.mkv

Why only video?

Which tool or player can play the audio ?
If nothing can play it, then most likely the issue is with the file

Ok, everything is clear with FFPlay (decoding). What with encoding?

The output file is still invalid?

Why FFMPEG's output uses deprecated "A_QUICKTIME/QDM2" as Audio Codec ID insted of just "A_QUICKTIME" like mosu wrote?

Which application/player supports A_QUICKTIME?
mosu said vlc does not and if i understood correctly the spec did not list A_QUICKTIME either.
FFmpeg should create files that can be played by most players/applications. We also should conform to the spec. If from 2 revissions of the spec one works with many players and one with few, we should prefer the one that works with many.
Dont hesitate to correct me if one of my assumtations is wrong

just tried to replace A_QUICKTIME/QDM2 by A_QUICKTIME, but the resulting file cannot be played by any player i tried. So its not that simple
Also please open a seperate ticket for the QDM2 issue, this one is about SVQ3 remux not playing in ffplay (which is fixed thus closing it)
dont hesitate to reopen this ticket if svq3 isnt fixed, but please lets move qdm2 to a seperate ticket, so as to keep things easy to manage as these are 2 seperate issues

in reply to:  16 comment:17 by Vika Apelsinova, 11 years ago

Replying to michael:

Replying to michael:

Replying to Vika Apelsinova:

ffplay can now play the video from output-mkvtoolnix-6.6.0.mkv

Why only video?

Which tool or player can play the audio ?
If nothing can play it, then most likely the issue is with the file

Yes, it's the issue with the file. QDM2 audio in files generated by mkvtoolnix-6.6.0 are broken (this bug was fixed in mkvtoolnix-6.7.0). You don't have to fix FFMPEG for them.

and if i understood correctly the spec did not list A_QUICKTIME either.

Please look at http://matroska.org/technical/specs/codecid/index.html. A_QUICKTIME/ Codec ID is deprecated in favor of A_QUICKTIME (without a trailing codec name).

VLC does not support neither Matroska A_QUICKTIME nor A_QUICKTIME/ Codec IDs at all. I've opened https://trac.videolan.org/vlc/ticket/11038 for this issue.

please lets move qdm2 to a seperate ticket

OK, I'll open new ticket for using A_QUICKTIME instead of deprecated A_QUICKTIME/ Codec IDs, when https://trac.videolan.org/vlc/ticket/11038 is closed.

comment:18 by Vika Apelsinova, 11 years ago

Note: See TracTickets for help on using tickets.