Remove Rotate metadata from mp4
Solution 1
Try something like the following:
-metadata:s:v:0 rotate=0
(see https://stackoverflow.com/a/15336581/954643)
And if you want to actually transpose the bits:
-vf 'transpose=1' -metadata:s:v:0 rotate=0
(see https://stackoverflow.com/a/9570992/954643)
This transposes the video properly according to your transpose value and wipes the metadata just for the video stream.
Note that the video filter rotate
(e.g. -vf 'rotate=PI/2'
) will rotate the pixels in the video stream but not change the video dimensions. (https://stackoverflow.com/a/23004567/954643)
per Brun Duyé's comment the complete command is
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output=0 output.mp4
Solution 2
To clarify what brunetton said: The option -metadata:s:v:0 rotate=0
used alone does not seem to remove the metadata because a vertical video processed this way and played with Firefox for example will still be displayed upright. The option -c copy
must be used also to affect only the metadata.
Related videos on Youtube
mbajur
Updated on June 05, 2022Comments
-
mbajur about 2 years
I'm trying to remove or modify a
rotate
param from my mp4 file using ffmpeg. Based on some google results, i've ended up with such command (i've tried a few more but none of them worked):$ ffmpeg -i ./source.mp4 -metadata rotate=0 ./output.mp4
But it's not working at all. The
rotate=270
metadata param is still there in the output file. Can you please advise me on how it should be done?I'm using
ffmpeg version 1.2.4 Copyright (c) 2000-2013 the FFmpeg developers built on Dec 9 2013 20:00:03 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
Output:
ffmpeg version 1.2.4 Copyright (c) 2000-2013 the FFmpeg developers built on Dec 9 2013 20:00:03 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid libavutil 52. 18.100 / 52. 18.100 libavcodec 54. 92.100 / 54. 92.100 libavformat 54. 63.104 / 54. 63.104 libavdevice 54. 3.103 / 54. 3.103 libavfilter 3. 42.103 / 3. 42.103 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/michal/Downloads/mp4_c8ffe9a587b126f152ed3d89a146b445.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.63.104 Duration: 00:00:13.80, start: 0.021333, bitrate: 437 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 313 kb/s, 7.50 fps, 7.50 tbr, 15360 tbn, 15 tbc Metadata: rotate : 270 handler_name : VideoHandler Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 134 kb/s Metadata: handler_name : SoundHandler File '/Users/michal/Desktop/mp4.mp4' already exists. Overwrite ? [y/N] y using SAR=1/1 [libx264 @ 0x7fb17b01ec00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 [libx264 @ 0x7fb17b01ec00] profile High, level 2.2 [libx264 @ 0x7fb17b01ec00] 264 - core 125 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=7 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/Users/michal/Desktop/mp4.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 rotate : 0 encoder : Lavf54.63.104 Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 15360 tbn, 7.50 tbc Metadata: rotate : 270 handler_name : VideoHandler Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (aac -> libfaac) Press [q] to stop, [?] for help frame= 99 fps= 39 q=32766.0 Lsize= 730kB time=00:00:13.80 bitrate= 433.1kbits/s video:497kB audio:226kB subtitle:0 global headers:0kB muxing overhead 0.821272% [libx264 @ 0x7fb17b01ec00] frame I:8 Avg QP:14.85 size: 11183 [libx264 @ 0x7fb17b01ec00] frame P:68 Avg QP:17.68 size: 5348 [libx264 @ 0x7fb17b01ec00] frame B:23 Avg QP:18.26 size: 2419 [libx264 @ 0x7fb17b01ec00] consecutive B-frames: 53.5% 46.5% 0.0% 0.0% [libx264 @ 0x7fb17b01ec00] mb I I16..4: 31.9% 55.9% 12.1% [libx264 @ 0x7fb17b01ec00] mb P I16..4: 8.2% 9.1% 0.3% P16..4: 54.3% 13.0% 7.6% 0.0% 0.0% skip: 7.4% [libx264 @ 0x7fb17b01ec00] mb B I16..4: 0.2% 0.2% 0.0% B16..8: 49.9% 4.0% 0.3% direct: 8.6% skip:36.8% L0:45.5% L1:50.9% BI: 3.6% [libx264 @ 0x7fb17b01ec00] 8x8 transform intra:53.3% inter:90.4% [libx264 @ 0x7fb17b01ec00] coded y,uvDC,uvAC intra: 41.7% 90.1% 55.3% inter: 23.9% 56.7% 7.1% [libx264 @ 0x7fb17b01ec00] i16 v,h,dc,p: 12% 20% 10% 59% [libx264 @ 0x7fb17b01ec00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 20% 28% 8% 8% 4% 8% 5% 5% [libx264 @ 0x7fb17b01ec00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 23% 18% 6% 11% 5% 8% 3% 3% [libx264 @ 0x7fb17b01ec00] i8c dc,h,v,p: 57% 22% 18% 4% [libx264 @ 0x7fb17b01ec00] Weighted P-Frames: Y:5.9% UV:0.0% [libx264 @ 0x7fb17b01ec00] ref P L0: 61.2% 2.2% 23.5% 12.5% 0.6% [libx264 @ 0x7fb17b01ec00] ref B L0: 74.2% 25.8% [libx264 @ 0x7fb17b01ec00] kb/s:308.34
-
mbajur over 10 yearsyeah, seems legit. Output added :)
-
-
Bruno Duyé over 6 yearsSo, the complete command is:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
. I needed some effort to find the complete ffmpeg command line. -
cr7pt0gr4ph7 over 6 yearsThe link provided at the end of the answer is now broken and points to an advertising website instead.
-
qix over 6 yearsThanks @cr7pt0gr4ph7, I've updated the link to an SO resource with a concrete example.
-
Seganku over 3 yearsI'm not sure how the output=0 got in the "complete command", but it only seems to cause problems with ffmpeg 4.2.4.