New submission from Misty <misty.de....@humanrightsmuseum.ca>:

JPEG2000 videos remuxed into Quicktime .mov are unplayable by Quicktime.

I begin with a valid .mj2 produced using Kakadu's kdu_v_compress 
(http://www.kakadusoftware.com/). The 
video contained only a video track, no audio. I attempted to remux this into 
Quicktime .mov in order to be 
able to view the video with Quicktime, but the video was not readable by QT. 
The image displayed as a 
black screen, and the aspect ratio was displayed as 1:1. ffmpeg is able to read 
the video (first component 
only) and correctly transcode to another codec, albeit with incorrect aspect 
ratio again. (I'll file a 
separate issue for the aspect ratio.)

The commandline used was ffmpeg -i bbb_jp2.mj2 -vcodec copy bbb_jp2_ffmpeg.mov

Quicktime can properly render still frames encoded by Kakadu, so the 
compression itself is not the 
problem. I can produce a JPEG2000-compressed video in QT using QT's 
compression, which plays back in QT 
but which cannot be read properly by ffmpeg.

I've tried MJ2 files in rgba and yuv420p colour spaces, with the same results.

ffmpeg -V 9 -loglevel 99 -i output for MJ2 copy:

FFmpeg version git-31ff9bd, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar  9 2011 00:01:41 with gcc 4.5.2
  configuration: --arch=x86 --cross-prefix=i686-pc-mingw32- --target-os=mingw32
--prefix=/ffmpeg/builds/git-31ff9bd-static --enable-memalign-hack --disable-shar
ed --enable-static --enable-w32threads --disable-debug --enable-gpl --enable-ver
sion3 --enable-runtime-cpudetect --enable-zlib --enable-bzlib --enable-avisynth
--enable-postproc --enable-libmp3lame --enable-libx264 --enable-libvorbis --enab
le-libtheora --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-a
mrwb --enable-libxvid --enable-libgsm --enable-libvpx --disable-decoder=libvpx -
-enable-librtmp --enable-libopenjpeg --enable-frei0r --enable-libxavs --cc='ccac
he i686-pc-mingw32-gcc'
  libavutil    50. 39. 0 / 50. 39. 0
  libavcodec   52.113. 2 / 52.113. 2
  libavformat  52.102. 0 / 52.102. 0
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 12. 0 /  0. 12. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[NULL @ 0003bd70] Probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0003bd70] ISO: File Type Major Brand: mjp2
[libopenjpeg @ 02f71ac0] Only first component will be used.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0003bd70] All info found

Seems stream 0 codec frame rate differs from container frame rate: 1008.00 (1008
/1) -> 24.00 (24/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb_jp2.mj2':
  Metadata:
    major_brand     : mjp2
    minor_version   : 0
    compatible_brands: mjp2
    creation_time   : 2011-03-09 22:33:17
  Duration: 00:00:03.33, start: 0.000000, bitrate: 9562 kb/s
    Stream #0.0(`z`), 1, 1/1008: Video: libopenjpeg, gray, 640x360, 1/1008, 9559
 kb/s, PAR 9:16 DAR 1:1, 24 fps, 24 tbr, 1008 tbn, 1008 tbc
    Metadata:
      creation_time   : 2011-03-09 22:33:17

ffmpeg -i output for QT-encoded copy:

FFmpeg version git-31ff9bd, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar  9 2011 00:01:41 with gcc 4.5.2
  configuration: --arch=x86 --cross-prefix=i686-pc-mingw32- --target-os=mingw32
--prefix=/ffmpeg/builds/git-31ff9bd-static --enable-memalign-hack --disable-shar
ed --enable-static --enable-w32threads --disable-debug --enable-gpl --enable-ver
sion3 --enable-runtime-cpudetect --enable-zlib --enable-bzlib --enable-avisynth
--enable-postproc --enable-libmp3lame --enable-libx264 --enable-libvorbis --enab
le-libtheora --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-a
mrwb --enable-libxvid --enable-libgsm --enable-libvpx --disable-decoder=libvpx -
-enable-librtmp --enable-libopenjpeg --enable-frei0r --enable-libxavs --cc='ccac
he i686-pc-mingw32-gcc'
  libavutil    50. 39. 0 / 50. 39. 0
  libavcodec   52.113. 2 / 52.113. 2
  libavformat  52.102. 0 / 52.102. 0
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 76. 0 /  1. 76. 0
  libswscale    0. 12. 0 /  0. 12. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[NULL @ 0197bd70] Probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0197bd70] ISO: File Type Major Brand: qt
[mov,mp4,m4a,3gp,3g2,mj2 @ 0197bd70] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb_jp2_qt.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2011-03-09 22:39:50
  Duration: 00:00:03.33, start: 0.000000, bitrate: 23584 kb/s
    Stream #0.0(eng), 1, 1/24: Video: libopenjpeg, rgb24, 640x360, 1/24, 23581 k
b/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Metadata:
      creation_time   : 2011-03-09 22:39:50

I've uploaded a set of sample files to the FTP demonstrating the issue, in the 
directory 
incoming/jpeg2000_to_quicktime_unplayable. The files are:
bbb_png.mov - Original PNG frames wrapped in a Quicktime header, readable by 
ffmpeg. Used as the source 
for QT re-encoding
bbb_jp2_qt.mov - JPEG2000 encoded using QT7. Plays back correctly.
bbb_jp2_qt_420.mov - YUV420P copy of clip encoded to JPEG2000 using QT7. Plays 
back correctly.
bbb_jp2.mj2 - YUV420P Motion JPEG2000 encoded using Kakadu. Plays back 
correctly in kdu_show
bbb_jp2_ffmpeg.mov - QT JP2 video created using ffmpeg. Does not play correctly 
in QT.

The video is taken from the CCed Big Buck Bunny. The PNG frames used as the 
source can be obtained from 
http://media.xiph.org/BBB/BBB-360-png/
Attribution: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

I was using an up-to-date development copy of ffmpeg in Windows 7 (because 
ffmpeg doesn't compile with 
openjpeg in Mac OS X).

----------
messages: 13853
priority: normal
status: new
substatus: new
title: ffmpeg-created JPEG2000 .mov fails to play in Quicktime
type: bug

________________________________________________
FFmpeg issue tracker <iss...@roundup.ffmpeg.org>
<https://roundup.ffmpeg.org/issue2656>
________________________________________________

Reply via email to