MediaConvert가 회전하지 않습니다!

아…있는 그대로 지금 일어난 일을 말하자! 나는 종장 동영상을 올렸는데, 어느새 가로로 되어 있었다. 나… 무슨 말을 하는지 모르겠다고 생각하지만, 나도 무엇을 했는지 몰랐다…

안녕하세요, 너무 많은 더위에 아침 5시에 개를 산책을 끝내는 streampack 기무라입니다.
벌써, 6시 지나면 더워요!

그건 그렇고, MediaConvert를 사용하고 있어 곤란한 일이 있었기 때문에 기사로 합니다.

추가



2019/2/21에 MediaConvert에 동영상 회전 기능이 추가되었으므로 현재는 제대로 회전합니다.

AWS Elemental MediaConvert는 새 동영상 회전 및 광고 마커 삽입 지원

어려움



음, 스마트 폰으로 세로로 촬영 한 동영상을 MediaConvert로 변환하면 가로가 되어 버립니다.

이상





현실





큰 벅 버니
©copyright 2008, Blender Foundation | ㅋㅋㅋ 미세 g 부분 ck 분 y. 오 rg

이것이군요, MediaConvert 측에서 설정을 아무리 반죽 돌려도, 이미 어쩔 수 없어요.

우선 원래 동영상의 정보를 살펴 보겠습니다.
$ ffprobe IMG_0012.MOV
ffprobe version n4.0.1-5-gb5106c5aa2 Copyright (c) 2007-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.2)
  configuration: --enable-version3 --enable-gpl --enable-libvmaf --enable-libx264 --enable-libx265 --enable-libvpx --enable-libaom --prefix=/usr/local --enable-nonfree --enable-static --disable-shared --extra-cflags='-I/usr/local/include -I/usr/include -I/Users/kimura/git/aom/aom_build' --extra-ldflags=-L/usr/local/lib --enable-libfreetype --extra-libs=-lpthread
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'IMG_0012.MOV':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2018-08-03T03:23:32.000000Z
    com.apple.quicktime.location.ISO6709: +35.6666+139.7495+080.740/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 7
    com.apple.quicktime.software: 11.4.1
    com.apple.quicktime.creationdate: 2018-08-03T12:23:32+0900
  Duration: 00:00:15.91, start: 0.000000, bitrate: 11856 kb/s
    Stream #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080, 11737 kb/s, 59.96 fps, 59.94 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2018-08-03T03:23:32.000000Z
      handler_name    : Core Media Data Handler
      encoder         : HEVC
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 95 kb/s (default)
    Metadata:
      creation_time   : 2018-08-03T03:23:32.000000Z
      handler_name    : Core Media Data Handler
    Stream #0:2(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2018-08-03T03:23:32.000000Z
      handler_name    : Core Media Data Handler
    Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2018-08-03T03:23:32.000000Z
      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 #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 1920x1080, 11737 kb/s, 59.96 fps, 59.94 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      rotate          : 90

동영상 해상도가 1920x1080, 그리고 메타데이터에 rotate : 90이 기재되어 있습니다.

아무래도 이런 것 같습니다.



출처 : htps : // 아 d 피페. 코 m / b ぉ g / mp 4 - 로타리 온 - 메타타 - 응 - 모비 - ゔ ぃ로 오 ぃ ぇ s /

즉, 스마트 폰으로 촬영하면 방향에 관계없이 FHD의 경우 해상도는 1920x1080로 고정되고 회전 정보는 rotate로 부여됩니다.
그리고는 재생 측에서 잘 해줘.
라는 것.

글쎄, 여기까지는 좋다. 뭔가 알고 있었어!

그럼 MediaConvert로 변환시에 90도 회전시키면 좋지요? 

설정을 반전하거나 불친절한 문서를 읽고 잡았지만 중요한 동영상을 회전시키는 기능을 찾을 수 없습니다.
어쩌면 조사했는데, 역시 없잖아.

없는 증거



맞아, 막혔다・・・

대응책



죄송합니다.
ffmpeg로 다시 엔코하고 세로장(1080x1920)으로 하고, rotate 정보를 지운다!

세로로 하다



ffmpeg 에서는 읽어들인 시점에서 rotate 정보를 해석하므로 아무것도 하지 않아도 괜찮습니다.
평소와 같이 -i 로 입력 지정해 출력하면 세로로 토출됩니다.
-vf transpose 이나 -vf hflip,vflip 등은 필요 없습니다.

rotate 정보 지우기



다음 옵션을 지정합니다.
-metadata:s:v:0 rotate=0

실행 예 (HEVC 10Mbps로 재 엔코)


$ ffmpeg -i IMG_0012.MOV -vcodec libx265 -vb 10000000 -tag:v hvc1 -acodec copy -metadata:s:v:0 rotate=0 IMG_0012_rev.MOV

완성된 파일을 MediaConvert에 먹이게 하면 시작의 이상이 됩니다.

다만, 재엔코이므로 수고와 시간이 걸린다・・・

덤 Elastic Transcoder



덧붙여서 Elastic Transcoder라면 빙글빙글 돌릴 수 있으므로 문제 없습니다.
돌지 않아도 Output Rotationauto 로 해 두면 마음대로 해 줍니다.
카시코이! ! !

좋은 웹페이지 즐겨찾기