[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