Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#4560 closed defect (fixed)

Changing rotate metadata won't work with last release of FFmpeg ( from Zeranoe, x64 static build)

Reported by: grut Owned by:
Priority: important Component: ffmpeg
Version: git-master Keywords: mov metadata rotate regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
The metadata rotate cannot be changed using the last FFmpeg for windows, from zeranoe (x64 static build)

How to reproduce:
File available here : https://trac.ffmpeg.org/attachment/ticket/505/sample-in-issue-505.mov
Complete log : http://pastebin.com/EFymmLje
ffprobe source

>ffprobe c:/sample-in-issue-505.mov
ffprobe version N-72086-g51f6455 Copyright (c) 2007-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --e
nable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --ena
ble-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 23.101 / 54. 23.101
  libavcodec     56. 38.100 / 56. 38.100
  libavformat    56. 33.101 / 56. 33.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:/sample-in-issue-505.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2011-09-25 10:10:07
    make            : Apple
    make-deu        : Apple
    encoder         : 4.3.5
    encoder-deu     : 4.3.5
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    location        : +51.3889+006.8611/
    location-deu    : +51.3889+006.8611/
    model           : iPhone 4
    model-deu       : iPhone 4
  Duration: 00:00:03.49, start: 0.000000, bitrate: 794 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
    Metadata:
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
    Stream #0:1(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x272, 712 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
      encoder         : H.264
    Side data:
      displaymatrix: rotation of -90.00 degrees

ffmpeg command to change rotate metadata

>ffmpeg -i c:/sample-in-issue-505.mov -c copy -metadata:s:v:0 rotate=0 c:\target.mov
ffmpeg version N-72086-g51f6455 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --e
nable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --ena
ble-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 23.101 / 54. 23.101
  libavcodec     56. 38.100 / 56. 38.100
  libavformat    56. 33.101 / 56. 33.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:/sample-in-issue-505.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2011-09-25 10:10:07
    make            : Apple
    make-deu        : Apple
    encoder         : 4.3.5
    encoder-deu     : 4.3.5
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    location        : +51.3889+006.8611/
    location-deu    : +51.3889+006.8611/
    model           : iPhone 4
    model-deu       : iPhone 4
  Duration: 00:00:03.49, start: 0.000000, bitrate: 794 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
    Metadata:
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
    Stream #0:1(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x272, 712 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
      encoder         : H.264
    Side data:
      displaymatrix: rotation of -90.00 degrees
[mov @ 00000000058e9280] Codec for stream 0 does not use global headers but container format requires global headers
[mov @ 00000000058e9280] Codec for stream 1 does not use global headers but container format requires global headers
Output #0, mov, to 'c:\target.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    model-deu       : iPhone 4
    make            : Apple
    make-deu        : Apple
    model           : iPhone 4
    encoder         : Lavf56.33.101
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    location        : +51.3889+006.8611/
    location-deu    : +51.3889+006.8611/
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 480x272, q=2-31, 712 kb/s, 30 fps, 30 tbr, 19200 tbn, 600 tbc (default)
    Metadata:
      encoder         : H.264
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
      rotate          : 0
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, 63 kb/s (default)
    Metadata:
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  106 fps=0.0 q=-1.0 Lsize=     339kB time=00:00:03.50 bitrate= 792.5kbits/s
video:308kB audio:27kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.289521%

ffprobe of the target :

>ffmpeg -i c:/sample-in-issue-505.mov -c copy -metadata:s:v:0 rotate=0 c:\target.mov
ffmpeg version N-72086-g51f6455 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --e
nable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --ena
ble-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 23.101 / 54. 23.101
  libavcodec     56. 38.100 / 56. 38.100
  libavformat    56. 33.101 / 56. 33.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:/sample-in-issue-505.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2011-09-25 10:10:07
    make            : Apple
    make-deu        : Apple
    encoder         : 4.3.5
    encoder-deu     : 4.3.5
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    location        : +51.3889+006.8611/
    location-deu    : +51.3889+006.8611/
    model           : iPhone 4
    model-deu       : iPhone 4
  Duration: 00:00:03.49, start: 0.000000, bitrate: 794 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
    Metadata:
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
    Stream #0:1(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x272, 712 kb/s, 30 fps, 30 tbr, 600 tbn, 1200 tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
      encoder         : H.264
    Side data:
      displaymatrix: rotation of -90.00 degrees
[mov @ 00000000058e9280] Codec for stream 0 does not use global headers but container format requires global headers
[mov @ 00000000058e9280] Codec for stream 1 does not use global headers but container format requires global headers
Output #0, mov, to 'c:\target.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    model-deu       : iPhone 4
    make            : Apple
    make-deu        : Apple
    model           : iPhone 4
    encoder         : Lavf56.33.101
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    location        : +51.3889+006.8611/
    location-deu    : +51.3889+006.8611/
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 480x272, q=2-31, 712 kb/s, 30 fps, 30 tbr, 19200 tbn, 600 tbc (default)
    Metadata:
      encoder         : H.264
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
      rotate          : 0
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, 63 kb/s (default)
    Metadata:
      creation_time   : 2011-09-25 10:10:07
      handler_name    : Core Media Data Handler
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  106 fps=0.0 q=-1.0 Lsize=     339kB time=00:00:03.50 bitrate= 792.5kbits/s
video:308kB audio:27kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.289521%

>
>
>
>
>
>ffprobe c:\target.mov
ffprobe version N-72086-g51f6455 Copyright (c) 2007-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --e
nable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --ena
ble-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 23.101 / 54. 23.101
  libavcodec     56. 38.100 / 56. 38.100
  libavformat    56. 33.101 / 56. 33.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\target.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    date            : 2011-09-25T12:09:54+0200
    date-deu        : 2011-09-25T12:09:54+0200
    encoder         : Lavf56.33.101
    make            : Apple
    make-deu        : Apple
    model           : iPhone 4
    model-deu       : iPhone 4
  Duration: 00:00:03.53, start: 0.000000, bitrate: 786 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x272, 712 kb/s, 30 fps, 30 tbr, 19200 tbn, 38400 tbc (default)
    Metadata:
      rotate          : 90
      handler_name    : DataHandler
      encoder         : H.264
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 63 kb/s (default)
    Metadata:
      handler_name    : DataHandler

So the rotate metadata.

Digging deeper, I tried many builds, and here are my findings :

  • until this build, ffmpeg-20150319-git-b61cb61, the rotate metadata is set (or removed if 0).
    ffprobe version N-70821-gb61cb61 Copyright (c) 2007-2015 the FFmpeg developers
    
  • after that, the next release, and for a few releases, there was a bug and setting rotate 0 was resulting in rotate 270.
  • after that, impossible to change.

Change History (3)

comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: mov regression added; unchanged removed
Priority: normalimportant
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

Regression since 750cf4e5
(Behaviour has changed since.)

comment:2 by Michael Niedermayer, 10 years ago

Resolution: fixed
Status: openclosed
Last edited 10 years ago by Michael Niedermayer (previous) (diff)

comment:3 by Carl Eugen Hoyos, 10 years ago

Component: undeterminedffmpeg
Note: See TracTickets for help on using tickets.