FFmpeg 공부, 개발
FFmpeg (www.ffmpeg.org) 은 비디오, 오디오, 이미지를 쉽게 인코딩 (Encoding), 디코딩 (Decoding), 먹싱 (Muxing), 디먹싱 (Demuxing) 할 수 있도록 도움을 주는 멀티미디어 프레임워크
FFmpeg은 다른 오픈소스 프로젝트와 마찬가지로 마이크로소프트의 윈도우 환경보다는 리눅스 환경에 맞춰 개발이 되고 있다.
Windows 10/11이면 [WSL2 (Linux Subsystem)]를 설치하면 Windows에서도 Linux 환경으로 FFmpeg 개발 가능하기 때문에 이를 이용하겠다.
WSL(Linux용 Windows 하위 시스템)은 별도의 가상 머신 또는 이중 부팅 없이 Windows 컴퓨터에서 Linux 환경을 실행할 수 있는 Windows의 기능이다. WSL은 Windows와 Linux를 동시에 사용하려는 개발자에게 원활하고 생산적인 환경을 제공하도록 설계되었다.
<윈도우에서 구현하다가 WSL2/Docker로 전환하는 방법>
Github 활용 (협업에 좋음)
Github에 올리고, WSL2 환경에서 git clone 해서 그대로 가져오기
# WSL 터미널에서
git clone https://github.com/사용자명/레포명.git
cd 레포명
<Docker 사용 시점>
개발 초기에는 VSCode 로컬에서 FFmpeg + Python 서버 기능 구현
중반쯤 기능이 돌아가기 시작하면 Dockerfile 작성 (Dockerize)
즉, 로컬에서 ffmpeg, http.server가 돌아가면 Dockerfile로 옮김
최종 단계에서 Docker Compose로 서버+AI 모델 통합, EC2 배포
<개발흐름>
- 지금은 VSCode (Windows)에서 개발
- 완성되면 VSCode로 Remote-WSL 진입해서 리눅스 환경으로 테스트
- 잘 돌아가면 Dockerfile 작성해서 docker build/run
- EC2로 올려서 완성된 서비스 배포
<윈도우에 WSL 설치>
참고 url를 따라 하되 관리자 권한으로 실행시킨 cmd에 다음 코드 실행시키기
(Ubuntu를 관리자 권한을 가진 계정으로 깔지 않으면 linux용 windows 하위 시스템에 배포가 설치되어 있지 않습니다. 라는 오류가 뜬다.)
wsl 버전 2로 세팅하고 우분투 깔기
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
WSL은 C 드라이브로 이동하고 싶을때 다음과 같이 입력해야한다.
cd /mnt/c
[사진1] 작업 디렉토리를 생성하고 video 폴더에 테스트용 동영상 준비
[사진2] WSL과 윈도우 간 네트워크 연결 확인
방화벽 설정까지 마쳤다.
<Tip>
Git에 커밋하고 푸시할 때는 .mp4 같은 큰 영상파일은 .gitignore에 추가하는 게 좋음
코드와 실험스크립트만 올리고, 영상은 Google Drive나 Dropbox 링크로 공유하는 식
<노트북과 데스크탑 동일 환경으로 만들기>
1. 두 장치 모두 WSL + Ubuntu 설치
2. GitHub로 레포지토리 통해 코드/파일 동기화
3. 환경재현
(1) requirements.txt 만들기
pip freeze > requirements.txt
(2) 다른 장비에서 동일한 환경 만들기
pip install -r requirements.txt
참고 url
01) FFmpeg 이란?
[TOC] ## FFmpeg 이란? FFmpeg (www.ffmpeg.org) 은 비디오, 오디오, 이미지를 쉽게 `인코딩 (Encoding)`, `디코딩 (Decoding)…
wikidocs.net
윈도우에서 WSL 설치 및 환경 설정 : 동영상 스크린샷 추출 개발 준비 : https://infobuckets.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-WSL-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95