Open akagane99 opened 9 years ago
開発環境のubuntuのapt-getで取得できるffmpeg
ffprobe
が0.8と古いためか、ffprobe
で動画の回転情報(TAG:rotate)が表示されない。
ubuntu 14.04 だったらどうか、要確認。
ubuntu 12.04 LTS
$ ffprobe -version
avprobe version 0.8.17-4:0.8.17-0ubuntu0.12.04.2, Copyright (c) 2007-2014 the Libav developers
built on Apr 1 2016 14:24:20 with gcc 4.6.3
avprobe 0.8.17-4:0.8.17-0ubuntu0.12.04.2
libavutil 51. 22. 3 / 51. 22. 3
libavcodec 53. 35. 0 / 53. 35. 0
libavformat 53. 21. 1 / 53. 21. 1
libavdevice 53. 2. 0 / 53. 2. 0
libavfilter 2. 15. 0 / 2. 15. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 52. 0. 0 / 52. 0. 0
手元のwindows版FFMPEG1.1.1だったらTAG:rotate
表示された。
>ffprobe -version
ffprobe version 1.1.1
built on Jan 20 2013 23:11:23 with gcc 4.7.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig
opencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enabl
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
>ffprobe -show_streams IMG_1823.MOV
ffprobe version 1.1.1 Copyright (c) 2007-2013 the FFmpeg developers
built on Jan 20 2013 23:11:23 with gcc 4.7.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfi
ibopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --ena
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'IMG_1823.MOV':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2016-04-28 02:46:07
Duration: 00:00:01.33, start: 0.000000, bitrate: 17427 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 17304 kb/s, 30 fps, 30 tbr, 600 tbn, 1
Metadata:
rotate : 90
creation_time : 2016-04-28 02:46:07
handler_name : Core Media Data Handler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 82 kb/s
Metadata:
creation_time : 2016-04-28 02:46:07
handler_name : Core Media Data Handler
Stream #0:2(und): Data: none (mebx / 0x7862656D)
Metadata:
creation_time : 2016-04-28 02:46:07
handler_name : Core Media Data Handler
Stream #0:3(und): Data: none (mebx / 0x7862656D)
Metadata:
creation_time : 2016-04-28 02:46:07
handler_name : Core Media Data Handler
Unsupported codec with id 0 for input stream 2
Unsupported codec with id 0 for input stream 3
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1/1200
codec_tag_string=avc1
codec_tag=0x31637661
width=1920
height=1080
has_b_frames=0
sample_aspect_ratio=0:1
display_aspect_ratio=0:1
pix_fmt=yuv420p
level=40
timecode=N/A
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=30/1
avg_frame_rate=30/1
time_base=1/600
start_pts=0
start_time=0.000000
duration_ts=800
duration=1.333333
bit_rate=17304210
nb_frames=40
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:rotate=90
TAG:creation_time=2016-04-28 02:46:07
TAG:language=und
TAG:handler_name=Core Media Data Handler
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=unknown
codec_type=audio
codec_time_base=1/44100
codec_tag_string=mp4a
codec_tag=0x6134706d
sample_fmt=fltp
sample_rate=44100
channels=1
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/44100
start_pts=0
start_time=0.000000
duration_ts=61440
duration=1.393197
bit_rate=82084
nb_frames=60
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:creation_time=2016-04-28 02:46:07
TAG:language=und
TAG:handler_name=Core Media Data Handler
[/STREAM]
[STREAM]
index=2
codec_name=unknown
codec_long_name=unknown
profile=unknown
codec_type=data
codec_time_base=0/1
codec_tag_string=mebx
codec_tag=0x7862656d
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/600
start_pts=0
start_time=0.000000
duration_ts=800
duration=1.333333
bit_rate=48
nb_frames=1
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:creation_time=2016-04-28 02:46:07
TAG:language=und
TAG:handler_name=Core Media Data Handler
[/STREAM]
[STREAM]
index=3
codec_name=unknown
codec_long_name=unknown
profile=unknown
codec_type=data
codec_time_base=0/1
codec_tag_string=mebx
codec_tag=0x7862656d
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/600
start_pts=0
start_time=0.000000
duration_ts=800
duration=1.333333
bit_rate=60
nb_frames=1
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:creation_time=2016-04-28 02:46:07
TAG:language=und
TAG:handler_name=Core Media Data Handler
[/STREAM]
▼ スマホで撮影した映像をffmpegで正しい向きに変換する(+縮小変換) - Qiita http://qiita.com/naga3/items/639da87ad56c67549eee
結論から、動画回転の対応はやらない。
Ffmpegのバージョンによって、使えるオプションの違いや、動作が異なり、対応しきれないため。 同じ動画回転をするオプション指定しても、【環境2】であれば正しい向きに動画出力したが、 【環境1】では傾いたままだった。
ubuntu 12.04 LTS
$ ffmpeg -version
ffmpeg version 0.8.17-4:0.8.17-0ubuntu0.12.04.2, Copyright (c) 2000-2014 the Libav developers
動画の詳細情報を取得するコマンドffprobe
で、動画の幅、高さ、rotateが取得したいが、
バージョン古いため、一部オプション指定が使えず、取得できない
$ ffprobe -show_entries stream_tags=rotate: -of default=noprint_wrappers=1 IMG_1823.MOV
avprobe version 0.8.17-4:0.8.17-0ubuntu0.12.04.2, Copyright (c) 2007-2014 the Libav developers
built on Apr 1 2016 14:24:20 with gcc 4.6.3
Unrecognized option 'show_entries'
Failed to set value 'stream_tags=rotate:' for option 'show_entries'
$ ffprobe -show_streams -print_format json IMG_1823.MOV
avprobe version 0.8.17-4:0.8.17-0ubuntu0.12.04.2, Copyright (c) 2007-2014 the Libav developers
built on Apr 1 2016 14:24:20 with gcc 4.6.3
Unrecognized option 'print_format'
Failed to set value 'json' for option 'print_format'
ubuntu 12.04 LTS
$ /usr/local/ffmpeg_build/bin/ffmpeg -version
ffmpeg version git-2016-05-13-cb928fc Copyright (c) 2000-2016 the FFmpeg developers
rotateが90,180,270でも、-vf hflip
指定で正しい傾きに動画変換できた。
$ /usr/local/ffmpeg_build/bin/ffmpeg -i IMG_1823.MOV -vf hflip -metadata:s:v:0 rotate=0 IMG_1823-hflip.mp4
しかし、rotateが90で-vf transpose=1
(時計回りに90度回転)を指定しても回転してくれなかった。
rotateが取得できたら回転処理する
投稿された動画が上下さかさまとか、スマートフォンで動画撮影だと結構ある。 動画にはその上下をパラメータとして持っているらしい。 ffmpegは優秀なので、そのパラメータを食わせてあげれば、上下反転が直るらしい。
要調査。 対応先送り。