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> ________________________________________________