i ran into the same problem and realised that the image's orientation tag was not preserved when using ffmpeg
.
original image
$ exiftool -Orientation input.jpg
Orientation : Rotate 90 CW
full output:
$ identify -verbose input.jpg
Image: input.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 4160x3120+0+0
Resolution: 72x72
Print size: 57.7778x43.3333
Units: PixelsPerInch
Colorspace: sRGB
Type: TrueColor
Base type: Undefined
Endianess: Undefined
Depth: 8-bit
Channel depth:
Red: 8-bit
Green: 8-bit
Blue: 8-bit
Channel statistics:
Pixels: 12979200
Red:
min: 0 (0)
max: 255 (1)
mean: 108.185 (0.424255)
standard deviation: 61.0896 (0.239567)
kurtosis: -0.901126
skewness: -0.248333
entropy: 0.945001
Green:
min: 0 (0)
max: 255 (1)
mean: 105.661 (0.414356)
standard deviation: 60.1866 (0.236026)
kurtosis: -0.9917
skewness: -0.0344804
entropy: 0.963995
Blue:
min: 0 (0)
max: 255 (1)
mean: 93.8873 (0.368186)
standard deviation: 63.4227 (0.248716)
kurtosis: -1.00629
skewness: 0.325207
entropy: 0.958324
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 102.578 (0.402265)
standard deviation: 61.5663 (0.241436)
kurtosis: -1.03922
skewness: 0.0137682
entropy: 0.955774
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Matte color: grey74
Background color: white
Border color: srgb(223,223,223)
Transparent color: none
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 4160x3120+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 98
Orientation: RightTop
Properties:
date:create: 2019-05-01T16:09:43+00:00
date:modify: 2019-05-01T16:09:43+00:00
exif:ApertureValue: 200/100
exif:BrightnessValue: 0/100
exif:ColorSpace: 1
exif:ComponentsConfiguration: 1, 2, 3, 0
exif:DateTime: 2019:05:01 10:15:04
exif:DateTimeDigitized: 2019:05:01 10:15:04
exif:DateTimeOriginal: 2019:05:01 10:15:04
exif:ExifOffset: 285
exif:ExifVersion: 48, 50, 50, 48
exif:ExposureBiasValue: 0/6
exif:ExposureMode: 0
exif:ExposureProgram: 0
exif:ExposureTime: 9994945/1000000000
exif:Flash: 0
exif:FlashPixVersion: 48, 49, 48, 48
exif:FNumber: 200/100
exif:FocalLength: 3580/1000
exif:FocalLengthIn35mmFilm: 0
exif:GPSInfo: 831
exif:ImageLength: 3120
exif:ImageWidth: 4160
exif:InteroperabilityOffset: 801
exif:Make: HMD Global
exif:MakerNote: 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 37, 0, 0, 208, 7, 33, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 2, 104, 1, 0, 0, 0, 0
exif:MeteringMode: 0
exif:Model: Nokia 8
exif:Orientation: 6
exif:PhotographicSensitivity: 100
exif:PixelXDimension: 4160
exif:PixelYDimension: 3120
exif:ResolutionUnit: 2
exif:SceneCaptureType: 0
exif:SceneType: 0
exif:SensingMethod: 0
exif:ShutterSpeedValue: 6644/1000
exif:Software: TA-1004_00WW-user 9 PPR1.180610.011 00WW_5_14A release-keys
exif:SubSecTime: 733
exif:SubSecTimeDigitized: 733
exif:SubSecTimeOriginal: 733
exif:thumbnail:Compression: 6
exif:thumbnail:InteroperabilityIndex: R98
exif:thumbnail:InteroperabilityVersion: 48, 49, 48, 48
exif:thumbnail:JPEGInterchangeFormat: 943
exif:thumbnail:JPEGInterchangeFormatLength: 6845
exif:thumbnail:Orientation: 6
exif:thumbnail:ResolutionUnit: 2
exif:thumbnail:XResolution: 72/1
exif:thumbnail:YResolution: 72/1
exif:WhiteBalance: 0
exif:XResolution: 72/1
exif:YCbCrPositioning: 1
exif:YResolution: 72/1
jpeg:colorspace: 2
jpeg:sampling-factor: 2x2,1x1,1x1
signature: d450d8dbb135c549364b3663c8195164a73698999b8104e75c8b74564835986f
Profiles:
Profile-exif: 7794 bytes
Artifacts:
verbose: true
Tainted: False
Filesize: 6.05972MiB
Number pixels: 12979200
Pixels per second: 82.8219MP
User time: 0.150u
Elapsed time: 0:01.156
Version: ImageMagick 7.0.8-42 Q16 x86_64 2019-04-24 https://imagemagick.org
modified image
$ exiftool -Orientation output.jpg
full output:
$ identify -verbose output.jpg
Image: output.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 1800x1350+0+0
Units: Undefined
Colorspace: sRGB
Type: TrueColor
Base type: Undefined
Endianess: Undefined
Depth: 8-bit
Channel depth:
Red: 8-bit
Green: 8-bit
Blue: 8-bit
Channel statistics:
Pixels: 2430000
Red:
min: 0 (0)
max: 255 (1)
mean: 108.075 (0.423823)
standard deviation: 60.7286 (0.238152)
kurtosis: -0.889179
skewness: -0.260768
entropy: 0.940096
Green:
min: 0 (0)
max: 255 (1)
mean: 105.629 (0.414232)
standard deviation: 59.6505 (0.233924)
kurtosis: -0.993155
skewness: -0.0409431
entropy: 0.957277
Blue:
min: 0 (0)
max: 255 (1)
mean: 93.7942 (0.367821)
standard deviation: 63.0086 (0.247093)
kurtosis: -1.00904
skewness: 0.322794
entropy: 0.957105
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 102.499 (0.401958)
standard deviation: 61.1293 (0.239723)
kurtosis: -1.03828
skewness: 0.00662106
entropy: 0.951493
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Matte color: grey74
Background color: white
Border color: srgb(223,223,223)
Transparent color: none
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 1800x1350+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 72
Orientation: Undefined
Properties:
comment: Lavc58.35.100
date:create: 2019-05-01T16:09:44+00:00
date:modify: 2019-05-01T16:09:44+00:00
jpeg:colorspace: 2
jpeg:sampling-factor: 2x2,1x1,1x1
signature: 76f0debf16f9a958b603a08a706b825e4700093b28b57470a34361b396da612d
Artifacts:
verbose: true
Tainted: False
Filesize: 105397B
Number pixels: 2430000
Pixels per second: 117.945MP
User time: 0.020u
Elapsed time: 0:01.020
Version: ImageMagick 7.0.8-42 Q16 x86_64 2019-04-24 https://imagemagick.org
solution
to fix this i did included some code in my bash script to read the orientation from the original file ($file
). then i update the orientation for the output file ($outfile
).
# read orientation from original image
orientation=$(exiftool -Orientation -n -S $file | grep -Eo '[0-9]{1,4}')
# scale image
ffmpeg -i $file -vf "scale='min($ffmpeg_maxwidth,iw)':-1" $outfile
# set orientation value for the new image
exiftool -n -Orientation=$orientation $outfile