Opened 3 years ago
#9542 new defect
FFprobe doesn't get exif metadata
Reported by: | Aightt | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | ffprobe |
Version: | git-master | Keywords: | mjpeg exif |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Hello,
Summary of the bug:
Since this commit (https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/e93c9986027d17917c3b4f533b28ee4a2ce7cd4c), the mpjeg decoder detect the rotation in the exif metadata and automatically rotate the frames. But unfortunately when analyzing the same file with ffprobe, we don't get the rotate information.
How to reproduce:
% ffprobe -i input -of json -show_streams -show_format ffprobe / ffmpeg built from master built on debian
Result:
{ Input #0, jpeg_pipe, from '036538dd-700c-4884-9bf4-da1f4d85baed': Duration: N/A, bitrate: N/A Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 1280x960 [SAR 72:72 DAR 4:3], 25 fps, 25 tbr, 25 tbn "streams": [ { "index": 0, "codec_name": "mjpeg", "codec_long_name": "Motion JPEG", "profile": "Baseline", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1280, "height": 960, "coded_width": 1280, "coded_height": 960, "closed_captions": 0, "film_grain": 0, "has_b_frames": 0, "sample_aspect_ratio": "1:1", "display_aspect_ratio": "4:3", "pix_fmt": "yuvj420p", "level": -99, "color_range": "pc", "color_space": "bt470bg", "chroma_location": "center", "refs": 1, "r_frame_rate": "25/1", "avg_frame_rate": "25/1", "time_base": "1/25", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } } ], "format": { "filename": "036538dd-700c-4884-9bf4-da1f4d85baed", "nb_streams": 1, "nb_programs": 0, "format_name": "jpeg_pipe", "format_long_name": "piped jpeg sequence", "size": "272927", "probe_score": 26 } }
We can see there is no informations about the rotate metadata.
But when reencoding:
ffmpeg -y -loop 1 -t 5 -f image2 -i input output.mp4 ffprobe -i output.mp4 -of json -show_streams -show_format
Result:
{ Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf59.9.102 Duration: 00:00:05.00, start: 0.000000, bitrate: 351 kb/s Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 960x1280 [SAR 1:1 DAR 3:4], 347 kb/s, 25 fps, 25 tbr, 12800 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10", "profile": "High", "codec_type": "video", "codec_tag_string": "avc1", "codec_tag": "0x31637661", "width": 960, "height": 1280, "coded_width": 960, "coded_height": 1280, "closed_captions": 0, "film_grain": 0, "has_b_frames": 2, "sample_aspect_ratio": "1:1", "display_aspect_ratio": "3:4", "pix_fmt": "yuvj420p", "level": 32, "color_range": "pc", "color_space": "bt470bg", "chroma_location": "center", "field_order": "progressive", "refs": 1, "is_avc": "true", "nal_length_size": "4", "id": "0x1", "r_frame_rate": "25/1", "avg_frame_rate": "25/1", "time_base": "1/12800", "start_pts": 0, "start_time": "0.000000", "duration_ts": 64000, "duration": "5.000000", "bit_rate": "347878", "bits_per_raw_sample": "8", "nb_frames": "125", "extradata_size": 51, "disposition": { "default": 1, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "language": "und", "handler_name": "VideoHandler", "vendor_id": "[0][0][0][0]" } } ], "format": { "filename": "output.mp4", "nb_streams": 1, "nb_programs": 0, "format_name": "mov,mp4,m4a,3gp,3g2,mj2", "format_long_name": "QuickTime / MOV", "start_time": "0.000000", "duration": "5.000000", "size": "219803", "bit_rate": "351684", "probe_score": 100, "tags": { "major_brand": "isom", "minor_version": "512", "compatible_brands": "isomiso2avc1mp41", "encoder": "Lavf59.9.102" } } }
We can see the resolution is not the same in output because the mjpeg decoder automatically rotate the frame.
Note:
See TracTickets
for help on using tickets.