[FFmpeg-trac] #4560(undetermined:new): Changing rotate metadata won't work with last release of FFmpeg ( from Zeranoe, x64 static build)

FFmpeg trac at avcodec.org
Fri May 15 17:40:48 CEST 2015


#4560: Changing rotate metadata won't work with  last release of FFmpeg ( from
Zeranoe, x64 static build)
-------------------------------------+-------------------------------------
             Reporter:  grut         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  metadata     |               Blocked By:
  rotate unchanged                   |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 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.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4560>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list