ffmpeg gif to mov

Bark shi-hun·2024년 5월 29일

목록 보기
5/8

명령어

gif랑 똑같은 사이즈의 투명한 mov를 만든 뒤, 거기에 gif를 오버레이로 씌운다.

ffmpeg -ignore_loop 0 -i input.gif -filter_complex "color=c=black@0.0:s=1920x1080,format=rgba[A];[A][0]overlay" -frames:v 300 -c:v qtrle output.mov
  • -ignore_loop 0 gif 반복 재생
  • -i input.gif input.gif 투입
  • -filter_complex 여러 인풋을 받아 처리해서 출력
    • color=c=black@0.0:s=1920x1080,format=rgba[A];
      1920x1080( gif 크기랑 똑같게 설정 )짜리 투명한 검은색을 만들고 A라고 라벨 붙임
      ( RGBA형식이니 알파값만 있을 순 없으니까 적당한 색 넣은 거임 )
      ( 사실 red@0.0 등 색은 상관없음 )
    • [A][0]overlay A 위에 0번째 인풋을 가져와 오버레이 함
  • -frames:v 300 프레임수 설정, 프레임수/fps = 영상 길이
    (300은 임시로 넣은 숫자임. 사용할 땐 원하는 프레임수로 바꾸면 됨.)
  • -c:v qtrle qtrle 코덱(투명도 지원됨)으로 인코딩
  • output.mov output.mov 출력

이야기

  • gif를 mov로 바꿔야하는데 투명도가 유지 안 돼서 고생 좀 했다.
  • 투명한 mov를 따로 만든 뒤, 거기에 오버레이로 gif를 넣는 방식으로 어떻게든 해냈다.
  • 투명도 유지되는 코덱에는 qtrle말고 png도 있었다. 하지만 png코덱은 Premier Pro CC 2017 후부터 지원하지 않는다. 어도비에서 이렇게 한 걸보면 png코덱은 안 쓰는 것이 좋을 것 같다.
  • https://community.adobe.com/t5/premiere-pro-discussions/exporting-video-using-png-format/m-p/9909352

0개의 댓글