새소식

컴퓨터 활용 팁/여러가지 팁

움직이는 webp 파일을 mp4 로 변환해보자.

  • -

필수 준비 자료 : ffmpeg , libwebp

bat 작동시 필요한 프로그램 다운로드 주소)

lipwebp https://developers.google.com/speed/webp/download?hl=ko
ffmpeg https://ffmpeg.org/download.html

 

Download FFmpeg

If you find FFmpeg useful, you are welcome to contribute by donating. More downloading options Git Repositories Since FFmpeg is developed with Git, multiple repositories from developers and groups of developers are available. Release Verification All FFmpe

ffmpeg.org

 

 

WebP 다운로드 및 설치  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. WebP 다운로드 및 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 모든 다운로드 패키지는 다운로

developers.google.com

 

 

운영체제는 윈도우라는 전제하에 작동됩니다.

1. ffmpeg 윈도우버젼 다운로드후 압축풀기 ( 기왕이면 잘 안건드리는 곳에 하세요. 예: C:\ )

2. libwebp 윈도우버젼 다운로드후 압축풀기. ( 기왕이면 잘 안건드리는 곳에 하세요. 예: C:\ )

3. 윈도우 환경변수에 ffmpeg 와 libwebp를 등록하기. 

4.cmd 창에서 정상 작동하나 확인해줍니다.

webpmux -version
anim_dump -version
ffmpeg -version

6. 환경변수 등록후 재부팅해주기.

7. 아래에 적혀있는 코드로 bat파일 만들기. bat 파일이 실행되는 폴더에 mp4가 저장됩니다.

8. 실행된 bat cmd 창 입력창에 움직이는 webp 파일이 들어있는 원하는 폴더 주소를 입력하면 됩니다.

 

webp는 여러장도 가능하고 움직이지않는 webp를 구분합니다.

이 방법 말고 ㄲ캠도 편리하게 가능한데 유료구매버젼 아니면 ㄲ캠로고가 삽입되서 만들어봤습니다.

 

bat 파일 코드입니다. 메모장 열어서 붙여넣기하고 원하는파일명을 넣고 확장자를 bat로 해주세요.

--------------------------------------------------------------------------------------------

 

@echo off
setlocal enabledelayedexpansion

:input_folder
set /p folder_path="변환할 webp 파일이 들어있는 폴더 경로를 입력하세요 (종료하려면 'exit' 입력): "
if "%folder_path%"=="exit" exit

REM 파일 개수 계산
set count=0
for %%F in ("%folder_path%\*.webp") do (
    set /a count+=1
)

REM 파일 개수가 0인 경우 처리
if %count%==0 (
    echo 해당 폴더에 WebP 파일이 없습니다. 다시 입력해주세요.
    goto :input_folder
)

REM 날짜순으로 정렬된 파일 목록 가져오기
set index=0
for /f "tokens=*" %%F in ('dir /b /o:d "%folder_path%\*.webp"') do (
    REM 파일명 추출
    set "file_path=%folder_path%\%%F"
    set "file_name=%%~nF"

    REM 현재 진행도 표시
    set /a index+=1
    echo 진행도: [!index!/!count!]

    REM WebP 파일의 타입 확인 (동적인 경우에만 처리)
    set "is_animated=false"
    for /f "tokens=*" %%T in ('webpmux -info "!file_path!" ^| findstr /i "animation"') do (
        set "is_animated=true"
    )

    if "!is_animated!"=="true" (
        REM anim_dump로 png 생성
        anim_dump "!file_path!" >nul 2>&1

        REM WebP 파일의 정보를 가져오고, 각 프레임의 duration을 더함
        set "total_duration=0"
        set "frame_count=0"
        for /f "tokens=7" %%A in ('webpmux -info "!file_path!" ^| findstr /c:"      " ') do (
            set "duration=%%A"
            set /a "total_duration+=duration"
            set /a "frame_count+=1"
        )

        REM 모든 duration을 더한 후 FPS 계산
        if !frame_count! gtr 0 (
            set /a "average_duration=total_duration / frame_count"
            set /a "fps=1000 / average_duration"
        ) else (
            echo 프레임을 찾을 수 없거나 오류가 발생했습니다.
        )

        REM 랜덤 숫자 생성
        set /a random_num=!random!

        REM ffmpeg로 png 파일들을 mp4로 변환 (홀수 해상도를 짝수로 조정)
        ffmpeg -framerate !fps! -i "%~dp0\dump_%%04d.png" -vf "scale='if(gt(iw\,mod(iw\,2))\,ceil(iw/2)*2,iw)':'if(gt(ih\,mod(ih\,2))\,ceil(ih/2)*2,ih)'" -c:v libx264 -pix_fmt yuv420p -an "%~dp0\!file_name!_!random_num!.mp4" >nul 2>&1

        REM 임시로 생성된 png 파일들 삭제
        del /Q "%~dp0\dump_*.png"

        echo "mp4 파일이 생성되었습니다: %folder_path%\!file_name!_!random_num!.mp4"
    ) else (
        echo "정적 WebP 파일을 발견했습니다: !file_path!"
        echo "동적 WebP 파일만 처리됩니다."
    )
)

REM 작업 완료 메시지
echo 작업이 완료되었습니다.

goto :input_folder
 

 

--------------------------------------------------------------------------------------------

 

참고자료 : chat gpt

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.