Opened 10 years ago

Closed 10 years ago

#3926 closed defect (invalid)

imx/mov encode shows as green in QuickTime in ffmpeg 2.2 and later

Reported by: dave rice Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: imx mov
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

I use ffmpeg to transcode inputs to IMX 30 NTSC in QuickTime for use in broadcast systems. Using ffmpeg 2.1.4 the output plays well in QuickTime (7 and X) but when using ffmpeg 2.2 or later the output plays as a solid green color.

How to reproduce:

I'm using the same command for both ffmpeg 2.1.4 and ffmpeg 2.2. Here are the outputs.

ffmpeg 2.1.4 (quicktime imx output plays well in quicktime)

./ffmpeg_2_1_4 -i 293_0046_JITTER_ffv1_002.mov -r ntsc -c:v mpeg2video -intra_vlc 1 -non_linear_quant 1 -qmin 1 -dc 10 -lmin QP2LAMBDA -ps 1 -flags +ildct+ilme -pix_fmt yuv422p -vf crop=720:480:0:4,pad=720:512:0:24,setsar=1/1,setdar=4/3 -aspect 4:3 -qmax 12 -g 1 -intra -b:v 30000000 -maxrate:v 30000000 -minrate:v 30000000 -bufsize 1001000 -rc_init_occupancy 1001000 -rc_max_vbv_use 1 -rc_min_vbv_use 1 -rc_buf_aggressivity 0.25 -vbsf imxdump -tag:v mx3n -acodec pcm_s24be -ar 48k -ac 2 ffmpeg_output_imx_2.1.4.mov
ffmpeg version 2.1.4-tessus Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 23 2014 19:51:22 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  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 '293_0046_JITTER_ffv1_002.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf55.34.101
  Duration: 00:00:06.42, start: 2.802000, bitrate: 90271 kb/s
    Stream #0:0(eng): Video: ffv1 (FFV1 / 0x31564646), yuv422p10le, 720x486, 88847 kb/s, SAR 10:11 DAR 400:297, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      handler_name    : DataHandler
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      handler_name    : DataHandler
Output #0, mov, to 'ffmpeg_output_imx_2.1.4.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf55.19.104
    Stream #0:0(eng): Video: mpeg2video (mx3n / 0x6E33786D), yuv422p, 720x512 [SAR 128:135 DAR 4:3], q=1-12, 30000 kb/s, 30k tbn, 29.97 tbc (default)
    Metadata:
      handler_name    : DataHandler
    Stream #0:1(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s (default)
    Metadata:
      handler_name    : DataHandler
Stream mapping:
  Stream #0:0 -> #0:0 (ffv1 -> mpeg2video)
  Stream #0:1 -> #0:1 (pcm_s16le -> pcm_s24be)
Press [q] to stop, [?] for help
frame=  192 fps= 31 q=0.8 Lsize=   25274kB time=00:00:06.41 bitrate=32271.3kbits/s    
video:23461kB audio:1804kB subtitle:0 global headers:0kB muxing overhead 0.034018%

ffmpeg 2.2 (quicktime imx output plays green in quicktime)

./ffmpeg_2_2 -i 293_0046_JITTER_ffv1_002.mov -r ntsc -c:v mpeg2video -intra_vlc 1 -non_linear_quant 1 -qmin 1 -dc 10 -lmin QP2LAMBDA -ps 1 -flags +ildct+ilme -pix_fmt yuv422p -vf crop=720:480:0:4,pad=720:512:0:24,setsar=1/1,setdar=4/3 -aspect 4:3 -qmax 12 -g 1 -intra -b:v 30000000 -maxrate:v 30000000 -minrate:v 30000000 -bufsize 1001000 -rc_init_occupancy 1001000 -rc_max_vbv_use 1 -rc_min_vbv_use 1 -rc_buf_aggressivity 0.25 -vbsf imxdump -tag:v mx3n -acodec pcm_s24be -ar 48k -ac 2 ffmpeg_output_imx_2.2.mov
ffmpeg version 2.2-tessus Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 24 2014 22:25:11 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
  configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '293_0046_JITTER_ffv1_002.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf55.34.101
  Duration: 00:00:06.42, start: 2.802000, bitrate: 90271 kb/s
    Stream #0:0(eng): Video: ffv1 (FFV1 / 0x31564646), yuv422p10le, 720x486, 88847 kb/s, SAR 10:11 DAR 400:297, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      handler_name    : DataHandler
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      handler_name    : DataHandler
Output #0, mov, to 'ffmpeg_output_imx_2.2.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf55.33.100
    Stream #0:0(eng): Video: mpeg2video (mx3n / 0x6E33786D), yuv422p, 720x512 [SAR 128:135 DAR 4:3], q=1-12, 30000 kb/s, 30k tbn, 29.97 tbc (default)
    Metadata:
      handler_name    : DataHandler
    Stream #0:1(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s (default)
    Metadata:
      handler_name    : DataHandler
Stream mapping:
  Stream #0:0 -> #0:0 (ffv1 -> mpeg2video)
  Stream #0:1 -> #0:1 (pcm_s16le -> pcm_s24be)
Press [q] to stop, [?] for help
frame=  192 fps= 33 q=0.8 Lsize=   25274kB time=00:00:06.41 bitrate=32271.3kbits/s    
video:23461kB audio:1804kB subtitle:0 data:0 global headers:0kB muxing overhead 0.034018%

Change History (4)

comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: imx, mov → imx mov

Please test 72d44f15 and 11ed7ec0

Ticket #3351 (as did my tests on OSX) indicates that the problem was fixed for 2.2, failed with 2.1 and the fix was backported for 2.1.5.
Slightly related:

ffmpeg version 2.2-tessus

While it is probably not your fault, these version numbers are useless as this ticket shows.

comment:2 by dave rice, 10 years ago

72d44f15 shows up green in QuickTime
11ed7ec0 works for me

comment:3 by dave rice, 10 years ago

I spoke too soon. 11ed7ec0 played okay in QuickTime but because it was using the m2v1 fourcc rather than mx3n as 72d44f15 did correctly. If I hex edit 11ed7ec0 to use mx3n then it fails to play back in QuickTime. Reviewing my test files above I see that the 2.1.4 output was also m2v1. Testing now to find my user error and I'll paste in a working version of what's above when I find it, but this ticket can be closed. sorry/thanks

comment:4 by dave rice, 10 years ago

Resolution: invalid
Status: newclosed

Adding -top 1 to the examples above fixes them in QuickTime. False alarm.

Note: See TracTickets for help on using tickets.